diff --git a/Lib/compileall.py b/Lib/compileall.py index 3e45785a667..1c9ceb69309 100644 --- a/Lib/compileall.py +++ b/Lib/compileall.py @@ -68,13 +68,13 @@ def compile_dir(dir, maxlevels=10, ddir=None, force=False, rx=None, optimize: optimization level or -1 for level of the interpreter workers: maximum number of parallel workers """ + if workers is not None and workers < 0: + raise ValueError('workers must be greater or equal to 0') + files = _walk_dir(dir, quiet=quiet, maxlevels=maxlevels, ddir=ddir) success = True if workers is not None and workers != 1 and ProcessPoolExecutor is not None: - if workers < 0: - raise ValueError('workers must be greater or equal to 0') - workers = workers or None with ProcessPoolExecutor(max_workers=workers) as executor: results = executor.map(partial(compile_file, diff --git a/Misc/NEWS b/Misc/NEWS index 011df947664..037a4f6a8f8 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -573,6 +573,10 @@ Core and Builtins Library ------- +- Issue #28485: Always raise ValueError for negative + compileall.compile_dir(workers=...) parameter, even when multithreading is + unavailable. + - Issue #28037: Use sqlite3_get_autocommit() instead of setting Connection->inTransaction manually.