Пример #1
0
def extract(target_path: str, out_dir: str):
    """tar.gzを解凍する"""
    tar = tarfile.open(target_path)
    tar.extractall(path=out_dir)
    tar.close()
    os.remove(target_path)


def run(work_dir):
    os.chdir(work_dir)
    subprocess.check_call(["python", "main.py"])


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--name", type=str, required=True)
    args, unknown_args = parser.parse_known_args()

    run_name = args.name

    # local path
    local_tar_path = f"../work/code-{run_name}.tar.gz"
    local_extract_path = f"../code-{run_name}"
    local_run_info_path = os.path.join(local_extract_path, "run_info.json")

    download_blob(Env.bucket_name, Env.blob_name(run_name), local_tar_path, Env.project_id)
    extract(local_tar_path, local_extract_path)
    download_blob(Env.bucket_name, Env.blob_name_run_info(run_name), local_run_info_path, Env.project_id)
    run(local_extract_path)