This repository has been archived by the owner on Sep 17, 2024. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
23.7.0
->23.12.1
0.32.0
->0.33.0
0.0.287
->0.2.2
Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
psf/black (black)
v23.12.1
Compare Source
Packaging
d
extra by default (#4108)v23.12.0
Compare Source
Highlights
It's almost 2024, which means it's time for a new edition of Black's stable style!
Together with this release, we'll put out an alpha release 24.1a1 showcasing the draft
2024 stable style, which we'll finalize in the January release. Please try it out and
share your feedback.
This release (23.12.0) will still produce the 2023 style. Most but not all of the
changes in
--preview
mode will be in the 2024 stable style.Stable style
# fmt: off
automatically dedents when used with the--line-ranges
option, even when it is not within the specified line range. (#4084)
Preview style
indented less (#4012)
docstring (#4060)
--line-length
(#4086)functions or class definitions (#4066) (#4103)
Configuration
--line-ranges
now skips Black's internal stability check in--safe
mode. Thisavoids a crash on rare inputs that have many unformatted same-content lines. (#4034)
Packaging
Integrations
v23.11.0
Compare Source
Highlights
--line-ranges
command-line option(#4020)
Stable style
await (a ** b)
(#3994)fixes a crash (#4019)
Preview style
less (#3964)
indented less (#3992)
now preserved (#4005)
case
blocks were not split into multiple lines. Also enablegeneral trailing comma rules on
case
blocks (#4024)class definition (#4028)
Configuration
--include
(#3976)Performance
Integrations
formatter (#3940)
v23.10.1
Compare Source
Highlights
Preview style
Packaging
Integrations
summary
parameter. (#3958)
Documentation
https://github.com/psf/black/issues/39683968
v23.10.0
Compare Source
Stable style
Preview style
multiple lines (#3899)
Configuration
BLACK_CACHE_DIR
is set (#3937)Parser
type
were not acccepted insidematch
statements(#3950)
(#3949)
Output
code (#3933)
(#3938)
Integrations
v23.9.1
Compare Source
Due to various issues, the previous release (23.9.0) did not include compiled mypyc
wheels, which make Black significantly faster. These issues have now been fixed, and
this release should come with compiled wheels once again.
There will be no wheels for Python 3.12 due to a bug in mypyc. We will provide 3.12
wheels in a future release as soon as the mypyc bug is fixed.
Packaging
Performance
decreasing the size of the cache (#3877)
v23.9.0
Compare Source
Preview style
if sys.version_info > (3, x):
) and a function definition on the same level (#3862)Configuration
Performance
IPython
if notebook cells do not contain magics (#3782)Blackd
blackd
with single character input (#3558)Integrations
official pre-commit mirror. Swapping
https://github.com/psf/black
tohttps://github.com/psf/black-pre-commit-mirror
inyour
.pre-commit-config.yaml
will make Black about 2x faster (#3828).black.env
folder specified byENV_PATH
will now be removed on the completionof the GitHub Action (#3759)
astral-sh/ruff (ruff)
v0.2.2
Compare Source
Highlights include:
--preview
).--config
argument (e.g.,
--config "lint.isort.combine-as-imports=false"
).Preview features
pycodestyle
] Add blank line(s) rules (E301
,E302
,E303
,E304
,E305
,E306
) (#9266)refurb
] Implementreadlines_in_for
(FURB129
) (#9880)Rule changes
ruff
] Ensure closing parentheses for multiline sequences are always on their own line (RUF022
,RUF023
) (#9793)numpy
] Add missing deprecation violations (NPY002
) (#9862)flake8-bandit
] Detectmark_safe
usages in decorators (#9887)ruff
] Expandasyncio-dangling-task
(RUF006
) to includenew_event_loop
(#9976)flake8-pyi
] Ignore 'unused' private type dicts in class scopes (#9952)Formatter
indent-style=tabs
(#9915)preserve
mode (#9922)CLI
Bug fixes
show-settings
filters directory-agnostic (#9866)DebugText
(#9953)flake8-simplify
] Avoid false positive withasync
for loops (SIM113
) (#9996)flake8-trio
] Respectasync with
intimeout-without-await
(#9859)perflint
] Catch a wider range of mutations inPERF101
(#9955)pycodestyle
] FixE30X
panics on blank lines with trailing white spaces (#9907)pydocstyle
] Allow usingparameters
as a subsection header (D405
) (#9894)pydocstyle
] Fix blank-line docstring rules for module-level docstrings (#9878)pylint
] Accept 0.0 and 1.0 as common magic values (PLR2004
) (#9964)pylint
] Avoid suggesting set rewrites for non-hashable types (#9956)ruff
] Avoid false negatives with string literals inside of method calls (RUF027
) (#9865)ruff
] Fix panic on with f-string detection (RUF027
) (#9990)ruff
] Ignore builtins when detecting missing f-strings (#9849)Performance
memchr
for string lexing (#9888)memchr
for tab-indentation detection (#9853)Result<Tok, LexicalError>
size by usingBox<str>
instead ofString
(#9885)Expr
from 80 to 64 bytes (#9900)v0.2.1
Compare Source
This release includes support for range formatting (i.e., the ability to format specific lines
within a source file).
Preview features
refurb
] Implementmissing-f-string-syntax
(RUF027
) (#9728)Formatter
--range
option toruff format
(#9733)Bug fixes
__get__
and__set__
fromunnecessary-dunder-call
(#9791)Protocol
in ellipsis removal (#9841)Performance
C408
(#9822)C400
,C401
,C410
, andC418
(#9819)AhoCorasick
to speed up quote match (#9773)C405
andC409
(#9821)zero-sleep-call
(#9766)C403
(#9818)Documentation
max-pos-args
example tomax-positional-args
(#9797)weak_cryptographic_key.rs
(#9774)ANN
rules in changelog (#9771)max-positional-args
(#9838)v0.2.0
Compare Source
Breaking changes
NURSERY
selector cannot be used anymoreSee also, the "Remapped rules" section which may result in disabled rules.
Deprecations
The following rules are now deprecated:
missing-type-self
(ANN101
)missing-type-cls
(ANN102
)The following command line options are now deprecated:
--show-source
; use--output-format full
instead--no-show-source
; use--output-format concise
instead--output-format text
; usefull
orconcise
insteadThe following settings have moved and the previous name is deprecated:
ruff.allowed-confusables
→ruff.lint.allowed-confusables
ruff.dummy-variable-rgx
→ruff.lint.dummy-variable-rgx
ruff.explicit-preview-rules
→ruff.lint.explicit-preview-rules
ruff.extend-fixable
→ruff.lint.extend-fixable
ruff.extend-ignore
→ruff.lint.extend-ignore
ruff.extend-per-file-ignores
→ruff.lint.extend-per-file-ignores
ruff.extend-safe-fixes
→ruff.lint.extend-safe-fixes
ruff.extend-select
→ruff.lint.extend-select
ruff.extend-unfixable
→ruff.lint.extend-unfixable
ruff.extend-unsafe-fixes
→ruff.lint.extend-unsafe-fixes
ruff.external
→ruff.lint.external
ruff.fixable
→ruff.lint.fixable
ruff.flake8-annotations
→ruff.lint.flake8-annotations
ruff.flake8-bandit
→ruff.lint.flake8-bandit
ruff.flake8-bugbear
→ruff.lint.flake8-bugbear
ruff.flake8-builtins
→ruff.lint.flake8-builtins
ruff.flake8-comprehensions
→ruff.lint.flake8-comprehensions
ruff.flake8-copyright
→ruff.lint.flake8-copyright
ruff.flake8-errmsg
→ruff.lint.flake8-errmsg
ruff.flake8-gettext
→ruff.lint.flake8-gettext
ruff.flake8-implicit-str-concat
→ruff.lint.flake8-implicit-str-concat
ruff.flake8-import-conventions
→ruff.lint.flake8-import-conventions
ruff.flake8-pytest-style
→ruff.lint.flake8-pytest-style
ruff.flake8-quotes
→ruff.lint.flake8-quotes
ruff.flake8-self
→ruff.lint.flake8-self
ruff.flake8-tidy-imports
→ruff.lint.flake8-tidy-imports
ruff.flake8-type-checking
→ruff.lint.flake8-type-checking
ruff.flake8-unused-arguments
→ruff.lint.flake8-unused-arguments
ruff.ignore
→ruff.lint.ignore
ruff.ignore-init-module-imports
→ruff.lint.ignore-init-module-imports
ruff.isort
→ruff.lint.isort
ruff.logger-objects
→ruff.lint.logger-objects
ruff.mccabe
→ruff.lint.mccabe
ruff.pep8-naming
→ruff.lint.pep8-naming
ruff.per-file-ignores
→ruff.lint.per-file-ignores
ruff.pycodestyle
→ruff.lint.pycodestyle
ruff.pydocstyle
→ruff.lint.pydocstyle
ruff.pyflakes
→ruff.lint.pyflakes
ruff.pylint
→ruff.lint.pylint
ruff.pyupgrade
→ruff.lint.pyupgrade
ruff.select
→ruff.lint.select
ruff.task-tags
→ruff.lint.task-tags
ruff.typing-modules
→ruff.lint.typing-modules
ruff.unfixable
→ruff.lint.unfixable
Remapped rules
The following rules have been remapped to new codes:
raise-without-from-inside-except
:TRY200
toB904
suspicious-eval-usage
:PGH001
toS307
logging-warn
:PGH002
toG010
static-key-dict-comprehension
:RUF011
toB035
runtime-string-union
:TCH006
toTCH010
Stabilizations
The following rules have been stabilized and are no longer in preview:
trio-timeout-without-await
(TRIO100
)trio-sync-call
(TRIO105
)trio-async-function-with-timeout
(TRIO109
)trio-unneeded-sleep
(TRIO110
)trio-zero-sleep-call
(TRIO115
)unnecessary-escaped-quote
(Q004
)enumerate-for-loop
(SIM113
)zip-dict-keys-and-values
(SIM911
)timeout-error-alias
(UP041
)flask-debug-true
(S201
)tarfile-unsafe-members
(S202
)ssl-insecure-version
(S502
)ssl-with-bad-defaults
(S503
)ssl-with-no-version
(S504
)weak-cryptographic-key
(S505
)ssh-no-host-key-verification
(S507
)django-raw-sql
(S611
)mako-templates
(S702
)generator-return-from-iter-method
(PYI058
)runtime-string-union
(TCH006
)numpy2-deprecation
(NPY201
)quadratic-list-summation
(RUF017
)assignment-in-assert
(RUF018
)unnecessary-key-check
(RUF019
)never-union
(RUF020
)direct-logger-instantiation
(LOG001
)invalid-get-logger-argument
(LOG002
)exception-without-exc-info
(LOG007
)undocumented-warn
(LOG009
)Fixes for the following rules have been stabilized and are now available without preview:
triple-single-quotes
(D300
)non-pep604-annotation
(UP007
)dict-get-with-none-default
(SIM910
)in-dict-keys
(SIM118
)collapsible-else-if
(PLR5501
)if-with-same-arms
(SIM114
)useless-else-on-loop
(PLW0120
)unnecessary-literal-union
(PYI030
)unnecessary-spread
(PIE800
)error-instead-of-exception
(TRY400
)redefined-while-unused
(F811
)duplicate-value
(B033
)multiple-imports-on-one-line
(E401
)non-pep585-annotation
(UP006
)Fixes for the following rules have been promoted from unsafe to safe:
unaliased-collections-abc-set-import
(PYI025
)The following behaviors have been stabilized:
module-import-not-at-top-of-file
(E402
) allowssys.path
modifications between importsreimplemented-container-builtin
(PIE807
) includes lambdas that can be replaced withdict
unnecessary-placeholder
(PIE790
) applies to unnecessary ellipses (...
)if-else-block-instead-of-dict-get
(SIM401
) applies toif-else
expressionsPreview features
refurb
] Implementmetaclass_abcmeta
(FURB180
) (#9658)blank_line_after_nested_stub_class
preview style (#9155)and-or-ternary
(PLR1706
) was removedBug fixes
flake8-async
] Takepathlib.Path
into account when analyzing async functions (#9703)flake8-return
] - fix indentation syntax error (RET505
) (#9705)RUF022
,RUF023
: never add two trailing commas to the end of a sequence (#9698)RUF023
: Don't sort__match_args__
, only__slots__
(#9724)flake8-simplify
] - Fix syntax error in autofix (SIM114
) (#9704)pylint
] Show verbatim constant inmagic-value-comparison
(PLR2004
) (#9694)IfExp
with dual string arms ininvalid-envvar-default
(#9734)pylint
] Add__mro_entries__
to known dunder methods (PLW3201
) (#9706)Documentation
v0.1.15
Compare Source
Preview features
NURSERY
selector is used with--preview
(#9682)flake8-return
] Add fixes for all rules (RET505
,RET506
,RET507
,RET508
) (#9595)flake8-simplify
] Add fix forif-with-same-arms
(SIM114
) (#9591)pycodestyle
] Add fix formultiple-imports-on-one-line
(E401
) (#9518)pylint
] Add fix forcollapsible-else-if
(PLR5501
) (#9594)pylint
] Add fix foruseless-else-on-loop
(PLW0120
) (#9590)pylint
] Implementassigning-non-slot
(E0237
) (#9623)pylint
] Implementpotential-index-error
(PLE0643
) (#9545)pylint
] Implementtoo-many-nested-blocks
(PLR1702
) (#9172)ruff
] Add rule to sort__slots__
and__match_args__
(#9564)ruff
] Detect unnecessarydict
comprehensions for iterables (RUF025
) (#9613)ruff
] Guard against use ofdefault_factory
as a keyword argument (RUF026
) (#9651)ruff
] Implementmutable-fromkeys-value
(RUF024
) (#9597)CLI
--help
output (#9633)Bug fixes
flake8-no-pep420
] Include global--config
when determining namespace packages (#9603)flake8-pie
] Omit bound tuples passed to.startswith
or.endswith
(#9661)flake8-return
] Avoid panic when fixing inlined else blocks (#9657)flake8-return
] Consider exception suppression in unnecessary assignment (#9673)flake8-return
] TakeNoReturn
annotation into account when analyzing implicit returns (#9636)flake8-simplify
] Support inverted returns inneedless-bool
(SIM103
) (#9619)flake8-type-checking
] Add Pydantic'sBaseConfig
to default-copy list (#9650)flake8-type-checking
] Avoid markingInitVar
as a typing-only annotation (#9688)pycodestyle
] Allowdtype
comparisons intype-comparison
(#9676)pydocstyle
] Re-implementlast-line-after-section
(D413
) (#9654)Documentation
flake8-pytest-style
] Add fix safety documentation forduplicate-parameterize-test-cases
(#9678)pylint
] Documentliteral-membership
fix safety conditions (#9677)isort
] Fix reference toisort
rule code (#9598)v0.1.14
Compare Source
Preview features
flake8-bugbear
] Add fix forduplicate-value
(B033
) (#9510)flake8-simplify
] Implementenumerate-for-loop
(SIM113
) (#7777)pygrep_hooks
] Add fix fordeprecated-log-warn
(PGH002
) (#9519)pylint
] Implementimport-private-name
(C2701
) (#5920)refurb
] Implementregex-flag-alias
with fix (FURB167
) (#9516)ruff
] Add rule and fix to sort contents of__all__
(RUF022
) (#9474)tryceratops
] Add fix forerror-instead-of-exception
(TRY400
) (#9520)Rule changes
flake8-pyi
] FixPYI047
false negatives on PEP-695 type aliases (#9566)flake8-pyi
] FixPYI049
false negatives on call-basedTypedDict
s (#9567)pylint
] Excludeself
andcls
when counting method arguments (PLR0917
) (#9563)CLI
--show-settings
displays active settings in a far more readable format (#9464)--extension
support to the formatter (#9483)Configuration
pycodestyle
] Use the configured tab size when expanding indents (#9506)Bug fixes
flake8-simplify
] Avoid some moreenumerate-for-loop
false positives (SIM113
) (#9515)pandas-vet
] Limit inplace diagnostics to methods that accept inplace (#9495)pylint
] Add the__prepare__
method to the list of recognized dunder method (#9529)pylint
] Ignore unnecessary dunder calls within dunder definitions (#9496)refurb
] Avoid bailing whenreimplemented-operator
is called on function (FURB118
) (#9556)ruff
] Avoid treating named expressions as static keys (RUF011
) (#9494)Documentation
noqa
with isort rules (#9555)cargo bench -p ruff_benchmark
(#9535)emacs-ruff-format
(#9403)flake8-blind-except
] Document exceptions toblind-except
rule (#9580)v0.1.13
Compare Source
Bug fixes
flake8-simplify
] Account for possibly-empty f-string values in truthiness logic (#9484)pylint
] Add the missing period inunnecessary-dunder-call
(#9485)pylint
] Fix__aenter__
message inunnecessary-dunder-call
(#9492)v0.1.12
Compare Source
Preview features
flake8-bandit
] Addssl-with-no-version
(S504
) (#9384)flake8-bandit
] Implementssl-insecure-version
(S502
) (#9390)flake8-bandit
] Implementssl-with-bad-defaults
(S503
) (#9391)flake8-bandit
] Implement suspicious import rules (S4XX
) (#8831)flake8-simplify
] Implementzip-dict-keys-and-values
(SIM911
) (#9460)pyflakes
] Add a fix forredefined-while-unused
(F811
) (#9419)pylint
] Implementunnecessary-dunder-call
(C2801
) (#9166)ruff
] Addparenthesize-chained-operators
(RUF021
) to enforce parentheses ina or b and c
(#9440)Rule changes
flake8-boolean-trap
] Allow Boolean positional arguments in setters (#9429)flake8-builtins
] Restrictbuiltin-attribute-shadowing
(A003
) to actual shadowed references (#9462)flake8-pyi
] Add fix forgenerator-return-from-iter-method
(PYI058
) (#9355)pyflakes
] Don't flagredefined-while-unused
(F811
) inif
branches (#9418)pyupgrade
] Add some additional Python 3.12 typing members todeprecated-import
(#9445)ruff
] Add fix forparenthesize-chained-operators
(RUF021
) (#9449)ruff
] Include subscripts and attributes in static key rule (RUF011
) (#9416)ruff
] Support variable keys in static dictionary key rule (RUF011
) (#9411)Formatter
# fmt: skip
with interspersed same-line comments (#9395)Bug fixes
None
comparisons (#9376)DisplayParseError
for stdin parser errors (#9409)comment_ranges
for isort directive extraction (#9414)flake8-pyi
] Excludewarnings.deprecated
andtyping_extensions.deprecated
arguments (#9423)flake8-pyi
] Fix false negative forunused-private-protocol
(PYI046
) with unused generic protocols (#9405)pydocstyle
] Disambiguate argument descriptors from section headers (#9427)pylint
] HomogenizePLR0914
message to match otherPLR09XX
rules (#9399)ruff
] AllowHashable = None
in type annotations (RUF013
) (#9442)Documentation
v0.1.11
Compare Source
Preview features
pylint
] Implementsuper-without-brackets
(W0245
) (#9257)Bug fixes
python -m ruff
invocations (#9367)Documentation
relative-imports
message (#9365)yield-in-for-loop
(#9364)v0.1.10
Compare Source
Preview features
dummy_implementations
preview style formatting (#9240)with
statements (#9222)flake8-pyi
] Implementgenerator-return-from-iter-method
(PYI058
) (#9313)pylint
] Implementempty-comment
(PLR2044
) (#9174)refurb
] Implementbit-count
(FURB161
) (#9265)ruff
] Addnever-union
rule to detect redundanttyping.NoReturn
andtyping.Never
(#9217)CLI
Configuration
Bug fixes
asyncio-dangling-task
for nonlocal and global bindings (#9263)__str__
definitions from super classes (#9338)unused-noqa
viaper-file-ignores
(#9300)typing_extensions
members as typing aliases (#9335)Display
for formatter parse errors (#9316)flake8-annotations
] Avoid adding return types to stub methods (#9277)flake8-annotations
] Respect mixedreturn
andraise
cases in return-type analysis (#9310)flake8-bandit
] Don't report violations whenSafeLoader
is imported fromyaml.loader
(S506
) (#9299)pylint
] Avoid panic when comment is preceded by Unicode (#9331)pylint
] ChangePLR0917
error message to match otherPLR09XX
messages (#9308)refurb
] Avoid false positives formath-constant
(FURB152
) (#9290)Documentation
perflint
] DocumentPERF102
fix un-safety (#9351)pyupgrade
] DocumentUP007
fix un-safety (#9306)v0.1.9
Compare Source
Breaking changes
Preview features
pylint
] Implementtoo-many-locals
(PLR0914
) (#9163)reimplemented_operator
(FURB118) (#9171)no_blank_line_before_class_docstring
preview style (#9154)Rule changes
CONSTANT_CASE
variables are improperly flagged for yoda violation (SIM300
) (#9164)flake8-pyi
] Cover ParamSpecs and TypeVarTuples (PYI018
) (#9198)flake8-bugbear
] Add fix forzip-without-explicit-strict
(B905
) (#9176)print
andpprint
statements (T201
,T203
) (#9208)Never
toNoReturn
in auto-typing in Python >= 3.11 (ANN201
) (#9213)Formatter
can_omit_optional_parentheses
: Exit early for unparenthesized expressions (#9125)dynamic
mode with doctests so that it doesn't exceed configured line width (#9129)can_omit_optional_parentheses
for expressions with a right most fstring (#9124)target_version
to formatter options (#9220)CLI
ruff format --check
to display message for already formatted files (#9153)Bug fixes
operator.contains
(#9192)D208
with multibyte indent (#9147)NoReturn
in auto-return-typing (#9206)typing
fromexempt-modules
(#9214)mutable-class-default
violations for Pydantic subclasses (#9187)PYI055
autofix (#9161)Configuration
📅 Schedule: Branch creation - "on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate. View repository job log here.