You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

38 lines
937 B

import json
import pathlib as pl
def load(batch_file):
batch_file = pl.Path(batch_file).resolve()
with open(batch_file, "r") as bfile:
batch_obj = json.loads(bfile.read())
batch_obj["base_path"] = batch_file.parent
return __load_batch_obj(batch_obj)
def __load_batch_obj(batch_obj):
paths = []
instance_dir = None
if "dir" in batch_obj:
instance_dir = pl.Path(batch_obj["dir"])
if not instance_dir.is_absolute():
instance_dir = pl.Path(batch_obj["base_path"], instance_dir)
else:
instance_dir = batch_obj["base_path"]
if "instances" in batch_obj:
for instance in batch_obj["instances"]:
paths.append(pl.Path(instance_dir, instance))
if "batches" in batch_obj:
for batch in batch_obj["batches"]:
batch["base_path"] = instance_dir
paths.extend(__load_batch_obj(batch))
return paths