Repository navigation
0.9.5
Immutable
release. Only release title and notes can be modified.
Release Notes
Preview features
- Recognize all symbols named
TYPE_CHECKINGforin_type_checking_block(#15719) - [
flake8-comprehensions] Handle builtins at top of file correctly forunnecessary-dict-comprehension-for-iterable(C420) (#15837) - [
flake8-logging].exception()andexc_info=outside exception handlers (LOG004,LOG014) (#15799) - [
flake8-pyi] Fix incorrect behaviour ofcustom-typevar-return-typepreview-mode autofix iftypingwas already imported (PYI019) (#15853) - [
flake8-pyi] Fix more complex cases (PYI019) (#15821) - [
flake8-pyi] MakePYI019autofixable for.pyfiles in preview mode as well as stubs (#15889) - [
flake8-pyi] Remove type parameter correctly when it is the last (PYI019) (#15854) - [
pylint] Fix missing parens in unsafe fix forunnecessary-dunder-call(PLC2801) (#15762) - [
pyupgrade] Better messages and diagnostic range (UP015) (#15872) - [
pyupgrade] Rename private type parameters in PEP 695 generics (UP049) (#15862) - [
refurb] Also report non-name expressions (FURB169) (#15905) - [
refurb] Mark fix as unsafe if there are comments (FURB171) (#15832) - [
ruff] Classes with mixed type variable style (RUF053) (#15841) - [
airflow]BashOperatorhas been moved toairflow.providers.standard.operators.bash.BashOperator(AIR302) (#15922) - [
flake8-pyi] Add autofix for unused-private-type-var (PYI018) (#15999) - [
flake8-pyi] Significantly improve accuracy ofPYI019if preview mode is enabled (#15888)
Rule changes
- Preserve triple quotes and prefixes for strings (#15818)
- [
flake8-comprehensions] Skip whenTypeErrorpresent from too many (kw)args forC410,C411, andC418(#15838) - [
flake8-pyi] RenamePYI019and improve its diagnostic message (#15885) - [
pep8-naming] Ignore@overridemethods (N803) (#15954) - [
pyupgrade] Reuse replacement logic fromUP046andUP047to preserve more comments (UP040) (#15840) - [
ruff] Analyze deferred annotations before enforcingmutable-(data)class-defaultandfunction-call-in-dataclass-default-argument(RUF008,RUF009,RUF012) (#15921) - [
pycodestyle] Exemptsys.path += ...calls (E402) (#15980)
Configuration
- Config error only when
flake8-import-conventionsalias conflicts withisort.required-importsbound name (#15918) - Workaround Even Better TOML crash related to
allOf(#15992)
Bug fixes
- [
flake8-comprehensions] Unnecessarylistcomprehension (rewrite as asetcomprehension) (C403) - Handle extraneous parentheses around list comprehension (#15877) - [
flake8-comprehensions] Handle trailing comma in fixes forunnecessary-generator-list/set(C400,C401) (#15929) - [
flake8-pyi] Fix several correctness issues withcustom-type-var-return-type(PYI019) (#15851) - [
pep8-naming] Consider any number of leading underscore forN801(#15988) - [
pyflakes] Visit forward annotations inTypeAliasTypeas types (F401) (#15829) - [
pylint] Correct min/max auto-fix and suggestion for (PL1730) (#15930) - [
refurb] Handle unparenthesized tuples correctly (FURB122,FURB142) (#15953) - [
refurb] AvoidNone | Noneas well as better detection and fix (FURB168) (#15779)
Documentation
- Add deprecation warning for
ruff-lsprelated settings (#15850) - Docs (
linter.md): clarify that Python files are always searched for in subdirectories (#15882) - Fix a typo in
non_pep695_generic_class.rs(#15946) - Improve Docs: Pylint subcategories' codes (#15909)
- Remove non-existing
lint.extendIgnoreeditor setting (#15844) - Update black deviations (#15928)
- Mention
UP049inUP046andUP047, addSee alsosection toUP040(#15956) - Add instance variable examples to
RUF012(#15982) - Explain precedence for
ignoreandselectconfig (#15883)
Contributors
- @AlexWaygood
- @BurntSushi
- @Daverball
- @InSyncWithFoo
- @Lee-W
- @MichaReiser
- @RayBB
- @VascoSch92
- @anordin95
- @ayushbaweja
- @carljm
- @dcreager
- @dhruvmanila
- @dylwil3
- @github-actions
- @jbramley
- @mishamsk
- @ntBre
- @renovate
- @sharkdp
- @tjkuson
- @zanieb
Install ruff 0.9.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.9.5/ruff-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.9.5/ruff-installer.ps1 | iex"