Skip to content

Commit

Permalink
Allow specifying --workers via environment variable (#3743)
Browse files Browse the repository at this point in the history
  • Loading branch information
hauntsaninja committed Jun 24, 2023
1 parent c732a1f commit 7be2735
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 3 deletions.
2 changes: 2 additions & 0 deletions CHANGES.md
Expand Up @@ -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)
Expand Down
16 changes: 15 additions & 1 deletion docs/usage_and_configuration/the_basics.md
Expand Up @@ -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`

Expand Down Expand Up @@ -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.
Expand Down
5 changes: 4 additions & 1 deletion src/black/__init__.py
Expand Up @@ -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",
Expand Down
3 changes: 2 additions & 1 deletion src/black/concurrency.py
Expand Up @@ -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)
Expand Down

0 comments on commit 7be2735

Please sign in to comment.