import csv import errno import io import json import os import traceback from contextlib import suppress from functools import partial from glob import glob from multiprocessing.pool import Pool def translate_dir(dir_in, tsv_out_dir, json_out_dir, is_global): files = [ f for f in glob(os.path.join(dir_in, "**/Scenario/*.tsv"), recursive=True) if f"{os.path.sep}Diva{os.path.sep}" not in f ] if len(files) == 0: raise FileNotFoundError("No valid files found in directory: " + dir_in) ptrans = partial( translate_file, tsv_out_dir=tsv_out_dir, json_out_dir=json_out_dir, is_global=is_global, ) with Pool() as p: p.map(ptrans, files) def translate_file(file_in, tsv_out_dir, json_out_dir, is_global): try: if not file_in.endswith(".tsv"): raise ValueError("Invalid File Type for {}".format(file_in)) # we need to get the event folder # ie, Utage/>>>main01<<