github astral-sh/ruff 0.8.1

20 hours ago

Release Notes

Preview features

  • Formatter: Avoid invalid syntax for format-spec with quotes for all Python versions (#14625)
  • Formatter: Consider quotes inside format-specs when choosing the quotes for an f-string (#14493)
  • Formatter: Do not consider f-strings with escaped newlines as multiline (#14624)
  • Formatter: Fix f-string formatting in assignment statement (#14454)
  • Formatter: Fix unnecessary space around power operator (**) in overlong f-string expressions (#14489)
  • [airflow] Avoid implicit schedule argument to DAG and @dag (AIR301) (#14581)
  • [flake8-builtins] Exempt private built-in modules (A005) (#14505)
  • [flake8-pytest-style] Fix pytest.mark.parametrize rules to check calls instead of decorators (#14515)
  • [flake8-type-checking] Implement runtime-cast-value (TC006) (#14511)
  • [flake8-type-checking] Implement unquoted-type-alias (TC007) and quoted-type-alias (TC008) (#12927)
  • [flake8-use-pathlib] Recommend Path.iterdir() over os.listdir() (PTH208) (#14509)
  • [pylint] Extend invalid-envvar-default to detect os.environ.get (PLW1508) (#14512)
  • [pylint] Implement len-test (PLC1802) (#14309)
  • [refurb] Fix bug where methods defined using lambdas were flagged by FURB118 (#14639)
  • [ruff] Auto-add r prefix when string has no backslashes for unraw-re-pattern (RUF039) (#14536)
  • [ruff] Implement invalid-assert-message-literal-argument (RUF040) (#14488)
  • [ruff] Implement unnecessary-nested-literal (RUF041) (#14323)
  • [ruff] Implement unnecessary-regular-expression (RUF055) (#14659)

Rule changes

  • Ignore more rules for stub files (#14541)
  • [pep8-naming] Eliminate false positives for single-letter names (N811, N814) (#14584)
  • [pyflakes] Avoid false positives in @no_type_check contexts (F821, F722) (#14615)
  • [ruff] Detect redirected-noqa in file-level comments (RUF101) (#14635)
  • [ruff] Mark fixes for unsorted-dunder-all and unsorted-dunder-slots as unsafe when there are complex comments in the sequence (RUF022, RUF023) (#14560)

Bug fixes

  • Avoid fixing code to None | None for redundant-none-literal (PYI061) and never-union (RUF020) (#14583, #14589)
  • [flake8-bugbear] Fix mutable-contextvar-default to resolve annotated function calls properly (B039) (#14532)
  • [flake8-pyi, ruff] Fix traversal of nested literals and unions (PYI016, PYI051, PYI055, PYI062, RUF041) (#14641)
  • [flake8-pyi] Avoid rewriting invalid type expressions in unnecessary-type-union (PYI055) (#14660)
  • [flake8-type-checking] Avoid syntax errors and type checking problem for quoted annotations autofix (TC003, TC006) (#14634)
  • [pylint] Do not wrap function calls in parentheses in the fix for unnecessary-dunder-call (PLC2801) (#14601)
  • [ruff] Handle attrs's auto_attribs correctly (RUF009) (#14520)

Contributors

Install ruff 0.8.1

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

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

Download ruff 0.8.1

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

Don't miss a new ruff release

NewReleases is sending notifications on new releases.