Skip to content

0.9.3

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 23 Jan 19:33
9058937

Release Notes

Preview features

  • [airflow] Argument fail_stop in DAG has been renamed as fail_fast (AIR302) (#15633)
  • [airflow] Extend AIR303 with more symbols (#15611)
  • [flake8-bandit] Report all references to suspicious functions (S3) (#15541)
  • [flake8-pytest-style] Do not emit diagnostics for empty for loops (PT012, PT031) (#15542)
  • [flake8-simplify] Avoid double negations (SIM103) (#15562)
  • [pyflakes] Fix infinite loop with unused local import in __init__.py (F401) (#15517)
  • [pylint] Do not report methods with only one EM101-compatible raise (PLR6301) (#15507)
  • [pylint] Implement redefined-slots-in-subclass (W0244) (#9640)
  • [pyupgrade] Add rules to use PEP 695 generics in classes and functions (UP046, UP047) (#15565, #15659)
  • [refurb] Implement for-loop-writes (FURB122) (#10630)
  • [ruff] Implement needless-else clause (RUF047) (#15051)
  • [ruff] Implement starmap-zip (RUF058) (#15483)

Rule changes

  • [flake8-bugbear] Do not raise error if keyword argument is present and target-python version is less or equals than 3.9 (B903) (#15549)
  • [flake8-comprehensions] strip parentheses around generators in unnecessary-generator-set (C401) (#15553)
  • [flake8-pytest-style] Rewrite references to .exception (PT027) (#15680)
  • [flake8-simplify] Mark fixes as unsafe (SIM201, SIM202) (#15626)
  • [flake8-type-checking] Fix some safe fixes being labeled unsafe (TC006,TC008) (#15638)
  • [isort] Omit trailing whitespace in unsorted-imports (I001) (#15518)
  • [pydoclint] Allow ignoring one line docstrings for DOC rules (#13302)
  • [pyflakes] Apply redefinition fixes by source code order (F811) (#15575)
  • [pyflakes] Avoid removing too many imports in redefined-while-unused (F811) (#15585)
  • [pyflakes] Group redefinition fixes by source statement (F811) (#15574)
  • [pylint] Include name of base class in message for redefined-slots-in-subclass (W0244) (#15559)
  • [ruff] Update fix for RUF055 to use var == value (#15605)

Formatter

  • Fix bracket spacing for single-element tuples in f-string expressions (#15537)
  • Fix unstable f-string formatting for expressions containing a trailing comma (#15545)

Performance

  • Avoid quadratic membership check in import fixes (#15576)

Server

  • Allow unsafe-fixes settings for code actions (#15666)

Bug fixes

  • [flake8-bandit] Add missing single-line/dotall regex flag (S608) (#15654)
  • [flake8-import-conventions] Fix infinite loop between ICN001 and I002 (ICN001) (#15480)
  • [flake8-simplify] Do not emit diagnostics for expressions inside string type annotations (SIM222, SIM223) (#15405)
  • [pyflakes] Treat arguments passed to the default= parameter of TypeVar as type expressions (F821) (#15679)
  • [pyupgrade] Avoid syntax error when the iterable is a non-parenthesized tuple (UP028) (#15543)
  • [ruff] Exempt NewType calls where the original type is immutable (RUF009) (#15588)
  • Preserve raw string prefix and escapes in all codegen fixes (#15694)

Documentation

  • Generate documentation redirects for lowercase rule codes (#15564)
  • TRY300: Add some extra notes on not catching exceptions you didn't expect (#15036)

Contributors

Install ruff 0.9.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.9.3/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.9.3/ruff-installer.ps1 | iex"

Download ruff 0.9.3

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum