Update dependency ruff to v0.9.5 #50
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.9.0->0.9.5Release Notes
astral-sh/ruff (ruff)
v0.9.5Compare Source
Preview features
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
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
flake8-import-conventionsalias conflicts withisort.required-importsbound name (#15918)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
ruff-lsprelated settings (#15850)linter.md): clarify that Python files are always searched for in subdirectories (#15882)non_pep695_generic_class.rs(#15946)lint.extendIgnoreeditor setting (#15844)UP049inUP046andUP047, addSee alsosection toUP040(#15956)RUF012(#15982)ignoreandselectconfig (#15883)v0.9.4Compare Source
Preview features
airflow] Extend airflow context parameter check forBaseOperator.execute(AIR302) (#15713)airflow] UpdateAIR302to check for deprecated context keys (#15144)flake8-bandit] Permit suspicious imports within stub files (S4) (#15822)pylint] Do not triggerPLR6201on empty collections (#15732)refurb] Do not emit diagnostic when loop variables are used outside loop body (FURB122) (#15757)ruff] Add support for morerepatterns (RUF055) (#15764)ruff] Check for shadowedmapbefore suggesting fix (RUF058) (#15790)ruff] Do not emit diagnostic when all arguments tozip()are variadic (RUF058) (#15744)ruff] Parenthesize fix when argument spans multiple lines forunnecessary-round(RUF057) (#15703)Rule changes
flake8-bugbear] ExemptNewTypecalls where the original type is immutable (B008) (#15765)pylint] Honor banned top-level imports byTID253inPLC0415. (#15628)pyupgrade] Ignoreis_typeddictandTypedDictfordeprecated-import(UP035) (#15800)CLI
flake8-quotesoption (#15788)ruff config(#15603)Bug fixes
flake8-comprehensions] Do not emitunnecessary-mapdiagnostic when lambda has different arity (C417) (#15802)flake8-comprehensions] Parenthesizesortedwhen needed forunnecessary-call-around-sorted(C413) (#15825)pyupgrade] Handle end-of-line comments forquoted-annotation(UP037) (#15824)Documentation
trio.run_processandanyio.run_process(#15761)uv init --libin tutorial (#15718)v0.9.3Compare Source
Preview features
airflow] Argumentfail_stopin DAG has been renamed asfail_fast(AIR302) (#15633)airflow] ExtendAIR303with more symbols (#15611)flake8-bandit] Report all references to suspicious functions (S3) (#15541)flake8-pytest-style] Do not emit diagnostics for emptyforloops (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 oneEM101-compatibleraise(PLR6301) (#15507)pylint] Implementredefined-slots-in-subclass(W0244) (#9640)pyupgrade] Add rules to use PEP 695 generics in classes and functions (UP046,UP047) (#15565, #15659)refurb] Implementfor-loop-writes(FURB122) (#10630)ruff] Implementneedless-elseclause (RUF047) (#15051)ruff] Implementstarmap-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 inunnecessary-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 inunsorted-imports(I001) (#15518)pydoclint] Allow ignoring one line docstrings forDOCrules (#13302)pyflakes] Apply redefinition fixes by source code order (F811) (#15575)pyflakes] Avoid removing too many imports inredefined-while-unused(F811) (#15585)pyflakes] Group redefinition fixes by source statement (F811) (#15574)pylint] Include name of base class in message forredefined-slots-in-subclass(W0244) (#15559)ruff] Update fix forRUF055to usevar == value(#15605)Formatter
Performance
Server
unsafe-fixessettings for code actions (#15666)Bug fixes
flake8-bandit] Add missing single-line/dotall regex flag (S608) (#15654)flake8-import-conventions] Fix infinite loop betweenICN001andI002(ICN001) (#15480)flake8-simplify] Do not emit diagnostics for expressions inside string type annotations (SIM222,SIM223) (#15405)pyflakes] Treat arguments passed to thedefault=parameter ofTypeVaras type expressions (F821) (#15679)pyupgrade] Avoid syntax error when the iterable is a non-parenthesized tuple (UP028) (#15543)ruff] ExemptNewTypecalls where the original type is immutable (RUF009) (#15588)Documentation
TRY300: Add some extra notes on not catching exceptions you didn't expect (#15036)v0.9.2Compare Source
Preview features
airflow] Fix typo "security_managr" to "security_manager" (AIR303) (#15463)airflow] extend and fix AIR302 rules (#15525)fastapi] Handle parameters withDependscorrectly (FAST003) (#15364)flake8-pytest-style] Implement pytest.warns diagnostics (PT029,PT030,PT031) (#15444)flake8-pytest-style] Test function parameters with default arguments (PT028) (#15449)flake8-type-checking] Avoid false positives for|inTC008(#15201)Rule changes
flake8-todos] Allow VSCode GitHub PR extension style links inmissing-todo-link(TD003) (#15519)pyflakes] Show syntax error message forF722(#15523)Formatter
Preserve(#15524)Server
ruff.configurationerrors (#15452)Configuration
flattento improve deserialization error messages (#15414)Bug fixes
fastapi] UpdateAnnotatedfixes (FAST002) (#15462)flake8-bandit] Check forbuiltinsinstead ofbuiltin(S102,PTH123) (#15443)flake8-pathlib] Fix--selectforos-path-dirname(PTH120) (#15446)ruff] Fix false positive on global keyword (RUF052) (#15235)v0.9.1Compare Source
Preview features
pycodestyle] Runtoo-many-newlines-at-end-of-fileon each cell in notebooks (W391) (#15308)ruff] Omit diagnostic for shadowed private function parameters inused-dummy-variable(RUF052) (#15376)Rule changes
flake8-bugbear] Improveassert-raises-exceptionmessage (B017) (#15389)Formatter
Server
Bug fixes
flake8-pie] Correctly remove wrapping parentheses (PIE800) (#15394)pyupgrade] Handle comments and multiline expressions correctly (UP037) (#15337)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.