From 7be273531852a16a407fcb66d5efeede0f7ca474 Mon Sep 17 00:00:00 2001 From: Shantanu <12621235+hauntsaninja@users.noreply.github.com> Date: Sat, 24 Jun 2023 16:06:12 -0700 Subject: [PATCH] Allow specifying `--workers` via environment variable (#3743) --- CHANGES.md | 2 ++ docs/usage_and_configuration/the_basics.md | 16 +++++++++++++++- src/black/__init__.py | 5 ++++- src/black/concurrency.py | 3 ++- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 460f9c9..9717867 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -25,6 +25,8 @@ +- The `--workers` argument to Black can now be specified via the `BLACK_NUM_WORKERS` + environment variable (#3743) - `.pytest_cache`, `.ruff_cache` and `.vscode` are now excluded by default (#3691) - Fix black not honouring `pyproject.toml` settings when running `--stdin-filename` and the `pyproject.toml` found isn't in the current working directory (#3719) diff --git a/docs/usage_and_configuration/the_basics.md b/docs/usage_and_configuration/the_basics.md index 6f3a3cf..2a46148 100644 --- a/docs/usage_and_configuration/the_basics.md +++ b/docs/usage_and_configuration/the_basics.md @@ -246,7 +246,8 @@ respect the `--force-exclude` option on some editors that rely on using stdin. #### `-W`, `--workers` When _Black_ formats multiple files, it may use a process pool to speed up formatting. -This option controls the number of parallel workers. +This option controls the number of parallel workers. This can also be specified via the +`BLACK_NUM_WORKERS` environment variable. #### `-q`, `--quiet` @@ -296,6 +297,19 @@ Read configuration options from a configuration file. See Show available command-line options and exit. +### Environment variable options + +_Black_ supports the following configuration via environment variables. + +#### `BLACK_CACHE_DIR` + +The directory where _Black_ should store its cache. + +#### `BLACK_NUM_WORKERS` + +The number of parallel workers _Black_ should use. The command line option `-W` / +`--workers` takes precedence over this environment variable. + ### Code input alternatives _Black_ supports formatting code via stdin, with the result being printed to stdout. diff --git a/src/black/__init__.py b/src/black/__init__.py index 60a339c..3451c86 100644 --- a/src/black/__init__.py +++ b/src/black/__init__.py @@ -376,7 +376,10 @@ def validate_regex( "--workers", type=click.IntRange(min=1), default=None, - help="Number of parallel workers [default: number of CPUs in the system]", + help=( + "Number of parallel workers [default: BLACK_NUM_WORKERS environment variable " + "or number of CPUs in the system]" + ), ) @click.option( "-q", diff --git a/src/black/concurrency.py b/src/black/concurrency.py index 1598f51..893eba6 100644 --- a/src/black/concurrency.py +++ b/src/black/concurrency.py @@ -80,7 +80,8 @@ def reformat_many( executor: Executor if workers is None: - workers = os.cpu_count() or 1 + workers = int(os.environ.get("BLACK_NUM_WORKERS", 0)) + workers = workers or os.cpu_count() or 1 if sys.platform == "win32": # Work around https://bugs.python.org/issue26903 workers = min(workers, 60) -- 2.39.5