Skip to content

chore(deps): update dependency ruff to ^0.1.0

This MR contains the following updates:

Package Type Update Change
ruff (source, changelog) dev minor ^0.0.285 -> ^0.1.0

Release Notes

astral-sh/ruff (ruff)

v0.1.7

Compare Source

Preview features
  • Implement multiline dictionary and list hugging for preview style (#​8293)
  • Implement the fix_power_op_line_length preview style (#​8947)
  • Use Python version to determine typing rewrite safety (#​8919)
  • [flake8-annotations] Enable auto-return-type involving Optional and Union annotations (#​8885)
  • [flake8-bandit] Implement django-raw-sql (S611) (#​8651)
  • [flake8-bandit] Implement tarfile-unsafe-members (S202) (#​8829)
  • [flake8-pyi] Implement fix for unnecessary-literal-union (PYI030) (#​7934)
  • [flake8-simplify] Extend dict-get-with-none-default (SIM910) to non-literals (#​8762)
  • [pylint] - add unnecessary-list-index-lookup (PLR1736) + autofix (#​7999)
  • [pylint] - implement R0202 and R0203 with autofixes (#​8335)
  • [pylint] Implement repeated-keyword (PLe1132) (#​8706)
  • [pylint] Implement too-many-positional (PLR0917) (#​8995)
  • [pylint] Implement unnecessary-dict-index-lookup (PLR1733) (#​8036)
  • [refurb] Implement redundant-log-base (FURB163) (#​8842)
Rule changes
  • [flake8-boolean-trap] Allow booleans in @override methods (#​8882)
  • [flake8-bugbear] Avoid B015,B018 for last expression in a cell (#​8815)
  • [flake8-pie] Allow ellipses for enum values in stub files (#​8825)
  • [flake8-pyi] Check PEP 695 type aliases for snake-case-type-alias and t-suffixed-type-alias (#​8966)
  • [flake8-pyi] Check for kwarg and vararg NoReturn type annotations (#​8948)
  • [flake8-simplify] Omit select context managers from SIM117 (#​8801)
  • [pep8-naming] Allow Django model loads in non-lowercase-variable-in-function (N806) (#​8917)
  • [pycodestyle] Avoid E703 for last expression in a cell (#​8821)
  • [pycodestyle] Update E402 to work at cell level for notebooks (#​8872)
  • [pydocstyle] Avoid D100 for Jupyter Notebooks (#​8816)
  • [pylint] Implement fix for unspecified-encoding (PLW1514) (#​8928)
Formatter
  • Avoid unstable formatting in ellipsis-only body with trailing comment (#​8984)
  • Inline trailing comments for type alias similar to assignments (#​8941)
  • Insert trailing comma when function breaks with single argument (#​8921)
CLI
  • Update ruff check and ruff format to default to the current directory (#​8791)
  • Stop at the first resolved parent configuration (#​8864)
Configuration
  • [pylint] Default max-positional-args to max-args (#​8998)
  • [pylint] Add allow-dunder-method-names setting for bad-dunder-method-name (PLW3201) (#​8812)
  • [isort] Add support for from-first setting (#​8663)
  • [isort] Add support for length-sort settings (#​8841)
Bug fixes
  • Add support for @functools.singledispatch (#​8934)
  • Avoid off-by-one error in stripping noqa following multi-byte char (#​8979)
  • Avoid off-by-one error in with-item named expressions (#​8915)
  • Avoid syntax error via invalid ur string prefix (#​8971)
  • Avoid underflow in get_model matching (#​8965)
  • Avoid unnecessary index diagnostics when value is modified (#​8970)
  • Convert over-indentation rule to use number of characters (#​8983)
  • Detect implicit returns in auto-return-types (#​8952)
  • Fix start >= end error in over-indentation (#​8982)
  • Ignore @overload and @override methods for too-many-arguments checks (#​8954)
  • Lexer start of line is false only for Mode::Expression (#​8880)
  • Mark pydantic_settings.BaseSettings as having default copy semantics (#​8793)
  • Respect dictionary unpacking in NamedTuple assignments (#​8810)
  • Respect local subclasses in flake8-type-checking (#​8768)
  • Support type alias statements in simple statement positions (#​8916)
  • [flake8-annotations] Avoid filtering out un-representable types in return annotation (#​8881)
  • [flake8-pie] Retain extra ellipses in protocols and abstract methods (#​8769)
  • [flake8-pyi] Respect local enum subclasses in simple-defaults (PYI052) (#​8767)
  • [flake8-trio] Use correct range for TRIO115 fix (#​8933)
  • [flake8-trio] Use full arguments range for zero-sleep-call (#​8936)
  • [isort] fix: mark __main__ as first-party import (#​8805)
  • [pep8-naming] Avoid N806 errors for type alias statements (#​8785)
  • [perflint] Avoid PERF101 if there's an append in loop body (#​8809)
  • [pycodestyle] Allow space-before-colon after end-of-slice (#​8838)
  • [pydocstyle] Avoid non-character breaks in over-indentation (D208) (#​8866)
  • [pydocstyle] Ignore underlines when determining docstring logical lines (#​8929)
  • [pylint] Extend self-assigning-variable to multi-target assignments (#​8839)
  • [tryceratops] Avoid repeated triggers in nested tryceratops diagnostics (#​8772)
Documentation
  • Add advice for fixing RUF008 when mutability is not desired (#​8853)
  • Added the command to run ruff using pkgx to the installation.md (#​8955)
  • Document fix safety for flake8-comprehensions and some pyupgrade rules (#​8918)
  • Fix doc formatting for zero-sleep-call (#​8937)
  • Remove duplicate imports from os-stat documentation (#​8930)
  • Replace generated reference to MkDocs (#​8806)
  • Update Arch Linux package URL in installation.md (#​8802)
  • [flake8-pyi] Fix error in t-suffixed-type-alias (PYI043) example (#​8963)
  • [flake8-pyi] Improve motivation for custom-type-var-return-type (PYI019) (#​8766)

v0.1.6

Compare Source

Preview features
  • [flake8-boolean-trap] Extend boolean-type-hint-positional-argument (FBT001) to include booleans in unions (#​7501)
  • [flake8-pie] Extend reimplemented-list-builtin (PIE807) to dict reimplementations (#​8608)
  • [flake8-pie] Extend unnecessary-pass (PIE790) to include ellipses (...) (#​8641)
  • [flake8-pie] Implement fix for unnecessary-spread (PIE800) (#​8668)
  • [flake8-quotes] Implement unnecessary-escaped-quote (Q004) (#​8630)
  • [pycodestyle] Implement fix for multiple-spaces-after-keyword (E271) and multiple-spaces-before-keyword (E272) (#​8622)
  • [pycodestyle] Implement fix for multiple-spaces-after-operator (E222) and multiple-spaces-before-operator (E221) (#​8623)
  • [pyflakes] Extend is-literal (F632) to include comparisons against mutable initializers (#​8607)
  • [pylint] Implement redefined-argument-from-local (PLR1704) (#​8159)
  • [pylint] Implement fix for unnecessary-lambda (PLW0108) (#​8621)
  • [refurb] Implement if-expr-min-max (FURB136) (#​8664)
  • [refurb] Implement math-constant (FURB152) (#​8727)
Rule changes
  • [flake8-annotations] Add autotyping-like return type inference for annotation rules (#​8643)
  • [flake8-future-annotations] Implement fix for future-required-type-annotation (FA102) (#​8711)
  • [flake8-implicit-namespace-package] Avoid missing namespace violations in scripts with shebangs (#​8710)
  • [pydocstyle] Update over-indentation (D208) to preserve indentation offsets when fixing overindented lines (#​8699)
  • [pyupgrade] Refine timeout-error-alias (UP041) to remove false positives (#​8587)
Formatter
  • Fix instability in await formatting with fluent style (#​8676)
  • Compare formatted and unformatted ASTs during formatter tests (#​8624)
  • Preserve trailing semicolon for Notebooks (#​8590)
CLI
  • Improve debug printing for resolving origin of config settings (#​8729)
  • Write unchanged, excluded files to stdout when read via stdin (#​8596)
Configuration
  • [isort] Support disabling sections with no-sections = true (#​8657)
  • [pep8-naming] Support local and dynamic class- and static-method decorators (#​8592)
  • [pydocstyle] Allow overriding pydocstyle convention rules (#​8586)
Bug fixes
  • Avoid syntax error via importing trio.lowlevel (#​8730)
  • Omit unrolled augmented assignments in PIE794 (#​8634)
  • Slice source code instead of generating it for EM fixes (#​7746)
  • Allow whitespace around colon in slices for whitespace-before-punctuation (E203) (#​8654)
  • Use function range for no-self-use (#​8637)
  • F-strings doesn't contain bytes literal for PLW0129 (#​8675)
  • Improve detection of TYPE_CHECKING blocks imported from typing_extensions or _typeshed (#​8429)
  • Treat display as a builtin in IPython (#​8707)
  • Avoid FURB113 autofix if comments are present (#​8494)
  • Consider the new f-string tokens for flake8-commas (#​8582)
  • Remove erroneous bad-dunder-name reference (#​8742)
  • Avoid recommending Self usages in metaclasses (#​8639)
  • Detect runtime-evaluated base classes defined in the current file (#​8572)
  • Avoid inserting trailing commas within f-strings (#​8574)
  • Remove incorrect deprecation label for stdout and stderr (#​8743)
  • Fix unnecessary parentheses in UP007 fix (#​8610)
  • Remove repeated and erroneous scoped settings headers in docs (#​8670)
  • Trim trailing empty strings when converting to f-strings (#​8712)
  • Fix ordering for force-sort-within-sections (#​8665)
  • Run unicode prefix rule over tokens (#​8709)
  • Update UP032 to unescape curly braces in literal parts of converted strings (#​8697)
  • List all ipython builtins (#​8719)
Documentation
  • Document conventions in the FAQ (#​8638)
  • Redirect from rule codes to rule pages in docs (#​8636)
  • Fix permalink to convention setting (#​8575)

v0.1.5

Compare Source

Preview features
  • [flake8-bandit] Implement mako-templates (S702) (#​8533)
  • [flake8-trio] Implement TRIO105 (#​8490)
  • [flake8-trio] Implement TRIO109 (#​8534)
  • [flake8-trio] Implement TRIO110 (#​8537)
  • [flake8-trio] Implement TRIO115 (#​8486)
  • [refurb] Implement type-none-comparison (FURB169) (#​8487)
  • Flag all comparisons against builtin types in E721 (#​8491)
  • Make SIM118 fix as safe when the expression is a known dictionary (#​8525)
Formatter
  • Fix multiline lambda expression statement formatting (#​8466)
CLI
  • Add hidden --extension to override inference of source type from file extension (#​8373)
Configuration
  • Account for selector specificity when merging extend_unsafe_fixes and override extend_safe_fixes (#​8444)
  • Add support for disabling cache with RUFF_NO_CACHE environment variable (#​8538)
Bug fixes
  • [E721] Flag comparisons to memoryview (#​8485)
  • Allow collapsed-ellipsis bodies in other statements (#​8499)
  • Avoid D301 autofix for u prefixed strings (#​8495)
  • Only flag flake8-trio rules when trio import is present (#​8550)
  • Reject more syntactically invalid Python programs (#​8524)
  • Avoid raising TRIO115 violations for trio.sleep(...) calls with non-number values (#​8532)
  • Fix F841 false negative on assignment to multiple variables (#​8489)
Documentation
  • Fix link to isort known-first-party (#​8562)
  • Add notes on fix safety to a few rules (#​8500)
  • Add missing toml config tabs (#​8512)
  • Add instructions for configuration of Emacs (#​8488)
  • Improve detail link contrast in dark mode (#​8548)
  • Fix typo in example (#​8506)
  • Added tabs for configuration files in the documentation (#​8480)
  • Recommend project.requires-python over target-version (#​8513)
  • Add singleton escape hatch to B008 documentation (#​8501)
  • Fix tab configuration docs (#​8502)

v0.1.4

Compare Source

Preview features
  • [flake8-trio] Implement timeout-without-await (TRIO001) (#​8439)
  • [numpy] Implement NumPy 2.0 migration rule (NPY200) (#​7702)
  • [pylint] Implement bad-open-mode (W1501) (#​8294)
  • [pylint] Implement import-outside-toplevel (C0415) rule (#​5180)
  • [pylint] Implement useless-with-lock (W2101) (#​8321)
  • [pyupgrade] Implement timeout-error-alias (UP041) (#​8476)
  • [refurb] Implement isinstance-type-none (FURB168) (#​8308)
  • Detect confusable Unicode-to-Unicode units in RUF001, RUF002, and RUF003 (#​4430)
  • Add newline after module docstrings in preview style (#​8283)
Formatter
  • Add a note on line-too-long to the formatter docs (#​8314)
  • Preserve trailing statement semicolons when using fmt: skip (#​8273)
  • Preserve trailing semicolons when using fmt: off (#​8275)
  • Avoid duplicating linter-formatter compatibility warnings (#​8292)
  • Avoid inserting a newline after function docstrings (#​8375)
  • Insert newline between docstring and following own line comment (#​8216)
  • Split tuples in return positions by comma first (#​8280)
  • Avoid treating byte strings as docstrings (#​8350)
  • Add --line-length option to format command (#​8363)
  • Avoid parenthesizing unsplittable because of comments (#​8431)
CLI
  • Add --output-format to ruff rule and ruff linter (#​8203)
Bug fixes
  • Respect --force-exclude in lint.exclude and format.exclude (#​8393)
  • Respect --extend-per-file-ignores on the CLI (#​8329)
  • Extend bad-dunder-method-name to permit __index__ (#​8300)
  • Fix panic with 8 in octal escape (#​8356)
  • Avoid raising D300 when both triple quote styles are present (#​8462)
  • Consider unterminated f-strings in FStringRanges (#​8154)
  • Avoid including literal shell=True for truthy, non-True diagnostics (#​8359)
  • Avoid triggering single-element test for starred expressions (#​8433)
  • Detect and ignore Jupyter automagics (#​8398)
  • Fix invalid E231 error with f-strings (#​8369)
  • Avoid triggering NamedTuple rewrite with starred annotation (#​8434)
  • Avoid un-setting bracket flag in logical lines (#​8380)
  • Place 'r' prefix before 'f' for raw format strings (#​8464)
  • Remove trailing periods from NumPy 2.0 code actions (#​8475)
  • Fix bug where PLE1307 was raised when formatting %c with characters (#​8407)
  • Remove unicode flag from comparable (#​8440)
  • Improve B015 message (#​8295)
  • Use fixedOverflowWidgets for playground popover (#​8458)
  • Mark byte_bounds as a non-backwards-compatible NumPy 2.0 change (#​8474)
Internals
  • Add a dedicated cache directory per Ruff version (#​8333)
  • Allow selective caching for --fix and --diff (#​8316)
  • Improve performance of comment parsing (#​8193)
  • Improve performance of string parsing (#​8227)
  • Use a dedicated sort key for isort import sorting (#​7963)

v0.1.3

Compare Source

This release includes a variety of improvements to the Ruff formatter, removing several known and unintentional deviations from Black.

Formatter
  • Avoid space around pow for None, True and False (#​8189)
  • Avoid sorting all paths in the format command (#​8181)
  • Insert necessary blank line between class and leading comments (#​8224)
  • Avoid introducing new parentheses in annotated assignments (#​8233)
  • Refine the warnings about incompatible linter options (#​8196)
  • Add test and basic implementation for formatter preview mode (#​8044)
  • Refine warning about incompatible isort settings (#​8192)
  • Only omit optional parentheses for starting or ending with parentheses (#​8238)
  • Use source type to determine parser mode for formatting (#​8205)
  • Don't warn about magic trailing comma when isort.force-single-line is true (#​8244)
  • Use SourceKind::diff for formatter (#​8240)
  • Fix fmt:off with trailing child comment (#​8234)
  • Formatter parentheses support for IpyEscapeCommand (#​8207)
Linter
  • [pylint] Add buffer methods to bad-dunder-method-name (PLW3201) exclusions (#​8190)
  • Match rule prefixes from external codes setting in unused-noqa (#​8177)
  • Use line-length setting for isort in lieu of pycodestyle.max-line-length (#​8235)
  • Update fix for unnecessary-paren-on-raise-exception to unsafe for unknown types (#​8231)
  • Correct quick fix message for W605 (#​8255)
Documentation
  • Fix typo in max-doc-length documentation (#​8201)
  • Improve documentation around linter-formatter conflicts (#​8257)
  • Fix link to error suppression documentation in unused-noqa (#​8172)
  • Add external option to unused-noqa documentation (#​8171)
  • Add title attribute to icons (#​8060)
  • Clarify unsafe case in RSE102 (#​8256)
  • Fix skipping formatting examples (#​8210)
  • docs: fix name of magic-trailing-comma option in README (#​8200)
  • Add note about scope of rule changing in versioning policy (#​8169)
  • Document: Fix default lint rules (#​8218)
  • Fix a wrong setting in configuration.md (#​8186)
  • Fix misspelled TOML headers in the tutorial (#​8209)

v0.1.2

Compare Source

This release includes the Beta version of the Ruff formatter — an extremely fast, Black-compatible Python formatter. Try it today with ruff format! Check out the blog post and read the docs.

Preview features
  • [pylint] Implement non-ascii-module-import (C2403) (#​8056)
  • [pylint] implement non-ascii-name (C2401) (#​8038)
  • [pylint] Implement unnecessary-lambda (W0108) (#​7953)
  • [refurb] Implement read-whole-file (FURB101) (#​7682)
  • Add fix for E223, E224, and E242 (#​8143)
  • Add fix for E225, E226, E227, and E228 (#​8136)
  • Add fix for E252 (#​8142)
  • Add fix for E261 (#​8114)
  • Add fix for E273 and E274 (#​8144)
  • Add fix for E275 (#​8133)
  • Update SIM401 to catch ternary operations (#​7415)
  • Update E721 to allow is and is not for direct type comparisons (#​7905)
Rule changes
  • Add backports.strenum to deprecated-imports (#​8113)
  • Update SIM112 to ignore https_proxy, http_proxy, and no_proxy (#​8140)
  • Update fix for literal-membership (PLR6201) to be unsafe (#​8097)
  • Update fix for mutable-argument-defaults (B006) to be unsafe (#​8108)
Formatter
  • Change line-ending default to auto (#​8057)
  • Respect parenthesized generators in has_own_parentheses (#​8100)
  • Add caching to formatter (#​8089)
  • Remove --line-length option from format command (#​8131)
  • Add formatter to line-length documentation (#​8150)
  • Warn about incompatible formatter options (#​8088)
  • Fix range of unparenthesized tuple subject in match statement (#​8101)
  • Remove experimental formatter warning (#​8148)
  • Don't move type param opening parenthesis comment (#​8163)
  • Update versions in format benchmark script (#​8110)
  • Avoid loading files for cached format results (#​8134)
CLI
  • Show the ruff format command in help menus (#​8167)
  • Add ruff version command with long version display (#​8034)
Configuration
  • New pycodestyle.max-line-length option (#​8039)
Bug fixes
  • Detect sys.version_info slices in outdated-version-block (#​8112)
  • Avoid if-else simplification for TYPE_CHECKING blocks (#​8072)
  • Avoid false-positive print separator diagnostic with starred argument (#​8079)
Documentation
  • Fix message for too-many-arguments lint (#​8092)
  • Fix extend-unsafe-fixes and extend-safe-fixes example (#​8139)
  • Add links to flake8-import-conventions options (#​8115)
  • Rework the documentation to incorporate the Ruff formatter (#​7732)
  • Fix Options JSON schema description (#​8081)
  • Fix typo (pytext -> pytest) (#​8117)
  • Improve magic-value-comparison example in docs (#​8111)

v0.1.1

Compare Source

Rule changes
  • Add unsafe fix for escape-sequence-in-docstring (D301) (#​7970)
Configuration
  • Respect #(deprecated) attribute in configuration options (#​8035)
  • Add [format|lint].exclude options (#​8000)
  • Respect tab-size setting in formatter (#​8006)
  • Add lint.preview (#​8002)
Preview features
  • [pylint] Implement literal-membership (PLR6201) (#​7973)
  • [pylint] Implement too-many-boolean-expressions (PLR0916) (#​7975)
  • [pylint] Implement misplaced-bare-raise (E0704) (#​7961)
  • [pylint] Implement global-at-module-level (W0604) (#​8058)
  • [pylint] Implement unspecified-encoding (PLW1514) (#​7939)
  • Add fix for triple-single-quotes (D300) (#​7967)
Formatter
  • New code style badge for ruff format (#​7878)
  • Fix comments outside expression parentheses (#​7873)
  • Add --target-version to ruff format (#​8055)
  • Skip over parentheses when detecting in keyword (#​8054)
  • Add --diff option to ruff format (#​7937)
  • Insert newline after nested function or class statements (#​7946)
  • Use pass over ellipsis in non-function/class contexts (#​8049)
Bug fixes
  • Lazily evaluate all PEP 695 type alias values (#​8033)
  • Avoid failed assertion when showing fixes from stdin (#​8029)
  • Avoid flagging HTTP and HTTPS literals in urllib-open (#​8046)
  • Avoid flagging bad-dunder-method-name for _ (#​8015)
  • Remove Python 2-only methods from URLOpen audit (#​8047)
  • Use set bracket replacement for iteration-over-set to preserve whitespace and comments (#​8001)
Documentation
  • Update tutorial to match revised Ruff defaults (#​8066)
  • Update rule B005 docs (#​8028)
  • Update GitHub actions example in docs to use --output-format (#​8014)
  • Document lint.preview and format.preview (#​8032)
  • Clarify that new rules should be added to RuleGroup::Preview. (#​7989)

v0.1.0

Compare Source

This is the first release which uses the CHANGELOG file. See GitHub Releases for prior changelog entries.

Read Ruff's new versioning policy.

Breaking changes
  • Unsafe fixes are no longer displayed or applied without opt-in (#​7769)
  • Drop formatting specific rules from the default set (#​7900)
  • The deprecated format setting has been removed (#​7984)
    • The format setting cannot be used to configure the output format, use output-format instead
    • The RUFF_FORMAT environment variable is ignored, use RUFF_OUTPUT_FORMAT instead
    • The --format option has been removed from ruff check, use --output-format instead
Rule changes
  • Extend reimplemented-starmap (FURB140) to catch calls with a single and starred argument (#​7768)
  • Improve cases covered by RUF015 (#​7848)
  • Update SIM15 to allow open followed by close (#​7916)
  • Respect msgspec.Struct default-copy semantics in RUF012 (#​7786)
  • Add sqlalchemy methods to `flake8-boolean-trap`` exclusion list (#​7874)
  • Add fix for PLR1714 (#​7910)
  • Add fix for PIE804 (#​7884)
  • Add fix for PLC0208 (#​7887)
  • Add fix for PYI055 (#​7886)
  • Update non-pep695-type-alias to require --unsafe-fixes outside of stub files (#​7836)
  • Improve fix message for UP018 (#​7913)
  • Update PLW3201 to support Enum sunder names (#​7987)
Preview features
  • Only show warnings for empty preview selectors when enabling rules (#​7842)
  • Add unnecessary-key-check to simplify key in dct and dct[key] to dct.get(key) (#​7895)
  • Add assignment-in-assert to prevent walrus expressions in assert statements (#​7856)
  • [refurb] Add single-item-membership-test (FURB171) (#​7815)
  • [pylint] Add and-or-ternary (R1706) (#​7811)

New rules are added in preview.

Configuration
  • Add unsafe-fixes setting (#​7769)
  • Add extend-safe-fixes and extend-unsafe-fixes for promoting and demoting fixes (#​7841)
CLI
  • Added --unsafe-fixes option for opt-in to display and apply unsafe fixes (#​7769)
  • Fix use of deprecated --format option in warning (#​7837)
  • Show changed files when running under --check (#​7788)
  • Write summary messages to stderr when fixing via stdin instead of omitting them (#​7838)
  • Update fix summary message in check --diff to include unsafe fix hints (#​7790)
  • Add notebook cell field to JSON output format (#​7664)
  • Rename applicability levels to Safe, Unsafe, and Display (#​7843)
Bug fixes
  • Fix bug where f-strings were allowed in match pattern literal (#​7857)
  • Fix SIM110 with a yield in the condition (#​7801)
  • Preserve trailing comments in C414 fixes (#​7775)
  • Check sequence type before triggering unnecessary-enumerate len suggestion (#​7781)
  • Use correct start location for class/function clause header (#​7802)
  • Fix incorrect fixes for SIM101 (#​7798)
  • Format comment before parameter default correctly (#​7870)
  • Fix E251 false positive inside f-strings (#​7894)
  • Allow bindings to be created and referenced within annotations (#​7885)
  • Show per-cell diffs when analyzing notebooks over stdin (#​7789)
  • Avoid curly brace escape in f-string format spec (#​7780)
  • Fix lexing single-quoted f-string with multi-line format spec (#​7787)
  • Consider nursery rules to be in-preview for ruff rule (#​7812)
  • Report precise location for invalid conversion flag (#​7809)
  • Visit pattern match guard as a boolean test (#​7911)
  • Respect --unfixable in ISC rules (#​7917)
  • Fix edge case with PIE804 (#​7922)
  • Show custom message in PTH118 for Path.joinpath with starred arguments (#​7852)
  • Fix false negative in outdated-version-block when using greater than comparisons (#​7920)
  • Avoid converting f-strings within Django gettext calls (#​7898)
  • Fix false positive in PLR6301 (#​7933)
  • Treat type aliases as typing-only expressions e.g. resolves false positive in TCH004 (#​7968)
  • Resolve cache-dir relative to project root (#​7962)
  • Respect subscripted base classes in type-checking rules e.g. resolves false positive in TCH003 (#​7954)
  • Fix JSON schema limit for line-length (#​7883)
  • Fix commented-out coalesce keyword (#​7876)
Documentation
  • Document reimplemented-starmap performance effects (#​7846)
  • Default to following the system dark/light mode (#​7888)
  • Add documentation for fixes (#​7901)
  • Fix typo in docs of PLR6301 (#​7831)
  • Update UP038 docs to note that it results in slower code (#​7872)
  • crlf -> cr-lf (#​7766)
  • Add an example of an unsafe fix (#​7924)
  • Fix documented examples for unnecessary-subscript-reversal (#​7774)
  • Correct error in tuple example in ruff formatter docs (#​7822)
  • Add versioning policy to documentation (#​7923)
  • Fix invalid code in FURB177 example (#​7832)
Formatter
  • Less scary ruff format message (#​7867)
  • Remove spaces from import statements (#​7859)
  • Formatter quoting for f-strings with triple quotes (#​7826)
  • Update ruff_python_formatter generate.py comment (#​7850)
  • Document one-call chaining deviation (#​7767)
  • Allow f-string modifications in line-shrinking cases (#​7818)
  • Add trailing comment deviation to README (#​7827)
  • Add trailing zero between dot and exponential (#​7956)
  • Force parentheses for power operations in unary expressions (#​7955)
Playground
  • Fix playground Quick Fix action (#​7824)

v0.0.292

Compare Source

What's Changed

Highlights

This release includes full support for Python 3.12 (out now!), including the new type parameter (PEP 695) and f-string syntaxes (PEP 701).

PEP 701 lifts many of the restrictions on f-strings that existed in the past, allowing for arbitrarily nested f-strings, consistent quote style within f-strings, and more, all of which are now supported by Ruff (thanks to @​dhruvmanila in https://github.com/astral-sh/ruff/pull/7376).

Breaking Changes
  • In the formatter, format.quote-style no longer affects triple-quoted strings, to align with common conventions as well as the guidance from PEP 8 and PEP 257 (see: https://github.com/astral-sh/ruff/pull/7680).
  • line-too-long (E501) now ignores trailing pragma comments (like # type: ignore and # noqa) when computing line length (see: https://github.com/astral-sh/ruff/pull/7692). This is similar to flake8-bugbear's methodology for detecting overlong lines, and ensures that adding pragmas like # noqa does not introduce further lint errors.
Rules
Settings
Bug Fixes
Other Changes

New Contributors

Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.291...v0.0.292

v0.0.291

Compare Source

What's Changed

Deprecations

The format command-line argument and configuration option has been renamed to output-format. While Ruff will continue to respect format when passed as a command-line argument or configuration option, this backwards-compatible support will be dropped in a future release. See: https://github.com/astral-sh/ruff/pull/7514.

Rules
Settings
Bug Fixes

New Contributors

Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.290...v0.0.291

v0.0.290

Compare Source

What's Changed

Rules
Settings
Bug Fixes
Preview

What's this section?

New Contributors

Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.289...v0.0.290

v0.0.289

Compare Source

What's Changed

Bug Fixes
Preview

This release includes a new preview mode which can be used to opt-in to unstable rules and features.

See the documentation and versioning discussion for more details.

New Contributors

Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.288...v0.0.289

v0.0.288

Compare Source

What's Changed

Breaking Changes
Rules
Settings
Bug Fixes
Other Changes

New Contributors

Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.287...v0.0.288

v0.0.287

Compare Source

What's Changed

Rules
Bug Fixes

New Contributors

Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.286...v0.0.287

v0.0.286

Compare Source

What's Changed

New Rules
Settings
Bug Fixes

Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.285...v0.0.286


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by Moritz Sauter

Merge request reports

Loading