Allow specifying --workers via environment variable (#3743)

This commit is contained in:
Shantanu 2023-06-24 16:06:12 -07:00 committed by GitHub
parent c732a1f13a
commit 7be2735318
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 3 deletions

View File

@ -25,6 +25,8 @@
<!-- Changes to how Black can be configured -->
- 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)

View File

@ -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.

View File

@ -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",

View File

@ -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)