def build_gym()

in preprocess/_build_gym.py [0:0]


def build_gym(args):
    successful = []
    failed = []
    all_tasks = []
    for filename in sorted(os.listdir(args.task_dir)):
        if filename.endswith(".py") and not filename.startswith("0") and not filename.startswith("_") and \
                filename!="utils.py" and "unifiedqa" not in filename:
            all_tasks.append(filename)

    assert all_tasks == ALL_TASKS
    print("Passing file checks ...")

    manager = Manager()
    fail_dict = manager.dict()

    if args.n_proc > 1:
        tasks_per_proc = int(len(all_tasks) / args.n_proc)
        tasks_split = [all_tasks[i * tasks_per_proc: (i+1) * tasks_per_proc] for i in range(args.n_proc - 1)]
        tasks_split.append(all_tasks[(args.n_proc-1) * tasks_per_proc:])

        processes = []
        for i in range(args.n_proc):
            p = mp.Process(target=process_tasks, args=(i+1, tasks_split[i], args, fail_dict))
            p.start()
            processes.append(p)

        for proc in processes:
            proc.join()

    else:
        process_tasks(0, all_tasks, args, fail_dict)

    all_failed_tasks = []
    for item in fail_dict.values():
        all_failed_tasks += item
    if len(all_failed_tasks) > 0:
        print("Please try the following tasks later by running {}".format(all_failed_tasks))
    else:
        print("Processing finished successfully.")