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.")