def run_par()

in covid19_spread/data/usa/convert.py [0:0]


def run_par(fs, args, kwargs, max_par=None):
    if not isinstance(fs, list):
        fs = [fs] * len(args)
    if "MAX_PARALLELISM" in os.environ:
        max_par = int(os.environ["MAX_PARALLELISM"])
    print(f"Max parallelism = {max_par}")
    if max_par is not None and max_par <= 1:
        for _f, _args, _kwargs in zip(fs, args, kwargs):
            _f(*_args, **_kwargs)
        return
    with mp.Pool(max_par) as pool:
        results = [
            pool.apply_async(f, args=a, kwds=k) for f, a, k in zip(fs, args, kwargs)
        ]
        [r.get() for r in results]