Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update black to 22.3.0 #695

Closed
wants to merge 1 commit into from
Closed

Conversation

pyup-bot
Copy link
Collaborator

This PR updates black from 19.10b0 to 22.3.0.

Changelog

22.3.0

Preview style

- Code cell separators `%%` are now standardised to ` %%` (2919)
- Remove unnecessary parentheses from `except` statements (2939)
- Remove unnecessary parentheses from tuple unpacking in `for` loops (2945)
- Avoid magic-trailing-comma in single-element subscripts (2942)

Configuration

- Do not format `__pypackages__` directories by default (2836)
- Add support for specifying stable version with `--required-version` (2832).
- Avoid crashing when the user has no homedir (2814)
- Avoid crashing when md5 is not available (2905)
- Fix handling of directory junctions on Windows (2904)

Documentation

- Update pylint config documentation (2931)

Integrations

- Move test to disable plugin in Vim/Neovim, which speeds up loading (2896)

Output

- In verbose, mode, log when _Black_ is using user-level config (2861)

Packaging

- Fix Black to work with Click 8.1.0 (2966)
- On Python 3.11 and newer, use the standard library's `tomllib` instead of `tomli`
(2903)
- `black-primer`, the deprecated internal devtool, has been removed and copied to a
[separate repository](https://github.com/cooperlees/black-primer) (#2924)

Parser

- Black can now parse starred expressions in the target of `for` and `async for`
statements, e.g `for item in *items_1, *items_2: pass` (2879).

22.1.0

At long last, _Black_ is no longer a beta product! This is the first non-beta release
and the first release covered by our new
[stability policy](https://black.readthedocs.io/en/stable/the_black_code_style/index.html#stability-policy).

Highlights

- **Remove Python 2 support** (2740)
- Introduce the `--preview` flag (2752)

Style

- Deprecate `--experimental-string-processing` and move the functionality under
`--preview` (2789)
- For stubs, one blank line between class attributes and methods is now kept if there's
at least one pre-existing blank line (2736)
- Black now normalizes string prefix order (2297)
- Remove spaces around power operators if both operands are simple (2726)
- Work around bug that causes unstable formatting in some cases in the presence of the
magic trailing comma (2807)
- Use parentheses for attribute access on decimal float and int literals (2799)
- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex
literals (2799)
- Treat blank lines in stubs the same inside top-level `if` statements (2820)
- Fix unstable formatting with semicolons and arithmetic expressions (2817)
- Fix unstable formatting around magic trailing comma (2572)

Parser

- Fix mapping cases that contain as-expressions, like `case {"key": 1 | 2 as password}`
(2686)
- Fix cases that contain multiple top-level as-expressions, like `case 1 as a, 2 as b`
(2716)
- Fix call patterns that contain as-expressions with keyword arguments, like
`case Foo(bar=baz as quux)` (2749)
- Tuple unpacking on `return` and `yield` constructs now implies 3.8+ (2700)
- Unparenthesized tuples on annotated assignments (e.g
`values: Tuple[int, ...] = 1, 2, 3`) now implies 3.8+ (2708)
- Fix handling of standalone `match()` or `case()` when there is a trailing newline or a
comment inside of the parentheses. (2760)
- `from __future__ import annotations` statement now implies Python 3.7+ (2690)

Performance

- Speed-up the new backtracking parser about 4X in general (enabled when
`--target-version` is set to 3.10 and higher). (2728)
- _Black_ is now compiled with [mypyc](https://github.com/mypyc/mypyc) for an overall 2x
speed-up. 64-bit Windows, MacOS, and Linux (not including musl) are supported. (1009,
2431)

Configuration

- Do not accept bare carriage return line endings in pyproject.toml (2408)
- Add configuration option (`python-cell-magics`) to format cells with custom magics in
Jupyter Notebooks (2744)
- Allow setting custom cache directory on all platforms with environment variable
`BLACK_CACHE_DIR` (2739).
- Enable Python 3.10+ by default, without any extra need to specify
`--target-version=py310`. (2758)
- Make passing `SRC` or `--code` mandatory and mutually exclusive (2804)

Output

- Improve error message for invalid regular expression (2678)
- Improve error message when parsing fails during AST safety check by embedding the
underlying SyntaxError (2693)
- No longer color diff headers white as it's unreadable in light themed terminals
(2691)
- Text coloring added in the final statistics (2712)
- Verbose mode also now describes how a project root was discovered and which paths will
be formatted. (2526)

Packaging

- All upper version bounds on dependencies have been removed (2718)
- `typing-extensions` is no longer a required dependency in Python 3.10+ (2772)
- Set `click` lower bound to `8.0.0` (2791)

Integrations

- Update GitHub action to support containerized runs (2748)

Documentation

- Change protocol in pip installation instructions to `https://` (#2761)
- Change HTML theme to Furo primarily for its responsive design and mobile support
(2793)
- Deprecate the `black-primer` tool (2809)
- Document Python support policy (2819)

21.12b0

_Black_

- Fix determination of f-string expression spans (2654)
- Fix bad formatting of error messages about EOF in multi-line statements (2343)
- Functions and classes in blocks now have more consistent surrounding spacing (2472)

Jupyter Notebook support

- Cell magics are now only processed if they are known Python cell magics. Earlier, all
cell magics were tokenized, leading to possible indentation errors e.g. with
`%%writefile`. (2630)
- Fix assignment to environment variables in Jupyter Notebooks (2642)

Python 3.10 support

- Point users to using `--target-version py310` if we detect 3.10-only syntax (2668)
- Fix `match` statements with open sequence subjects, like `match a, b:` or
`match a, *b:` (2639) (2659)
- Fix `match`/`case` statements that contain `match`/`case` soft keywords multiple
times, like `match re.match()` (2661)
- Fix `case` statements with an inline body (2665)
- Fix styling of starred expressions inside `match` subject (2667)
- Fix parser error location on invalid syntax in a `match` statement (2649)
- Fix Python 3.10 support on platforms without ProcessPoolExecutor (2631)
- Improve parsing performance on code that uses `match` under `--target-version py310`
up to ~50% (2670)

Packaging

- Remove dependency on `regex` (2644) (2663)

21.11b1

_Black_

- Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (2621)

21.11b0

_Black_

- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax
detection (2592)
- Add experimental PyPy support (2559)
- Add partial support for the match statement. As it's experimental, it's only enabled
when `--target-version py310` is explicitly specified (2586)
- Add support for parenthesized with (2586)
- Declare support for Python 3.10 for running Black (2562)

Integrations

- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (2610)
- The vim plugin now parses `skip_magic_trailing_comma` from pyproject.toml (2613)

21.10b0

_Black_

- Document stability policy, that will apply for non-beta releases (2529)
- Add new `--workers` parameter (2514)
- Fixed feature detection for positional-only arguments in lambdas (2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed
even though it has been removed (2580)
- Deprecate Python 2 formatting support (2523)

_Blackd_

- Remove dependency on aiohttp-cors (2500)
- Bump required aiohttp version to 3.7.4 (2509)

_Black-Primer_

- Add primer support for --projects (2555)
- Print primer summary after individual failures (2570)

Integrations

- Allow to pass `target_version` in the vim plugin (1319)
- Install build tools in docker file and use multi-stage build to keep the image size
down (2582)

21.9b0

Packaging

- Fix missing modules in self-contained binaries (2466)
- Fix missing toml extra used during installation (2475)

21.8b0

_Black_

- Add support for formatting Jupyter Notebook files (2357)
- Move from `appdirs` dependency to `platformdirs` (2375)
- Present a more user-friendly error if .gitignore is invalid (2414)
- The failsafe for accidentally added backslashes in f-string expressions has been
hardened to handle more edge cases during quote normalization (2437)
- Avoid changing a function return type annotation's type to a tuple by adding a
trailing comma (2384)
- Parsing support has been added for unparenthesized walruses in set literals, set
comprehensions, and indices (2447).
- Pin `setuptools-scm` build-time dependency version (2457)
- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10
(2460)

_Blackd_

- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that
scan installed packages (2440)

Integrations

- The provided pre-commit hooks no longer specify `language_version` to avoid overriding
`default_language_version` (2430)

21.7b0

_Black_

- Configuration files using TOML features higher than spec v0.5.0 are now supported
(2301)
- Add primer support and test for code piped into black via STDIN (2315)
- Fix internal error when `FORCE_OPTIONAL_PARENTHESES` feature is enabled (2332)
- Accept empty stdin (2346)
- Provide a more useful error when parsing fails during AST safety checks (2304)

Docker

- Add new `latest_release` tag automation to follow latest black release on docker
images (2374)

Integrations

- The vim plugin now searches upwards from the directory containing the current buffer
instead of the current working directory for pyproject.toml. (1871)
- The vim plugin now reads the correct string normalization option in pyproject.toml
(1869)
- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml
(1869)

21.6b0

_Black_

- Fix failure caused by `fmt: skip` and indentation (2281)
- Account for += assignment when deciding whether to split string (2312)
- Correct max string length calculation when there are string operators (2292)
- Fixed option usage when using the `--code` flag (2259)
- Do not call `uvloop.install()` when _Black_ is used as a library (2303)
- Added `--required-version` option to require a specific version to be running (2300)
- Fix incorrect custom breakpoint indices when string group contains fake f-strings
(2311)
- Fix regression where `R` prefixes would be lowercased for docstrings (2285)
- Fix handling of named escapes (`\N{...}`) when `--experimental-string-processing` is
used (2319)

Integrations

- The official Black action now supports choosing what version to use, and supports the
major 3 OSes. (1940)

21.5b2

_Black_

- A space is no longer inserted into empty docstrings (2249)
- Fix handling of .gitignore files containing non-ASCII characters on Windows (2229)
- Respect `.gitignore` files in all levels, not only `root/.gitignore` file (apply
`.gitignore` rules like `git` does) (2225)
- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (2227)
- Add extra uvloop install + import support if in python env (2258)
- Fix --experimental-string-processing crash when matching parens are not found (2283)
- Make sure to split lines that start with a string operator (2286)
- Fix regular expression that black uses to identify f-expressions (2287)

_Blackd_

- Add a lower bound for the `aiohttp-cors` dependency. Only 0.4.0 or higher is
supported. (2231)

Packaging

- Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline
(2198)
- Always build binaries with the latest available Python (2260)

Documentation

- Add discussion of magic comments to FAQ page (2272)
- `--experimental-string-processing` will be enabled by default in the future (2273)
- Fix typos discovered by codespell (2228)
- Fix Vim plugin installation instructions. (2235)
- Add new Frequently Asked Questions page (2247)
- Fix encoding + symlink issues preventing proper build on Windows (2262)

21.5b1

_Black_

- Refactor `src/black/__init__.py` into many files (2206)

Documentation

- Replaced all remaining references to the
[`master`](https://github.com/psf/black/tree/main) branch with the
[`main`](https://github.com/psf/black/tree/main) branch. Some additional changes in
the source code were also made. (2210)
- Sigificantly reorganized the documentation to make much more sense. Check them out by
heading over to [the stable docs on RTD](https://black.readthedocs.io/en/stable/).
(2174)

21.5b0

_Black_

- Set `--pyi` mode if `--stdin-filename` ends in `.pyi` (2169)
- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are
being called but with no arguments (2182)

_Black-Primer_

- Add `--no-diff` to black-primer to suppress formatting changes (2187)

21.4b2

_Black_

- Fix crash if the user configuration directory is inaccessible. (2158)

- Clarify
[circumstances](https://github.com/psf/black/blob/master/docs/the_black_code_style.md#pragmatism)
in which _Black_ may change the AST (2159)

- Allow `.gitignore` rules to be overridden by specifying `exclude` in `pyproject.toml`
or on the command line. (2170)

_Packaging_

- Install `primer.json` (used by `black-primer` by default) with black. (2154)

21.4b1

_Black_

- Fix crash on docstrings ending with "\\ ". (2142)

- Fix crash when atypical whitespace is cleaned out of dostrings (2120)

- Reflect the `--skip-magic-trailing-comma` and `--experimental-string-processing` flags
in the name of the cache file. Without this fix, changes in these flags would not take
effect if the cache had already been populated. (2131)

- Don't remove necessary parentheses from assignment expression containing assert /
return statements. (2143)

_Packaging_

- Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling

21.4b0

_Black_

- Fixed a rare but annoying formatting instability created by the combination of
optional trailing commas inserted by `Black` and optional parentheses looking at
pre-existing "magic" trailing commas. This fixes issue 1629 and all of its many many
duplicates. (2126)

- `Black` now processes one-line docstrings by stripping leading and trailing spaces,
and adding a padding space when needed to break up """". (1740)

- `Black` now cleans up leading non-breaking spaces in comments (2092)

- `Black` now respects `--skip-string-normalization` when normalizing multiline
docstring quotes (1637)

- `Black` no longer removes all empty lines between non-function code and decorators
when formatting typing stubs. Now `Black` enforces a single empty line. (1646)

- `Black` no longer adds an incorrect space after a parenthesized assignment expression
in if/while statements (1655)

- Added `--skip-magic-trailing-comma` / `-C` to avoid using trailing commas as a reason
to split lines (1824)

- fixed a crash when PWD=/ on POSIX (1631)

- fixed "I/O operation on closed file" when using --diff (1664)

- Prevent coloured diff output being interleaved with multiple files (1673)

- Added support for PEP 614 relaxed decorator syntax on python 3.9 (1711)

- Added parsing support for unparenthesized tuples and yield expressions in annotated
assignments (1835)

- added `--extend-exclude` argument (PR 2005)

- speed up caching by avoiding pathlib (1950)

- `--diff` correctly indicates when a file doesn't end in a newline (1662)

- Added `--stdin-filename` argument to allow stdin to respect `--force-exclude` rules
(1780)

- Lines ending with `fmt: skip` will now be not formatted (1800)

- PR 2053: Black no longer relies on typed-ast for Python 3.8 and higher

- PR 2053: Python 2 support is now optional, install with
`python3 -m pip install black[python2]` to maintain support.

- Exclude `venv` directory by default (1683)

- Fixed "Black produced code that is not equivalent to the source" when formatting
Python 2 docstrings (2037)

_Packaging_

- Self-contained native _Black_ binaries are now provided for releases via GitHub
Releases (1743)

20.8b1

_Packaging_

- explicitly depend on Click 7.1.2 or newer as `Black` no longer works with versions
older than 7.0

20.8b0

_Black_

- re-implemented support for explicit trailing commas: now it works consistently within
any bracket pair, including nested structures (1288 and duplicates)

- `Black` now reindents docstrings when reindenting code around it (1053)

- `Black` now shows colored diffs (1266)

- `Black` is now packaged using 'py3' tagged wheels (1388)

- `Black` now supports Python 3.8 code, e.g. star expressions in return statements
(1121)

- `Black` no longer normalizes capital R-string prefixes as those have a
community-accepted meaning (1244)

- `Black` now uses exit code 2 when specified configuration file doesn't exit (1361)

- `Black` now works on AWS Lambda (1141)

- added `--force-exclude` argument (1032)

- removed deprecated `--py36` option (1236)

- fixed `--diff` output when EOF is encountered (526)

- fixed ` fmt: off` handling around decorators (560)

- fixed unstable formatting with some ` type: ignore` comments (1113)

- fixed invalid removal on organizing brackets followed by indexing (1575)

- introduced `black-primer`, a CI tool that allows us to run regression tests against
existing open source users of Black (1402)

- introduced property-based fuzzing to our test suite based on Hypothesis and
Hypothersmith (1566)

- implemented experimental and disabled by default long string rewrapping (1132),
hidden under a `--experimental-string-processing` flag while it's being worked on;
this is an undocumented and unsupported feature, you lose Internet points for
depending on it (1609)

Vim plugin

- prefer virtualenv packages over global packages (1383)
Links

@pyup-bot pyup-bot mentioned this pull request Mar 29, 2022
@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #712

@pyup-bot pyup-bot closed this Jun 28, 2022
@ronin13 ronin13 deleted the pyup-update-black-19.10b0-to-22.3.0 branch June 28, 2022 05:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant