import sys import argbind from dac.utils import download from dac.utils.decode import decode from dac.utils.encode import encode STAGES = ["encode", "decode", "download"] def run(stage: str): """Run stages. Parameters ---------- stage : str Stage to run """ if stage not in STAGES: raise ValueError(f"Unknown command: {stage}. Allowed commands are {STAGES}") stage_fn = globals()[stage] if stage == "download": stage_fn() return stage_fn() if __name__ == "__main__": group = sys.argv.pop(1) args = argbind.parse_args(group=group) with argbind.scope(args): run(group)