Repository navigation
Add --cache-dir command-line option - #5433
Conversation
|
https://github.com/addu1612/black/blob/9ce4319/src/black/nodes.py#L17 What is the impact of this line not being updated? Also nit: please remove the blank line between changelog entires. |
9ce4319 to
5a0f249
Compare
|
Thanks for catching that. The line in I updated the branch so import-time grammar initialization does not read or write a cache before Click resolves the effective directory. The CLI then initializes grammar and formatter caches in the selected directory. I also added a subprocess regression test that pre-creates the The changelog blank line is removed, and the branch is rebased onto current |
9bdd745 to
0ec6cc3
Compare
0ec6cc3 to
c12b611
Compare
|
Thanks! |
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<26.10.1,>=26.10.0` β `<26.10.2,>=26.10.1` |  |  | --- ### Release Notes <details> <summary>psf/black (black)</summary> ### [`v26.10.1`](https://github.com/psf/black/blob/HEAD/CHANGES.md#Version-26101) [Compare Source](psf/black@26.10.0...26.10.1) ##### Highlights This release fixes a security issue in Black's bundled GitHub Action. Repositories that use the action are encouraged to update to the latest version of Black immediately. This update is received automatically when using `psf/black@stable`, and is independent of the version of Black installed by the action. When the GitHub Action reads version specifiers from `tool.black.required-version`, it now only accepts released versions of Black, as it already did for `black` requirements in dependency lists. Other values, such as URL references, are now rejected. This issue has been registered as `GHSA-cg8m-r9f2-5wm2`; a CVE identifier is pending. ##### Stable style - Fix a long Jupyter notebook assignment magic (for example `x = !ls -la`) being wrapped in parentheses, which IPython can no longer run; such cells are now left unchanged ([#​5481](psf/black#5481)) - Keep repeated lines outside the selected `--line-ranges` unchanged ([#​5436](psf/black#5436)) - Fix `--line-ranges` formatting lines that follow a statement when formatting joins or re-indents that statement ([#​5484](psf/black#5484)) - Fix `--line-ranges` crashing with an internal error when an unselected statement has a `# fmt: skip` comment on the last line before a closing bracket ([#​5477](psf/black#5477)) - Prevent moving an encoding declaration (for example `# -*- coding: latin-1 -*-`) onto the first two lines of a file ([#​5487](psf/black#5487)) - Fix adding an extra trailing blank line inside a multi-line module docstring when its last line is near the line length limit ([#​5494](psf/black#5494)) ##### Preview style - Do not split short expressions on delimiters (such as binary operators, comparisons, or comprehensions) inside brackets when preceded by a standalone comment ([#​5455](psf/black#5455)) - Fix the unstable `string_processing` feature removing backslash-newline sequences from raw strings, which changed their value ([#​5482](psf/black#5482)) - Avoid adding unnecessary parentheses around unbreakable right-hand side expressions in assignments (such as annotated assignments or subscript targets) ([#​5473](psf/black#5473)) - Parenthesize expressions with parameter comments when they exceed the line length under `--preview` ([#​5442](psf/black#5442)) - Fix `wrap_long_dict_values_in_parens` dropping the parentheses around a right-hand side that contains a dictionary, leaving a line over the length limit ([#​5492](psf/black#5492)) - Fix the unstable `string_processing` feature adding a space after `*` or `**` in a PEP 695 type parameter (`* Ts = ...`) when it splits a string in the parameter's default ([#​5504](psf/black#5504)) - Avoid unnecessary line splits of trailers (such as indexing/subscripts) when an earlier bracket split exceeds the line length only due to a trailing comment ([#​5498](psf/black#5498)) ##### Configuration - Add `--cache-dir` to configure the cache directory from the command line ([#​5433](psf/black#5433)) - Don't cache a file as formatted after formatting or checking it with `--line-ranges`, which made a later full `black --check` pass and `black` skip the unformatted lines ([#​5476](psf/black#5476)) - Respect a `.gitignore` that starts with a UTF-8 byte order mark. The mark became part of the first pattern, so that pattern never matched and Black formatted files that git ignores ([#​5497](psf/black#5497)) ##### Performance - Avoid quadratic runtime when splitting very long lines with many trailing bracket pairs (such as consecutive subscripts) ([#​5475](psf/black#5475)) ##### Integrations - Fix the GitHub Action crashing on dependency-group includes when `use_pyproject` is enabled ([#​5479](psf/black#5479)) - When the GitHub Action reads version specifiers from `tool.black.required-version`, it now only accepts released versions of Black, as it already did for `black` requirements in dependency lists. Other values, such as URL references, are now rejected. ([#​5510](psf/black#5510)) </details> --- ### Configuration π **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) π¦ **Automerge**: Enabled. β» **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. π **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNDkuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE0OS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==--> Reviewed-on: https://git.tainton.uk/luke/instant-msg-api/pulls/292 Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>
Description
Add a
--cache-diroption so callers can configure Black cache storage without setting an environment variable. The command-line option takes precedence overBLACK_CACHE_DIRand works for both single-file and concurrent formatting.The selected path now covers both formatting caches and blib2to3 grammar caches. Import-time grammar initialization is write-free until Click resolves the effective cache directory, so an explicit CLI path does not touch the environment/default cache.
Closes #5174
Testing
.venv/bin/python -m pytest tests/test_black.py -k cache -q(25 passed)uvx pre-commit run --all-files(passed).venv/bin/python scripts/generate_schema.py(schema matches).venv/bin/python -m pytest tests/test_black.py -q --tb=short(174 passed, 1 skipped; 2 local Click color-output assertions failed because ANSI codes were stripped in this VPS environment)Checklist - did you ...
--previewstyle, following the stability policy? (Not applicable; this does not change formatting style.)CHANGES.mdif necessary?