canonical / rockcraft

Tool to create OCI Images using the language from Snapcraft and Charmcraft.
GNU General Public License v3.0
37 stars 44 forks source link

chore(deps): update development dependencies (non-major) #516

Closed renovate[bot] closed 7 months ago

renovate[bot] commented 7 months ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
pycodestyle (changelog) ==2.8.0 -> ==2.11.1 age adoption passing confidence
pyflakes ==2.4.0 -> ==2.5.0 age adoption passing confidence
ruff (source, changelog) ==0.1.6 -> ==0.3.5 age adoption passing confidence
types-Deprecated (changelog) ==1.2.9.20240106 -> ==1.2.9.20240311 age adoption passing confidence
types-PyYAML (changelog) ==6.0.12.12 -> ==6.0.12.20240311 age adoption passing confidence
types-requests (changelog) ==2.31.0.6 -> ==2.31.0.20240402 age adoption passing confidence
types-setuptools (changelog) ==69.0.0.20240125 -> ==69.2.0.20240317 age adoption passing confidence

Release Notes

PyCQA/pyflakes (pyflakes) ### [`v2.5.0`](https://togithub.com/PyCQA/pyflakes/compare/2.4.0...2.5.0) [Compare Source](https://togithub.com/PyCQA/pyflakes/compare/2.4.0...2.5.0)
astral-sh/ruff (ruff) ### [`v0.3.5`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#035) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.3.4...v0.3.5) ##### Preview features - \[`pylint`] Implement `modified-iterating-set` (`E4703`) ([#​10473](https://togithub.com/astral-sh/ruff/pull/10473)) - \[`refurb`] Implement `for-loop-set-mutations` (`FURB142`) ([#​10583](https://togithub.com/astral-sh/ruff/pull/10583)) - \[`refurb`] Implement `unnecessary-from-float` (`FURB164`) ([#​10647](https://togithub.com/astral-sh/ruff/pull/10647)) - \[`refurb`] Implement `verbose-decimal-constructor` (`FURB157`) ([#​10533](https://togithub.com/astral-sh/ruff/pull/10533)) ##### Rule changes - \[`flake8-comprehensions`] Handled special case for `C401` which also matches `C416` ([#​10596](https://togithub.com/astral-sh/ruff/pull/10596)) - \[`flake8-pyi`] Mark `unaliased-collections-abc-set-import` fix as "safe" for more cases in stub files (`PYI025`) ([#​10547](https://togithub.com/astral-sh/ruff/pull/10547)) - \[`numpy`] Add `row_stack` to NumPy 2.0 migration rule ([#​10646](https://togithub.com/astral-sh/ruff/pull/10646)) - \[`pycodestyle`] Allow cell magics before an import (`E402`) ([#​10545](https://togithub.com/astral-sh/ruff/pull/10545)) - \[`pycodestyle`] Avoid blank line rules for the first logical line in cell ([#​10291](https://togithub.com/astral-sh/ruff/pull/10291)) ##### Configuration - Respected nested namespace packages ([#​10541](https://togithub.com/astral-sh/ruff/pull/10541)) - \[`flake8-boolean-trap`] Add setting for user defined allowed boolean trap ([#​10531](https://togithub.com/astral-sh/ruff/pull/10531)) ##### Bug fixes - Correctly handle references in `__all__` definitions when renaming symbols in autofixes ([#​10527](https://togithub.com/astral-sh/ruff/pull/10527)) - Track ranges of names inside `__all__` definitions ([#​10525](https://togithub.com/astral-sh/ruff/pull/10525)) - \[`flake8-bugbear`] Avoid false positive for usage after `continue` (`B031`) ([#​10539](https://togithub.com/astral-sh/ruff/pull/10539)) - \[`flake8-copyright`] Accept commas in default copyright pattern ([#​9498](https://togithub.com/astral-sh/ruff/pull/9498)) - \[`flake8-datetimez`] Allow f-strings with `%z` for `DTZ007` ([#​10651](https://togithub.com/astral-sh/ruff/pull/10651)) - \[`flake8-pytest-style`] Fix `PT014` autofix for last item in list ([#​10532](https://togithub.com/astral-sh/ruff/pull/10532)) - \[`flake8-quotes`] Ignore `Q000`, `Q001` when string is inside forward ref ([#​10585](https://togithub.com/astral-sh/ruff/pull/10585)) - \[`isort`] Always place non-relative imports after relative imports ([#​10669](https://togithub.com/astral-sh/ruff/pull/10669)) - \[`isort`] Respect Unicode characters in import sorting ([#​10529](https://togithub.com/astral-sh/ruff/pull/10529)) - \[`pyflakes`] Fix F821 false negatives when `from __future__ import annotations` is active (attempt 2) ([#​10524](https://togithub.com/astral-sh/ruff/pull/10524)) - \[`pyflakes`] Make `unnecessary-lambda` an always-unsafe fix ([#​10668](https://togithub.com/astral-sh/ruff/pull/10668)) - \[`pylint`] Fixed false-positive on the rule `PLW1641` (`eq-without-hash`) ([#​10566](https://togithub.com/astral-sh/ruff/pull/10566)) - \[`ruff`] Fix panic in unused `# noqa` removal with multi-byte space (`RUF100`) ([#​10682](https://togithub.com/astral-sh/ruff/pull/10682)) ##### Documentation - Add PR title format to `CONTRIBUTING.md` ([#​10665](https://togithub.com/astral-sh/ruff/pull/10665)) - Fix list markup to include blank lines required ([#​10591](https://togithub.com/astral-sh/ruff/pull/10591)) - Put `flake8-logging` next to the other flake8 plugins in registry ([#​10587](https://togithub.com/astral-sh/ruff/pull/10587)) - \[`flake8-bandit`] Update warning message for rule `S305` to address insecure block cipher mode use ([#​10602](https://togithub.com/astral-sh/ruff/pull/10602)) - \[`flake8-bugbear`] Document use of anonymous assignment in `useless-expression` ([#​10551](https://togithub.com/astral-sh/ruff/pull/10551)) - \[`flake8-datetimez`] Clarify error messages and docs for `DTZ` rules ([#​10621](https://togithub.com/astral-sh/ruff/pull/10621)) - \[`pycodestyle`] Use same before vs. after numbers for `space-around-operator` ([#​10640](https://togithub.com/astral-sh/ruff/pull/10640)) - \[`ruff`] Change `quadratic-list-summation` docs to use `iadd` consistently ([#​10666](https://togithub.com/astral-sh/ruff/pull/10666)) ### [`v0.3.4`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#034) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.3.3...v0.3.4) ##### Preview features - \[`flake8-simplify`] Detect implicit `else` cases in `needless-bool` (`SIM103`) ([#​10414](https://togithub.com/astral-sh/ruff/pull/10414)) - \[`pylint`] Implement `nan-comparison` (`PLW0117`) ([#​10401](https://togithub.com/astral-sh/ruff/pull/10401)) - \[`pylint`] Implement `nonlocal-and-global` (`E115`) ([#​10407](https://togithub.com/astral-sh/ruff/pull/10407)) - \[`pylint`] Implement `singledispatchmethod-function` (`PLE5120`) ([#​10428](https://togithub.com/astral-sh/ruff/pull/10428)) - \[`refurb`] Implement `list-reverse-copy` (`FURB187`) ([#​10212](https://togithub.com/astral-sh/ruff/pull/10212)) ##### Rule changes - \[`flake8-pytest-style`] Add automatic fix for `pytest-parametrize-values-wrong-type` (`PT007`) ([#​10461](https://togithub.com/astral-sh/ruff/pull/10461)) - \[`pycodestyle`] Allow SPDX license headers to exceed the line length (`E501`) ([#​10481](https://togithub.com/astral-sh/ruff/pull/10481)) ##### Formatter - Fix unstable formatting for trailing subscript end-of-line comment ([#​10492](https://togithub.com/astral-sh/ruff/pull/10492)) ##### Bug fixes - Avoid code comment detection in PEP 723 script tags ([#​10464](https://togithub.com/astral-sh/ruff/pull/10464)) - Avoid incorrect tuple transformation in single-element case (`C409`) ([#​10491](https://togithub.com/astral-sh/ruff/pull/10491)) - Bug fix: Prevent fully defined links [`name`](link) from being reformatted ([#​10442](https://togithub.com/astral-sh/ruff/pull/10442)) - Consider raw source code for `W605` ([#​10480](https://togithub.com/astral-sh/ruff/pull/10480)) - Docs: Link inline settings when not part of options section ([#​10499](https://togithub.com/astral-sh/ruff/pull/10499)) - Don't treat annotations as redefinitions in `.pyi` files ([#​10512](https://togithub.com/astral-sh/ruff/pull/10512)) - Fix `E231` bug: Inconsistent catch compared to pycodestyle, such as when dict nested in list ([#​10469](https://togithub.com/astral-sh/ruff/pull/10469)) - Fix pylint upstream categories not showing in docs ([#​10441](https://togithub.com/astral-sh/ruff/pull/10441)) - Add missing `Options` references to blank line docs ([#​10498](https://togithub.com/astral-sh/ruff/pull/10498)) - 'Revert "F821: Fix false negatives in .py files when `from __future__ import annotations` is active ([#​10362](https://togithub.com/astral-sh/ruff/issues/10362))"' ([#​10513](https://togithub.com/astral-sh/ruff/pull/10513)) - Apply NFKC normalization to unicode identifiers in the lexer ([#​10412](https://togithub.com/astral-sh/ruff/pull/10412)) - Avoid failures due to non-deterministic binding ordering ([#​10478](https://togithub.com/astral-sh/ruff/pull/10478)) - \[`flake8-bugbear`] Allow tuples of exceptions (`B030`) ([#​10437](https://togithub.com/astral-sh/ruff/pull/10437)) - \[`flake8-quotes`] Avoid syntax errors due to invalid quotes (`Q000, Q002`) ([#​10199](https://togithub.com/astral-sh/ruff/pull/10199)) ### [`v0.3.3`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#033) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.3.2...v0.3.3) ##### Preview features - \[`flake8-bandit`]: Implement `S610` rule ([#​10316](https://togithub.com/astral-sh/ruff/pull/10316)) - \[`pycodestyle`] Implement `blank-line-at-end-of-file` (`W391`) ([#​10243](https://togithub.com/astral-sh/ruff/pull/10243)) - \[`pycodestyle`] Implement `redundant-backslash` (`E502`) ([#​10292](https://togithub.com/astral-sh/ruff/pull/10292)) - \[`pylint`] - implement `redeclared-assigned-name` (`W0128`) ([#​9268](https://togithub.com/astral-sh/ruff/pull/9268)) ##### Rule changes - \[`flake8_comprehensions`] Handled special case for `C400` which also matches `C416` ([#​10419](https://togithub.com/astral-sh/ruff/pull/10419)) - \[`flake8-bandit`] Implement upstream updates for `S311`, `S324` and `S605` ([#​10313](https://togithub.com/astral-sh/ruff/pull/10313)) - \[`pyflakes`] Remove `F401` fix for `__init__` imports by default and allow opt-in to unsafe fix ([#​10365](https://togithub.com/astral-sh/ruff/pull/10365)) - \[`pylint`] Implement `invalid-bool-return-type` (`E304`) ([#​10377](https://togithub.com/astral-sh/ruff/pull/10377)) - \[`pylint`] Include builtin warnings in useless-exception-statement (`PLW0133`) ([#​10394](https://togithub.com/astral-sh/ruff/pull/10394)) ##### CLI - Add message on success to `ruff check` ([#​8631](https://togithub.com/astral-sh/ruff/pull/8631)) ##### Bug fixes - \[`PIE970`] Allow trailing ellipsis in `typing.TYPE_CHECKING` ([#​10413](https://togithub.com/astral-sh/ruff/pull/10413)) - Avoid `TRIO115` if the argument is a variable ([#​10376](https://togithub.com/astral-sh/ruff/pull/10376)) - \[`F811`] Avoid removing shadowed imports that point to different symbols ([#​10387](https://togithub.com/astral-sh/ruff/pull/10387)) - Fix `F821` and `F822` false positives in `.pyi` files ([#​10341](https://togithub.com/astral-sh/ruff/pull/10341)) - Fix `F821` false negatives in `.py` files when `from __future__ import annotations` is active ([#​10362](https://togithub.com/astral-sh/ruff/pull/10362)) - Fix case where `Indexer` fails to identify continuation preceded by newline [#​10351](https://togithub.com/astral-sh/ruff/issues/10351) ([#​10354](https://togithub.com/astral-sh/ruff/pull/10354)) - Sort hash maps in `Settings` display ([#​10370](https://togithub.com/astral-sh/ruff/pull/10370)) - Track conditional deletions in the semantic model ([#​10415](https://togithub.com/astral-sh/ruff/pull/10415)) - \[`C413`] Wrap expressions in parentheses when negating ([#​10346](https://togithub.com/astral-sh/ruff/pull/10346)) - \[`pycodestyle`] Do not ignore lines before the first logical line in blank lines rules. ([#​10382](https://togithub.com/astral-sh/ruff/pull/10382)) - \[`pycodestyle`] Do not trigger `E225` and `E275` when the next token is a ')' ([#​10315](https://togithub.com/astral-sh/ruff/pull/10315)) - \[`pylint`] Avoid false-positive slot non-assignment for `__dict__` (`PLE0237`) ([#​10348](https://togithub.com/astral-sh/ruff/pull/10348)) - Gate f-string struct size test for Rustc < 1.76 ([#​10371](https://togithub.com/astral-sh/ruff/pull/10371)) ##### Documentation - Use `ruff.toml` format in README ([#​10393](https://togithub.com/astral-sh/ruff/pull/10393)) - \[`RUF008`] Make it clearer that a mutable default in a dataclass is only valid if it is typed as a ClassVar ([#​10395](https://togithub.com/astral-sh/ruff/pull/10395)) - \[`pylint`] Extend docs and test in `invalid-str-return-type` (`E307`) ([#​10400](https://togithub.com/astral-sh/ruff/pull/10400)) - Remove `.` from `check` and `format` commands ([#​10217](https://togithub.com/astral-sh/ruff/pull/10217)) ### [`v0.3.2`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#032) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.3.1...v0.3.2) ##### Preview features - Improve single-`with` item formatting for Python 3.8 or older ([#​10276](https://togithub.com/astral-sh/ruff/pull/10276)) ##### Rule changes - \[`pyupgrade`] Allow fixes for f-string rule regardless of line length (`UP032`) ([#​10263](https://togithub.com/astral-sh/ruff/pull/10263)) - \[`pycodestyle`] Include actual conditions in E712 diagnostics ([#​10254](https://togithub.com/astral-sh/ruff/pull/10254)) ##### Bug fixes - Fix trailing kwargs end of line comment after slash ([#​10297](https://togithub.com/astral-sh/ruff/pull/10297)) - Fix unstable `with` items formatting ([#​10274](https://togithub.com/astral-sh/ruff/pull/10274)) - Avoid repeating function calls in f-string conversions ([#​10265](https://togithub.com/astral-sh/ruff/pull/10265)) - Fix E203 false positive for slices in format strings ([#​10280](https://togithub.com/astral-sh/ruff/pull/10280)) - Fix incorrect `Parameter` range for `*args` and `**kwargs` ([#​10283](https://togithub.com/astral-sh/ruff/pull/10283)) - Treat `typing.Annotated` subscripts as type definitions ([#​10285](https://togithub.com/astral-sh/ruff/pull/10285)) ### [`v0.3.1`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#031) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.3.0...v0.3.1) ##### Preview features - \[`pycodestyle`] Fix E301 not triggering on decorated methods. ([#​10117](https://togithub.com/astral-sh/ruff/pull/10117)) - \[`pycodestyle`] Respect `isort` settings in blank line rules (`E3*`) ([#​10096](https://togithub.com/astral-sh/ruff/pull/10096)) - \[`pycodestyle`] Make blank lines in typing stub files optional (`E3*`) ([#​10098](https://togithub.com/astral-sh/ruff/pull/10098)) - \[`pylint`] Implement `singledispatch-method` (`E1519`) ([#​10140](https://togithub.com/astral-sh/ruff/pull/10140)) - \[`pylint`] Implement `useless-exception-statement` (`W0133`) ([#​10176](https://togithub.com/astral-sh/ruff/pull/10176)) ##### Rule changes - \[`flake8-debugger`] Check for use of `debugpy` and `ptvsd` debug modules ([#​10177](https://togithub.com/astral-sh/ruff/issues/10177)) ([#​10194](https://togithub.com/astral-sh/ruff/pull/10194)) - \[`pyupgrade`] Generate diagnostic for all valid f-string conversions regardless of line length (`UP032`) ([#​10238](https://togithub.com/astral-sh/ruff/pull/10238)) - \[`pep8_naming`] Add fixes for `N804` and `N805` ([#​10215](https://togithub.com/astral-sh/ruff/pull/10215)) ##### CLI - Colorize the output of `ruff format --diff` ([#​10110](https://togithub.com/astral-sh/ruff/pull/10110)) - Make `--config` and `--isolated` global flags ([#​10150](https://togithub.com/astral-sh/ruff/pull/10150)) - Correctly expand tildes and environment variables in paths passed to `--config` ([#​10219](https://togithub.com/astral-sh/ruff/pull/10219)) ##### Configuration - Accept a PEP 440 version specifier for `required-version` ([#​10216](https://togithub.com/astral-sh/ruff/pull/10216)) - Implement isort's `default-section` setting ([#​10149](https://togithub.com/astral-sh/ruff/pull/10149)) ##### Bug fixes - Remove trailing space from `CapWords` message ([#​10220](https://togithub.com/astral-sh/ruff/pull/10220)) - Respect external codes in file-level exemptions ([#​10203](https://togithub.com/astral-sh/ruff/pull/10203)) - \[`flake8-raise`] Avoid false-positives for parens-on-raise with `future.exception()` (`RSE102`) ([#​10206](https://togithub.com/astral-sh/ruff/pull/10206)) - \[`pylint`] Add fix for unary expressions in `PLC2801` ([#​9587](https://togithub.com/astral-sh/ruff/pull/9587)) - \[`ruff`] Fix RUF028 not allowing `# fmt: skip` on match cases ([#​10178](https://togithub.com/astral-sh/ruff/pull/10178)) ### [`v0.3.0`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#030) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.2.2...v0.3.0) This release introduces the new Ruff formatter 2024.2 style and adds a new lint rule to detect invalid formatter suppression comments. ##### Preview features - \[`flake8-bandit`] Remove suspicious-lxml-import (`S410`) ([#​10154](https://togithub.com/astral-sh/ruff/pull/10154)) - \[`pycodestyle`] Allow `os.environ` modifications between imports (`E402`) ([#​10066](https://togithub.com/astral-sh/ruff/pull/10066)) - \[`pycodestyle`] Don't warn about a single whitespace character before a comma in a tuple (`E203`) ([#​10094](https://togithub.com/astral-sh/ruff/pull/10094)) ##### Rule changes - \[`eradicate`] Detect commented out `case` statements (`ERA001`) ([#​10055](https://togithub.com/astral-sh/ruff/pull/10055)) - \[`eradicate`] Detect single-line code for `try:`, `except:`, etc. (`ERA001`) ([#​10057](https://togithub.com/astral-sh/ruff/pull/10057)) - \[`flake8-boolean-trap`] Allow boolean positionals in `__post_init__` ([#​10027](https://togithub.com/astral-sh/ruff/pull/10027)) - \[`flake8-copyright`] Allow © in copyright notices ([#​10065](https://togithub.com/astral-sh/ruff/pull/10065)) - \[`isort`]: Use one blank line after imports in typing stub files ([#​9971](https://togithub.com/astral-sh/ruff/pull/9971)) - \[`pylint`] New Rule `dict-iter-missing-items` (`PLE1141`) ([#​9845](https://togithub.com/astral-sh/ruff/pull/9845)) - \[`pylint`] Ignore `sys.version` and `sys.platform` (`PLR1714`) ([#​10054](https://togithub.com/astral-sh/ruff/pull/10054)) - \[`pyupgrade`] Detect literals with unary operators (`UP018`) ([#​10060](https://togithub.com/astral-sh/ruff/pull/10060)) - \[`ruff`] Expand rule for `list(iterable).pop(0)` idiom (`RUF015`) ([#​10148](https://togithub.com/astral-sh/ruff/pull/10148)) ##### Formatter This release introduces the Ruff 2024.2 style, stabilizing the following changes: - Prefer splitting the assignment's value over the target or type annotation ([#​8943](https://togithub.com/astral-sh/ruff/pull/8943)) - Remove blank lines before class docstrings ([#​9154](https://togithub.com/astral-sh/ruff/pull/9154)) - Wrap multiple context managers in `with` parentheses when targeting Python 3.9 or newer ([#​9222](https://togithub.com/astral-sh/ruff/pull/9222)) - Add a blank line after nested classes with a dummy body (`...`) in typing stub files ([#​9155](https://togithub.com/astral-sh/ruff/pull/9155)) - Reduce vertical spacing for classes and functions with a dummy (`...`) body ([#​7440](https://togithub.com/astral-sh/ruff/issues/7440), [#​9240](https://togithub.com/astral-sh/ruff/pull/9240)) - Add a blank line after the module docstring ([#​8283](https://togithub.com/astral-sh/ruff/pull/8283)) - Parenthesize long type hints in assignments ([#​9210](https://togithub.com/astral-sh/ruff/pull/9210)) - Preserve indent for single multiline-string call-expressions ([#​9673](https://togithub.com/astral-sh/ruff/pull/9637)) - Normalize hex escape and unicode escape sequences ([#​9280](https://togithub.com/astral-sh/ruff/pull/9280)) - Format module docstrings ([#​9725](https://togithub.com/astral-sh/ruff/pull/9725)) ##### CLI - Explicitly disallow `extend` as part of a `--config` flag ([#​10135](https://togithub.com/astral-sh/ruff/pull/10135)) - Remove `build` from the default exclusion list ([#​10093](https://togithub.com/astral-sh/ruff/pull/10093)) - Deprecate `ruff `, `ruff --explain`, `ruff --clean`, and `ruff --generate-shell-completion` in favor of `ruff check `, `ruff rule`, `ruff clean`, and `ruff generate-shell-completion` ([#​10169](https://togithub.com/astral-sh/ruff/pull/10169)) - Remove the deprecated CLI option `--format` from `ruff rule` and `ruff linter` ([#​10170](https://togithub.com/astral-sh/ruff/pull/10170)) ##### Bug fixes - \[`flake8-bugbear`] Avoid adding default initializers to stubs (`B006`) ([#​10152](https://togithub.com/astral-sh/ruff/pull/10152)) - \[`flake8-type-checking`] Respect runtime-required decorators for function signatures ([#​10091](https://togithub.com/astral-sh/ruff/pull/10091)) - \[`pycodestyle`] Mark fixes overlapping with a multiline string as unsafe (`W293`) ([#​10049](https://togithub.com/astral-sh/ruff/pull/10049)) - \[`pydocstyle`] Trim whitespace when removing blank lines after section (`D413`) ([#​10162](https://togithub.com/astral-sh/ruff/pull/10162)) - \[`pylint`] Delete entire statement, including semicolons (`PLR0203`) ([#​10074](https://togithub.com/astral-sh/ruff/pull/10074)) - \[`ruff`] Avoid f-string false positives in `gettext` calls (`RUF027`) ([#​10118](https://togithub.com/astral-sh/ruff/pull/10118)) - Fix `ruff` crashing on PowerPC systems because of too small page size ([#​10080](https://togithub.com/astral-sh/ruff/pull/10080)) ##### Performance - Add cold attribute to less likely printer queue branches in the formatter ([#​10121](https://togithub.com/astral-sh/ruff/pull/10121)) - Skip unnecessary string normalization in the formatter ([#​10116](https://togithub.com/astral-sh/ruff/pull/10116)) ##### Documentation - Remove "Beta" Label from formatter documentation ([#​10144](https://togithub.com/astral-sh/ruff/pull/10144)) - `line-length` option: fix link to `pycodestyle.max-line-length` ([#​10136](https://togithub.com/astral-sh/ruff/pull/10136)) ### [`v0.2.2`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#022) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.2.1...v0.2.2) Highlights include: - Initial support formatting f-strings (in `--preview`). - Support for overriding arbitrary configuration options via the CLI through an expanded `--config` argument (e.g., `--config "lint.isort.combine-as-imports=false"`). - Significant performance improvements in Ruff's lexer, parser, and lint rules. ##### Preview features - Implement minimal f-string formatting ([#​9642](https://togithub.com/astral-sh/ruff/pull/9642)) - \[`pycodestyle`] Add blank line(s) rules (`E301`, `E302`, `E303`, `E304`, `E305`, `E306`) ([#​9266](https://togithub.com/astral-sh/ruff/pull/9266)) - \[`refurb`] Implement `readlines_in_for` (`FURB129`) ([#​9880](https://togithub.com/astral-sh/ruff/pull/9880)) ##### Rule changes - \[`ruff`] Ensure closing parentheses for multiline sequences are always on their own line (`RUF022`, `RUF023`) ([#​9793](https://togithub.com/astral-sh/ruff/pull/9793)) - \[`numpy`] Add missing deprecation violations (`NPY002`) ([#​9862](https://togithub.com/astral-sh/ruff/pull/9862)) - \[`flake8-bandit`] Detect `mark_safe` usages in decorators ([#​9887](https://togithub.com/astral-sh/ruff/pull/9887)) - \[`ruff`] Expand `asyncio-dangling-task` (`RUF006`) to include `new_event_loop` ([#​9976](https://togithub.com/astral-sh/ruff/pull/9976)) - \[`flake8-pyi`] Ignore 'unused' private type dicts in class scopes ([#​9952](https://togithub.com/astral-sh/ruff/pull/9952)) ##### Formatter - Docstring formatting: Preserve tab indentation when using `indent-style=tabs` ([#​9915](https://togithub.com/astral-sh/ruff/pull/9915)) - Disable top-level docstring formatting for notebooks ([#​9957](https://togithub.com/astral-sh/ruff/pull/9957)) - Stabilize quote-style's `preserve` mode ([#​9922](https://togithub.com/astral-sh/ruff/pull/9922)) ##### CLI - Allow arbitrary configuration options to be overridden via the CLI ([#​9599](https://togithub.com/astral-sh/ruff/pull/9599)) ##### Bug fixes - Make `show-settings` filters directory-agnostic ([#​9866](https://togithub.com/astral-sh/ruff/pull/9866)) - Respect duplicates when rewriting type aliases ([#​9905](https://togithub.com/astral-sh/ruff/pull/9905)) - Respect tuple assignments in typing analyzer ([#​9969](https://togithub.com/astral-sh/ruff/pull/9969)) - Use atomic write when persisting cache ([#​9981](https://togithub.com/astral-sh/ruff/pull/9981)) - Use non-parenthesized range for `DebugText` ([#​9953](https://togithub.com/astral-sh/ruff/pull/9953)) - \[`flake8-simplify`] Avoid false positive with `async` for loops (`SIM113`) ([#​9996](https://togithub.com/astral-sh/ruff/pull/9996)) - \[`flake8-trio`] Respect `async with` in `timeout-without-await` ([#​9859](https://togithub.com/astral-sh/ruff/pull/9859)) - \[`perflint`] Catch a wider range of mutations in `PERF101` ([#​9955](https://togithub.com/astral-sh/ruff/pull/9955)) - \[`pycodestyle`] Fix `E30X` panics on blank lines with trailing white spaces ([#​9907](https://togithub.com/astral-sh/ruff/pull/9907)) - \[`pydocstyle`] Allow using `parameters` as a subsection header (`D405`) ([#​9894](https://togithub.com/astral-sh/ruff/pull/9894)) - \[`pydocstyle`] Fix blank-line docstring rules for module-level docstrings ([#​9878](https://togithub.com/astral-sh/ruff/pull/9878)) - \[`pylint`] Accept 0.0 and 1.0 as common magic values (`PLR2004`) ([#​9964](https://togithub.com/astral-sh/ruff/pull/9964)) - \[`pylint`] Avoid suggesting set rewrites for non-hashable types ([#​9956](https://togithub.com/astral-sh/ruff/pull/9956)) - \[`ruff`] Avoid false negatives with string literals inside of method calls (`RUF027`) ([#​9865](https://togithub.com/astral-sh/ruff/pull/9865)) - \[`ruff`] Fix panic on with f-string detection (`RUF027`) ([#​9990](https://togithub.com/astral-sh/ruff/pull/9990)) - \[`ruff`] Ignore builtins when detecting missing f-strings ([#​9849](https://togithub.com/astral-sh/ruff/pull/9849)) ##### Performance - Use `memchr` for string lexing ([#​9888](https://togithub.com/astral-sh/ruff/pull/9888)) - Use `memchr` for tab-indentation detection ([#​9853](https://togithub.com/astral-sh/ruff/pull/9853)) - Reduce `Result` size by using `Box` instead of `String` ([#​9885](https://togithub.com/astral-sh/ruff/pull/9885)) - Reduce size of `Expr` from 80 to 64 bytes ([#​9900](https://togithub.com/astral-sh/ruff/pull/9900)) - Improve trailing comma rule performance ([#​9867](https://togithub.com/astral-sh/ruff/pull/9867)) - Remove unnecessary string cloning from the parser ([#​9884](https://togithub.com/astral-sh/ruff/pull/9884)) ### [`v0.2.1`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#021) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.2.0...v0.2.1) This release includes support for range formatting (i.e., the ability to format specific lines within a source file). ##### Preview features - \[`refurb`] Implement `missing-f-string-syntax` (`RUF027`) ([#​9728](https://togithub.com/astral-sh/ruff/pull/9728)) - Format module-level docstrings ([#​9725](https://togithub.com/astral-sh/ruff/pull/9725)) ##### Formatter - Add `--range` option to `ruff format` ([#​9733](https://togithub.com/astral-sh/ruff/pull/9733)) - Don't trim last empty line in docstrings ([#​9813](https://togithub.com/astral-sh/ruff/pull/9813)) ##### Bug fixes - Skip empty lines when determining base indentation ([#​9795](https://togithub.com/astral-sh/ruff/pull/9795)) - Drop `__get__` and `__set__` from `unnecessary-dunder-call` ([#​9791](https://togithub.com/astral-sh/ruff/pull/9791)) - Respect generic `Protocol` in ellipsis removal ([#​9841](https://togithub.com/astral-sh/ruff/pull/9841)) - Revert "Use publicly available Apple Silicon runners ([#​9726](https://togithub.com/astral-sh/ruff/issues/9726))" ([#​9834](https://togithub.com/astral-sh/ruff/pull/9834)) ##### Performance - Skip LibCST parsing for standard dedent adjustments ([#​9769](https://togithub.com/astral-sh/ruff/pull/9769)) - Remove CST-based fixer for `C408` ([#​9822](https://togithub.com/astral-sh/ruff/pull/9822)) - Add our own ignored-names abstractions ([#​9802](https://togithub.com/astral-sh/ruff/pull/9802)) - Remove CST-based fixers for `C400`, `C401`, `C410`, and `C418` ([#​9819](https://togithub.com/astral-sh/ruff/pull/9819)) - Use `AhoCorasick` to speed up quote match ([#​9773](https://togithub.com/astral-sh/ruff/pull/9773)) - Remove CST-based fixers for `C405` and `C409` ([#​9821](https://togithub.com/astral-sh/ruff/pull/9821)) - Add fast-path for comment detection ([#​9808](https://togithub.com/astral-sh/ruff/pull/9808)) - Invert order of checks in `zero-sleep-call` ([#​9766](https://togithub.com/astral-sh/ruff/pull/9766)) - Short-circuit typing matches based on imports ([#​9800](https://togithub.com/astral-sh/ruff/pull/9800)) - Run dunder method rule on methods directly ([#​9815](https://togithub.com/astral-sh/ruff/pull/9815)) - Track top-level module imports in the semantic model ([#​9775](https://togithub.com/astral-sh/ruff/pull/9775)) - Slight speed-up for lowercase and uppercase identifier checks ([#​9798](https://togithub.com/astral-sh/ruff/pull/9798)) - Remove LibCST-based fixer for `C403` ([#​9818](https://togithub.com/astral-sh/ruff/pull/9818)) ##### Documentation - Update `max-pos-args` example to `max-positional-args` ([#​9797](https://togithub.com/astral-sh/ruff/pull/9797)) - Fixed example code in `weak_cryptographic_key.rs` ([#​9774](https://togithub.com/astral-sh/ruff/pull/9774)) - Fix references to deprecated `ANN` rules in changelog ([#​9771](https://togithub.com/astral-sh/ruff/pull/9771)) - Fix default for `max-positional-args` ([#​9838](https://togithub.com/astral-sh/ruff/pull/9838)) ### [`v0.2.0`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#020) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.15...v0.2.0) ##### Breaking changes - The `NURSERY` selector cannot be used anymore - Legacy selection of nursery rules by exact codes is no longer allowed without preview enabled See also, the "Remapped rules" section which may result in disabled rules. ##### Deprecations The following rules are now deprecated: - [`missing-type-self`](https://docs.astral.sh/ruff/rules/missing-type-self/) (`ANN101`) - [`missing-type-cls`](https://docs.astral.sh/ruff/rules/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`; use `full` or `concise` instead The following settings have moved and the previous name is deprecated: - `ruff.allowed-confusables` → [`ruff.lint.allowed-confusables`](https://docs.astral.sh//ruff/settings/#lint_allowed-confusables) - `ruff.dummy-variable-rgx` → [`ruff.lint.dummy-variable-rgx`](https://docs.astral.sh//ruff/settings/#lint_dummy-variable-rgx) - `ruff.explicit-preview-rules` → [`ruff.lint.explicit-preview-rules`](https://docs.astral.sh//ruff/settings/#lint_explicit-preview-rules) - `ruff.extend-fixable` → [`ruff.lint.extend-fixable`](https://docs.astral.sh//ruff/settings/#lint_extend-fixable) - `ruff.extend-ignore` → [`ruff.lint.extend-ignore`](https://docs.astral.sh//ruff/settings/#lint_extend-ignore) - `ruff.extend-per-file-ignores` → [`ruff.lint.extend-per-file-ignores`](https://docs.astral.sh//ruff/settings/#lint_extend-per-file-ignores) - `ruff.extend-safe-fixes` → [`ruff.lint.extend-safe-fixes`](https://docs.astral.sh//ruff/settings/#lint_extend-safe-fixes) - `ruff.extend-select` → [`ruff.lint.extend-select`](https://docs.astral.sh//ruff/settings/#lint_extend-select) - `ruff.extend-unfixable` → [`ruff.lint.extend-unfixable`](https://docs.astral.sh//ruff/settings/#lint_extend-unfixable) - `ruff.extend-unsafe-fixes` → [`ruff.lint.extend-unsafe-fixes`](https://docs.astral.sh//ruff/settings/#lint_extend-unsafe-fixes) - `ruff.external` → [`ruff.lint.external`](https://docs.astral.sh//ruff/settings/#lint_external) - `ruff.fixable` → [`ruff.lint.fixable`](https://docs.astral.sh//ruff/settings/#lint_fixable) - `ruff.flake8-annotations` → [`ruff.lint.flake8-annotations`](https://docs.astral.sh//ruff/settings/#lint_flake8-annotations) - `ruff.flake8-bandit` → [`ruff.lint.flake8-bandit`](https://docs.astral.sh//ruff/settings/#lint_flake8-bandit) - `ruff.flake8-bugbear` → [`ruff.lint.flake8-bugbear`](https://docs.astral.sh//ruff/settings/#lint_flake8-bugbear) - `ruff.flake8-builtins` → [`ruff.lint.flake8-builtins`](https://docs.astral.sh//ruff/settings/#lint_flake8-builtins) - `ruff.flake8-comprehensions` → [`ruff.lint.flake8-comprehensions`](https://docs.astral.sh//ruff/settings/#lint_flake8-comprehensions) - `ruff.flake8-copyright` → [`ruff.lint.flake8-copyright`](https://docs.astral.sh//ruff/settings/#lint_flake8-copyright) - `ruff.flake8-errmsg` → [`ruff.lint.flake8-errmsg`](https://docs.astral.sh//ruff/settings/#lint_flake8-errmsg) - `ruff.flake8-gettext` → [`ruff.lint.flake8-gettext`](https://docs.astral.sh//ruff/settings/#lint_flake8-gettext) - `ruff.flake8-implicit-str-concat` → [`ruff.lint.flake8-implicit-str-concat`](https://docs.astral.sh//ruff/settings/#lint_flake8-implicit-str-concat) - `ruff.flake8-import-conventions` → [`ruff.lint.flake8-import-conventions`](https://docs.astral.sh//ruff/settings/#lint_flake8-import-conventions) - `ruff.flake8-pytest-style` → [`ruff.lint.flake8-pytest-style`](https://docs.astral.sh//ruff/settings/#lint_flake8-pytest-style) - `ruff.flake8-quotes` → [`ruff.lint.flake8-quotes`](https://docs.astral.sh//ruff/settings/#lint_flake8-quotes) - `ruff.flake8-self` → [`ruff.lint.flake8-self`](https://docs.astral.sh//ruff/settings/#lint_flake8-self) - `ruff.flake8-tidy-imports` → [`ruff.lint.flake8-tidy-imports`](https://docs.astral.sh//ruff/settings/#lint_flake8-tidy-imports) - `ruff.flake8-type-checking` → [`ruff.lint.flake8-type-checking`](https://docs.astral.sh//ruff/settings/#lint_flake8-type-checking) - `ruff.flake8-unused-arguments` → [`ruff.lint.flake8-unused-arguments`](https://docs.astral.sh//ruff/settings/#lint_flake8-unused-arguments) - `ruff.ignore` → [`ruff.lint.ignore`](https://docs.astral.sh//ruff/settings/#lint_ignore) - `ruff.ignore-init-module-imports` → [`ruff.lint.ignore-init-module-imports`](https://docs.astral.sh//ruff/settings/#lint_ignore-init-module-imports) - `ruff.isort` → [`ruff.lint.isort`](https://docs.astral.sh//ruff/settings/#lint_isort) - `ruff.logger-objects` → [`ruff.lint.logger-objects`](https://docs.astral.sh//ruff/settings/#lint_logger-objects) - `ruff.mccabe` → [`ruff.lint.mccabe`](https://docs.astral.sh//ruff/settings/#lint_mccabe) - `ruff.pep8-naming` → [`ruff.lint.pep8-naming`](https://docs.astral.sh//ruff/settings/#lint_pep8-naming) - `ruff.per-file-ignores` → [`ruff.lint.per-file-ignores`](https://docs.astral.sh//ruff/settings/#lint_per-file-ignores) - `ruff.pycodestyle` → [`ruff.lint.pycodestyle`](https://docs.astral.sh//ruff/settings/#lint_pycodestyle) - `ruff.pydocstyle` → [`ruff.lint.pydocstyle`](https://docs.astral.sh//ruff/settings/#lint_pydocstyle) - `ruff.pyflakes` → [`ruff.lint.pyflakes`](https://docs.astral.sh//ruff/settings/#lint_pyflakes) - `ruff.pylint` → [`ruff.lint.pylint`](https://docs.astral.sh//ruff/settings/#lint_pylint) - `ruff.pyupgrade` → [`ruff.lint.pyupgrade`](https://docs.astral.sh//ruff/settings/#lint_pyupgrade) - `ruff.select` → [`ruff.lint.select`](https://docs.astral.sh//ruff/settings/#lint_select) - `ruff.task-tags` → [`ruff.lint.task-tags`](https://docs.astral.sh//ruff/settings/#lint_task-tags) - `ruff.typing-modules` → [`ruff.lint.typing-modules`](https://docs.astral.sh//ruff/settings/#lint_typing-modules) - `ruff.unfixable` → [`ruff.lint.unfixable`](https://docs.astral.sh//ruff/settings/#lint_unfixable) ##### Remapped rules The following rules have been remapped to new codes: - [`raise-without-from-inside-except`](https://docs.astral.sh/ruff/rules/raise-without-from-inside-except/): `TRY200` to `B904` - [`suspicious-eval-usage`](https://docs.astral.sh/ruff/rules/suspicious-eval-usage/): `PGH001` to `S307` - [`logging-warn`](https://docs.astral.sh/ruff/rules/logging-warn/): `PGH002` to `G010` - [`static-key-dict-comprehension`](https://docs.astral.sh/ruff/rules/static-key-dict-comprehension): `RUF011` to `B035` - [`runtime-string-union`](https://docs.astral.sh/ruff/rules/runtime-string-union): `TCH006` to `TCH010` ##### Stabilizations The following rules have been stabilized and are no longer in preview: - [`trio-timeout-without-await`](https://docs.astral.sh/ruff/rules/trio-timeout-without-await) (`TRIO100`) - [`trio-sync-call`](https://docs.astral.sh/ruff/rules/trio-sync-call) (`TRIO105`) - [`trio-async-function-with-timeout`](https://docs.astral.sh/ruff/rules/trio-async-function-with-timeout) (`TRIO109`) - [`trio-unneeded-sleep`](https://docs.astral.sh/ruff/rules/trio-unneeded-sleep) (`TRIO110`) - [`trio-zero-sleep-call`](https://docs.astral.sh/ruff/rules/trio-zero-sleep-call) (`TRIO115`) - [`unnecessary-escaped-quote`](https://docs.astral.sh/ruff/rules/unnecessary-escaped-quote) (`Q004`) - [`enumerate-for-loop`](https://docs.astral.sh/ruff/rules/enumerate-for-loop) (`SIM113`) - [`zip-dict-keys-and-values`](https://docs.astral.sh/ruff/rules/zip-dict-keys-and-values) (`SIM911`) - [`timeout-error-alias`](https://docs.astral.sh/ruff/rules/timeout-error-alias) (`UP041`) - [`flask-debug-true`](https://docs.astral.sh/ruff/rules/flask-debug-true) (`S201`) - [`tarfile-unsafe-members`](https://docs.astral.sh/ruff/rules/tarfile-unsafe-members) (`S202`) - [`ssl-insecure-version`](https://docs.astral.sh/ruff/rules/ssl-insecure-version) (`S502`) - [`ssl-with-bad-defaults`](https://docs.astral.sh/ruff/rules/ssl-with-bad-defaults) (`S503`) - [`ssl-with-no-version`](https://docs.astral.sh/ruff/rules/ssl-with-no-version) (`S504`) - [`weak-cryptographic-key`](https://docs.astral.sh/ruff/rules/weak-cryptographic-key) (`S505`) - [`ssh-no-host-key-verification`](https://docs.astral.sh/ruff/rules/ssh-no-host-key-verification) (`S507`) - [`django-raw-sql`](https://docs.astral.sh/ruff/rules/django-raw-sql) (`S611`) - [`mako-templates`](https://docs.astral.sh/ruff/rules/mako-templates) (`S702`) - [`generator-return-from-iter-method`](https://docs.astral.sh/ruff/rules/generator-return-from-iter-method) (`PYI058`) - [`runtime-string-union`](https://docs.astral.sh/ruff/rules/runtime-string-union) (`TCH006`) - [`numpy2-deprecation`](https://docs.astral.sh/ruff/rules/numpy2-deprecation) (`NPY201`) - [`quadratic-list-summation`](https://docs.astral.sh/ruff/rules/quadratic-list-summation) (`RUF017`) - [`assignment-in-assert`](https://docs.astral.sh/ruff/rules/assignment-in-assert) (`RUF018`) - [`unnecessary-key-check`](https://docs.astral.sh/ruff/rules/unnecessary-key-check) (`RUF019`) - [`never-union`](https://docs.astral.sh/ruff/rules/never-union) (`RUF020`) - [`direct-logger-instantiation`](https://docs.astral.sh/ruff/rules/direct-logger-instantiation) (`LOG001`) - [`invalid-get-logger-argument`](https://docs.astral.sh/ruff/rules/invalid-get-logger-argument) (`LOG002`) - [`exception-without-exc-info`](https://docs.astral.sh/ruff/rules/exception-without-exc-info) (`LOG007`) - [`undocumented-warn`](https://docs.astral.sh/ruff/rules/undocumented-warn) (`LOG009`) Fixes for the following rules have been stabilized and are now available without preview: - [`triple-single-quotes`](https://docs.astral.sh/ruff/rules/triple-single-quotes) (`D300`) - [`non-pep604-annotation`](https://docs.astral.sh/ruff/rules/non-pep604-annotation) (`UP007`) - [`dict-get-with-none-default`](https://docs.astral.sh/ruff/rules/dict-get-with-none-default) (`SIM910`) - [`in-dict-keys`](https://docs.astral.sh/ruff/rules/in-dict-keys) (`SIM118`) - [`collapsible-else-if`](https://docs.astral.sh/ruff/rules/collapsible-else-if) (`PLR5501`) - [`if-with-same-arms`](https://docs.astral.sh/ruff/rules/if-with-same-arms) (`SIM114`) - [`useless-else-on-loop`](https://docs.astral.sh/ruff/rules/useless-else-on-loop) (`PLW0120`) - [`unnecessary-literal-union`](https://docs.astral.sh/ruff/rules/unnecessary-literal-union) (`PYI030`) - [`unnecessary-spread`](https://docs.astral.sh/ruff/rules/unnecessary-spread) (`PIE800`) - [`error-instead-of-exception`](https://docs.astral.sh/ruff/rules/error-instead-of-exception) (`TRY400`) - [`redefined-while-unused`](https://docs.astral.sh/ruff/rules/redefined-while-unused) (`F811`) - [`duplicate-value`](https://docs.astral.sh/ruff/rules/duplicate-value) (`B033`) - [`multiple-imports-on-one-line`](https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line) (`E401`) - [`non-pep585-annotation`](https://docs.astral.sh/ruff/rules/non-pep585-annotation) (`UP006`) Fixes for the following rules have been promoted from unsafe to safe: - [`unaliased-collections-abc-set-import`](https://docs.astral.sh/ruff/rules/unaliased-collections-abc-set-import) (`PYI025`) The following behaviors have been stabilized: - [`module-import-not-at-top-of-file`](https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file/) (`E402`) allows `sys.path` modifications between imports - [`reimplemented-container-builtin`](https://docs.astral.sh/ruff/rules/reimplemented-container-builtin/) (`PIE807`) includes lambdas that can be replaced with `dict` - [`unnecessary-placeholder`](https://docs.astral.sh/ruff/rules/unnecessary-placeholder/) (`PIE790`) applies to unnecessary ellipses (`...`) - [`if-else-block-instead-of-dict-get`](https://docs.astral.sh/ruff/rules/if-else-block-instead-of-dict-get/) (`SIM401`) applies to `if-else` expressions ##### Preview features - \[`refurb`] Implement `metaclass_abcmeta` (`FURB180`) ([#​9658](https://togithub.com/astral-sh/ruff/pull/9658)) - Implement `blank_line_after_nested_stub_class` preview style ([#​9155](https://togithub.com/astral-sh/ruff/pull/9155)) - The preview rule [`and-or-ternary`](https://docs.astral.sh/ruff/rules/and-or-ternary) (`PLR1706`) was removed ##### Bug fixes - \[`flake8-async`] Take `pathlib.Path` into account when analyzing async functions ([#​9703](https://togithub.com/astral-sh/ruff/pull/9703)) - \[`flake8-return`] - fix indentation syntax error (`RET505`) ([#​9705](https://togithub.com/astral-sh/ruff/pull/9705)) - Detect multi-statement lines in else removal ([#​9748](https://togithub.com/astral-sh/ruff/pull/9748)) - `RUF022`, `RUF023`: never add two trailing commas to the end of a sequence ([#​9698](https://togithub.com/astral-sh/ruff/pull/9698)) - `RUF023`: Don't sort `__match_args__`, only `__slots__` ([#​9724](https://togithub.com/astral-sh/ruff/pull/9724)) - \[`flake8-simplify`] - Fix syntax error in autofix (`SIM114`) ([#​9704](https://togithub.com/astral-sh/ruff/pull/9704)) - \[`pylint`] Show verbatim constant in `magic-value-comparison` (`PLR2004`) ([#​9694](https://togithub.com/astral-sh/ruff/pull/9694)) - Removing trailing whitespace inside multiline strings is unsafe ([#​9744](https://togithub.com/astral-sh/ruff/pull/9744)) - Support `IfExp` with dual string arms in `invalid-envvar-default` ([#​9734](https://togithub.com/astral-sh/ruff/pull/9734)) - \[`pylint`] Add `__mro_entries__` to known dunder methods (`PLW3201`) ([#​9706](https://togithub.com/astral-sh/ruff/pull/9706)) ##### Documentation - Removed rules are now retained in the documentation ([#​9691](https://togithub.com/astral-sh/ruff/pull/9691)) - Deprecated rules are now indicated in the documentation ([#​9689](https://togithub.com/astral-sh/ruff/pull/9689)) ### [`v0.1.15`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0115) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.14...v0.1.15) ##### Preview features - Error when `NURSERY` selector is used with `--preview` ([#​9682](https://togithub.com/astral-sh/ruff/pull/9682)) - Preserve indentation around multiline strings in formatter ([#​9637](https://togithub.com/astral-sh/ruff/pull/9637)) - \[`flake8-return`] Add fixes for all rules (`RET505`, `RET506`, `RET507`, `RET508`) ([#​9595](https://togithub.com/astral-sh/ruff/pull/9595)) - \[`flake8-simplify`] Add fix for `if-with-same-arms` (`SIM114`) ([#​9591](https://togithub.com/astral-sh/ruff/pull/9591)) - \[`pycodestyle`] Add fix for `multiple-imports-on-one-line` (`E401`) ([#​9518](https://togithub.com/astral-sh/ruff/pull/9518)) - \[`pylint`] Add fix for `collapsible-else-if` (`PLR5501`) ([#​9594](https://togithub.com/astral-sh/ruff/pull/9594)) - \[`pylint`] Add fix for `useless-else-on-loop` (`PLW0120`) ([#​9590](https://togithub.com/astral-sh/ruff/pull/9590)) - \[`pylint`] Implement `assigning-non-slot` (`E0237`) ([#​9623](https://togithub.com/astral-sh/ruff/pull/9623)) - \[`pylint`] Implement `potential-index-error` (`PLE0643`) ([#​9545](https://togithub.com/astral-sh/ruff/pull/9545)) - \[`pylint`] Implement `too-many-nested-blocks` (`PLR1702`) ([#​9172](https://togithub.com/astral-sh/ruff/pull/9172)) - \[`ruff`] Add rule to sort `__slots__` and `__match_args__` ([#​9564](https://togithub.com/astral-sh/ruff/pull/9564)) - \[`ruff`] Detect unnecessary `dict` comprehensions for iterables (`RUF025`) ([#​9613](https://togithub.com/astral-sh/ruff/pull/9613)) - \[`ruff`] Guard against use of `default_factory` as a keyword argument (`RUF026`) ([#​9651](https://togithub.com/astral-sh/ruff/pull/9651)) - \[`ruff`] Implement `mutable-fromkeys-value` (`RUF024`) ([#​9597](https://togithub.com/astral-sh/ruff/pull/9597)) ##### CLI - Enable auto-wrapping of `--help` output ([#​9633](https://togithub.com/astral-sh/ruff/pull/9633)) ##### Bug fixes - Avoid rendering display-only rules as fixable ([#​9649](https://togithub.com/astral-sh/ruff/pull/9649)) - Detect automagic-like assignments in notebooks ([#​9653](https://togithub.com/astral-sh/ruff/pull/9653)) - Generate custom JSON schema for dynamic setting ([#​9632](https://togithub.com/astral-sh/ruff/pull/9632)) - \[`flake8-no-pep420`] Include global `--config` when determining namespace packages ([#​9603](https://togithub.com/astral-sh/ruff/pull/9603)) - \[`flake8-pie`] Omit bound tuples passed to `.startswith` or `.endswith` ([#​9661](https://togithub.com/astral-sh/ruff/pull/9661)) - \[`flake8-return`] Avoid panic when fixing inlined else blocks ([#​9657](https://togithub.com/astral-sh/ruff/pull/9657)) - \[`flake8-return`] Consider exception suppression in unnecessary assignment ([#​9673](https://togithub.com/astral-sh/ruff/pull/9673)) - \[`flake8-return`] Take `NoReturn` annotation into account when analyzing implicit returns ([#​9636](https://togithub.com/astral-sh/ruff/pull/9636)) - \[`flake8-simplify`] Support inverted returns in `needless-bool` (`SIM103`) ([#​9619](https://togithub.com/astral-sh/ruff/pull/9619)) - \[`flake8-type-checking`] Add Pydantic's `BaseConfig` to default-copy list ([#​9650](https://togithub.com/astral-sh/ruff/pull/9650)) - \[`flake8-type-checking`] Avoid marking `InitVar` as a typing-only annotation ([#​9688](https://togithub.com/astral-sh/ruff/pull/9688)) - \[`pycodestyle`] Allow `dtype` comparisons in `type-comparison` ([#​9676](https://togithub.com/astral-sh/ruff/pull/9676)) - \[`pydocstyle`] Re-implement `last-line-after-section` (`D413`) ([#​9654](https://togithub.com/astral-sh/ruff/pull/9654)) ##### Documentation - \[`flake8-pytest-style`] Add fix safety documentation for `duplicate-parameterize-test-cases` ([#​9678](https://togithub.com/astral-sh/ruff/pull/9678)) - \[`pylint`] Document `literal-membership` fix safety conditions ([#​9677](https://togithub.com/astral-sh/ruff/pull/9677)) - \[`isort`] Fix reference to `isort` rule code ([#​9598](https://togithub.com/astral-sh/ruff/pull/9598)) ### [`v0.1.14`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0114) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.13...v0.1.14) ##### Preview features - \[`flake8-bugbear`] Add fix for `duplicate-value` (`B033`) ([#​9510](https://togithub.com/astral-sh/ruff/pull/9510)) - \[`flake8-simplify`] Implement `enumerate-for-loop` (`SIM113`) ([#​7777](https://togithub.com/astral-sh/ruff/pull/7777)) - \[`pygrep_hooks`] Add fix for `deprecated-log-warn` (`PGH002`) ([#​9519](https://togithub.com/astral-sh/ruff/pull/9519)) - \[`pylint`] Implement `import-private-name` (`C2701`) ([#​5920](https://togithub.com/astral-sh/ruff/pull/5920)) - \[`refurb`] Implement `regex-flag-alias` with fix (`FURB167`) ([#​9516](https://togithub.com/astral-sh/ruff/pull/9516)) - \[`ruff`] Add rule and fix to sort contents of `__all__` (`RUF022`) ([#​9474](https://togithub.com/astral-sh/ruff/pull/9474)) - \[`tryceratops`] Add fix for `error-instead-of-exception` (`TRY400`) ([#​9520](https://togithub.com/astral-sh/ruff/pull/9520)) ##### Rule changes - \[`flake8-pyi`] Fix `PYI047` false negatives on PEP-695 type aliases ([#​9566](https://togithub.com/astral-sh/ruff/pull/9566)) - \[`flake8-pyi`] Fix `PYI049` false negatives on call-based `TypedDict`s ([#​9567](https://togithub.com/astral-sh/ruff/pull/9567)) - \[`pylint`] Exclude `self` and `cls` when counting method arguments (`PLR0917`) ([#​9563](https://togithub.com/astral-sh/ruff/pull/9563)) ##### CLI - `--show-settings` displays active settings in a far more readable format ([#​9464](https://togithub.com/astral-sh/ruff/pull/9464)) - Add `--extension` support to the formatter ([#​9483](https://togithub.com/astral-sh/ruff/pull/9483)) ##### Configuration - Ignore preview status for fixable and unfixable selectors ([#​9538](https://togithub.com/astral-sh/ruff/pull/9538)) - \[`pycodestyle`] Use the configured tab size when expanding indents ([#​9506](https://togithub.com/astral-sh/ruff/pull/9506)) ##### Bug fixes - Recursively visit deferred AST nodes ([#​9541](https://togithub.com/astral-sh/ruff/pull/9541)) - Visit deferred lambdas before type definitions ([#​9540](https://togithub.com/astral-sh/ruff/pull/9540)) - \[`flake8-simplify`] Avoid some more `enumerate-for-loop` false positives (`SIM113`) ([#​9515](https://togithub.com/astral-sh/ruff/pull/9515)) - \[`pandas-vet`] Limit inplace diagnostics to methods that accept inplace ([#​9495](https://togithub.com/astral-sh/ruff/pull/9495)) - \[`pylint`] Add the `__prepare__` method to the list of recognized dunder method ([#​9529](https://togithub.com/astral-sh/ruff/pull/9529)) - \[`pylint`] Ignore unnecessary dunder calls within dunder definitions ([#​9496](https://togithub.com/astral-sh/ruff/pull/9496)) - \[`refurb`] Avoid bailing when `reimplemented-operator` is called on function (`FURB118`) ([#​9556](https://togithub.com/astral-sh/ruff/pull/9556)) - \[`ruff`] Avoid treating named expressions as static keys (`RUF011`) ([#​9494](https://togithub.com/astral-sh/ruff/pull/9494)) ##### Documentation - Add instructions on using `noqa` with isort rules ([#​9555](https://togithub.com/astral-sh/ruff/pull/9555)) - Documentation update for URL giving 'page not found' ([#​9565](https://togithub.com/astral-sh/ruff/pull/9565)) - Fix admonition in dark mode ([#​9502](https://togithub.com/astral-sh/ruff/pull/9502)) - Update contributing docs to use `cargo bench -p ruff_benchmark` ([#​9535](https://togithub.com/astral-sh/ruff/pull/9535)) - Update emacs integration section to include `emacs-ruff-format` ([#​9403](https://togithub.com/astral-sh/ruff/pull/9403)) - \[`flake8-blind-except`] Document exceptions to `blind-except` rule ([#​9580](https://togithub.com/astral-sh/ruff/pull/9580)) ### [`v0.1.13`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0113) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.12...v0.1.13) ##### Bug fixes - Include base pyproject when initializing cache settings ([#​9480](https://togithub.com/astral-sh/ruff/pull/9480)) - \[`flake8-simplify`] Account for possibly-empty f-string values in truthiness logic ([#​9484](https://togithub.com/astral-sh/ruff/pull/9484)) - \[`pylint`] Add the

Configuration

📅 Schedule: Branch creation - "every weekend" in timezone Etc/UTC, Automerge - "every weekend" in timezone Etc/UTC.

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, 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.

renovate[bot] commented 7 months ago

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

Warning: custom changes will be lost.