chore(deps): update python dependencies#86
Merged
Conversation
G-Rath
approved these changes
Jun 17, 2025
02fed58 to
b7d6a91
Compare
Collaborator
|
I don't understand why |
b7d6a91 to
38ff8d8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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:
4.23.0->4.24.01.15.0->1.16.18.3.5->8.4.0~0.11.5->~0.12.0Release Notes
python-jsonschema/jsonschema (jsonschema)
v4.24.0Compare Source
=======
unevaluatedPropertiesin the presence ofadditionalProperties(#1351).python/mypy (mypy)
v1.16.1Compare Source
v1.16.0Compare Source
pytest-dev/pytest (pytest)
v8.4.0Compare Source
pytest 8.4.0 (2025-06-02)
Removals and backward incompatible breaking changes
#11372: Async tests will now fail, instead of warning+skipping, if you don't have any suitable plugin installed.
#12346: Tests will now fail, instead of raising a warning, if they return any value other than None.
#12874: We dropped support for Python 3.8 following its end of life (2024-10-07).
#12960: Test functions containing a yield now cause an explicit error. They have not been run since pytest 4.0, and were previously marked as an expected failure and deprecation warning.
See
the docs <yield tests deprecated>{.interpreted-text role="ref"} for more information.Deprecations (removal in next major release)
autouse=True. For guidance on how to work around this warning seesync-test-async-fixture{.interpreted-text role="ref"}.New features
#11538: Added
pytest.RaisesGroup{.interpreted-text role="class"} as an equivalent topytest.raises{.interpreted-text role="func"} for expectingExceptionGroup{.interpreted-text role="exc"}. Also addspytest.RaisesExc{.interpreted-text role="class"} which is now the logic behindpytest.raises{.interpreted-text role="func"} and used as parameter topytest.RaisesGroup{.interpreted-text role="class"}.RaisesGroupincludes the ability to specify multiple different expected exceptions, the structure of nested exception groups, and flags for emulatingexcept* <except_star>{.interpreted-text role="ref"}. Seeassert-matching-exception-groups{.interpreted-text role="ref"} and docstrings for more information.#12081: Added
capteesys{.interpreted-text role="fixture"} to capture AND pass output to next handler set by--capture=.#12504:
pytest.mark.xfail{.interpreted-text role="func"} now acceptspytest.RaisesGroup{.interpreted-text role="class"} for theraisesparameter when you expect an exception group. You can also pass apytest.RaisesExc{.interpreted-text role="class"} if you e.g. want to make use of thecheckparameter.#12713: New [--force-short-summary]{.title-ref} option to force condensed summary output regardless of verbosity level.
This lets users still see condensed summary output of failures for quick reference in log files from job outputs, being especially useful if non-condensed output is very verbose.
#12749: pytest traditionally collects classes/functions in the test module namespace even if they are imported from another file.
For example:
contents of src/domain.py
contents of tests/test_testament.py
#12765: Thresholds to trigger snippet truncation can now be set with
truncation_limit_lines{.interpreted-text role="confval"} andtruncation_limit_chars{.interpreted-text role="confval"}.See
truncation-params{.interpreted-text role="ref"} for more information.#13125:
console_output_style{.interpreted-text role="confval"} now supportstimesto show execution time of each test.#13192:
pytest.raises{.interpreted-text role="func"} will now raise a warning when passing an empty string tomatch, as this will match against any value. Usematch="^$"if you want to check that an exception has no message.#13192:
pytest.raises{.interpreted-text role="func"} will now print a helpful string diff if matching fails and the match parameter has^and$and is otherwise escaped.#13192: You can now pass
with pytest.raises(check=fn): <pytest.raises>{.interpreted-text role="func"}, wherefnis a function which takes a raised exception and returns a boolean. Theraisesfails if no exception was raised (as usual), passes if an exception is raised andfnreturnsTrue(as well asmatchand the type matching, if specified, which are checked before), and propagates the exception iffnreturnsFalse(which likely also fails the test).#13228:
hidden-param{.interpreted-text role="ref"} can now be used inidofpytest.param{.interpreted-text role="func"} or inidsofMetafunc.parametrize <pytest.Metafunc.parametrize>{.interpreted-text role="py:func"}.It hides the parameter set from the test name.
#13253: New flag:
--disable-plugin-autoload <disable_plugin_autoload>{.interpreted-text role="ref"} which works as an alternative toPYTEST_DISABLE_PLUGIN_AUTOLOAD{.interpreted-text role="envvar"} when setting environment variables is inconvenient; and allows setting it in config files withaddopts{.interpreted-text role="confval"}.Improvements in existing functionality
#10224: pytest's
shortandlongtraceback styles (how-to-modifying-python-tb-printing{.interpreted-text role="ref"})now have partial
657{.interpreted-text role="pep"} support and will show specific code segments in thetraceback.
-- by
ammaraskar{.interpreted-text role="user"}#11118: Now
pythonpath{.interpreted-text role="confval"} configures [$PYTHONPATH]{.title-ref} earlier than before during the initialization process, which now also affects plugins loaded via the [-p]{.title-ref} command-line option.-- by
millerdev{.interpreted-text role="user"}#11381: The
typeparameter of theparser.addinimethod now accepts ["int"]{.title-ref} and"float"parameters, facilitating the parsing of configuration values in the configuration file.Example:
The [pytest.ini]{.title-ref} file:
#11525: Fixtures are now clearly represented in the output as a "fixture object", not as a normal function as before, making it easy for beginners to catch mistakes such as referencing a fixture declared in the same module but not requested in the test function.
-- by
the-compiler{.interpreted-text role="user"} andglyphack{.interpreted-text role="user"}#12426: A warning is now issued when
pytest.mark.usefixtures ref{.interpreted-text role="ref"} is used without specifying any fixtures. Previously, empty usefixtures markers were silently ignored.#12707: Exception chains can be navigated when dropped into Pdb in Python 3.13+.
#12736: Added a new attribute [name]{.title-ref} with the fixed value ["pytest tests"]{.title-ref} to the root tag [testsuites]{.title-ref} of the junit-xml generated by pytest.
This attribute is part of many junit-xml specifications and is even part of the [junit-10.xsd]{.title-ref} specification that pytest's implementation is based on.
#12943: If a test fails with an exceptiongroup with a single exception, the contained exception will now be displayed in the short test summary info.
#12958: A number of
unraisable <unraisable>{.interpreted-text role="ref"} enhancements:tracemalloc{.interpreted-text role="mod"} allocation traceback (if available).StopIteration{.interpreted-text role="class"} in test failures.pytest.PytestUnraisableExceptionWarning{.interpreted-text role="class"} exception if raised.reprof the unraisable object in the unraisable hook so you get the latest information if available, and should help with resurrection of the object.#13010:
pytest.approx{.interpreted-text role="func"} now can compare collections that contain numbers and non-numbers mixed.#13016: A number of
threadexception <unraisable>{.interpreted-text role="ref"} enhancements:tracemalloc{.interpreted-text role="mod"} allocation traceback (if available).StopIteration{.interpreted-text role="class"} in test failures.pytest.PytestUnhandledThreadExceptionWarning{.interpreted-text role="class"} exception if raised.nameof the thread object in the excepthook which should help with resurrection of the thread.#13031: An empty parameter set as in
pytest.mark.parametrize([], ids=idfunc)will no longer trigger a call toidfuncwith internal objects.#13115: Allows supplying
ExceptionGroup[Exception]andBaseExceptionGroup[BaseException]topytest.raisesto keep full typing onExceptionInfo <pytest.ExceptionInfo>{.interpreted-text role="class"}:Parametrizing with other exception types remains an error - we do not check the types of child exceptions and thus do not permit code that might look like we do.
#13122: The
--stepwisemode received a number of improvements:It no longer forgets the last failed test in case pytest is executed later without the flag.
This enables the following workflow:
--stepwise, pytest then stops at the first failing test;--stepwiseflag (for example in an IDE), until it is fixed.--stepwiseagain and pytest will continue from the previously failed test, and if it passes, continue on to the next tests.Previously, at step 3, pytest would start from the beginning, forgetting the previously failed test.
This change however might cause issues if the
--stepwisemode is used far apart in time, as the state might get stale, so the internal state will be reset automatically in case the test suite changes (for now only the number of tests are considered for this, we might change/improve this on the future).New
--stepwise-reset/--sw-resetflag, allowing the user to explicitly reset the stepwise state and restart the workflow from the beginning.#13308: Added official support for Python 3.14.
#13380: Fix
ExceptionGroup{.interpreted-text role="class"} traceback filtering to exclude pytest internals.#13415: The author metadata of the BibTex example is now correctly formatted with last names following first names.
An example of BibLaTex has been added.
BibTex and BibLaTex examples now clearly indicate that what is cited is software.
-- by
willynilly{.interpreted-text role="user"}#13420: Improved test collection performance by optimizing path resolution used in
FSCollector.#13457: The error message about duplicate parametrization no longer displays an internal stack trace.
#4112: Using
pytest.mark.usefixtures <pytest.mark.usefixtures ref>{.interpreted-text role="ref"} onpytest.param{.interpreted-text role="func"} now produces an error instead of silently doing nothing.#5473: Replace [:]{.title-ref} with [;]{.title-ref} in the assertion rewrite warning message so it can be filtered using standard Python warning filters before calling
pytest.main{.interpreted-text role="func"}.pygmentsdependency is now required, causing output always to be source-highlighted (unless disabled via the--code-highlight=noCLI option).Bug fixes
#10404: Apply filterwarnings from config/cli as soon as possible, and revert them as late as possible
so that warnings as errors are collected throughout the pytest run and before the
unraisable and threadexcept hooks are removed.
This allows very late warnings and unraisable/threadexcept exceptions to fail the test suite.
This also changes the warning that the lsof plugin issues from PytestWarning to the new warning PytestFDWarning so it can be more easily filtered.
#11067: The test report is now consistent regardless if the test xfailed via
pytest.mark.xfail <pytest.mark.xfail ref>{.interpreted-text role="ref"} orpytest.fail{.interpreted-text role="func"}.Previously, xfailed tests via the marker would have the string
"reason: "prefixed to the message, while those xfailed via the function did not. The prefix has been removed.#12008: In
11220{.interpreted-text role="pr"}, an unintended change in reordering was introduced by changing the way indices were assigned to direct params. More specifically, before that change, the indices of direct params to metafunc's callspecs were assigned after all parametrizations took place. Now, that change is reverted.#12863: Fix applying markers, including
pytest.mark.parametrize <pytest.mark.parametrize ref>{.interpreted-text role="ref"} when placed above [@staticmethod]{.title-ref} or [@classmethod]{.title-ref}.#12929: Handle StopIteration from test cases, setup and teardown correctly.
#12938: Fixed
--durations-minargument not respected if-vvis used.#12946: Fixed missing help for
pdb{.interpreted-text role="mod"} commands wrapped by pytest -- byadamchainz{.interpreted-text role="user"}.#12981: Prevent exceptions in
pytest.Config.add_cleanup{.interpreted-text role="func"} callbacks preventing further cleanups.#13047: Restore
pytest.approx{.interpreted-text role="func"} handling of equality checks between [bool]{.title-ref} and [numpy.bool_]{.title-ref} types.Comparing [bool]{.title-ref} and [numpy.bool_]{.title-ref} using
pytest.approx{.interpreted-text role="func"} accidentally changed in version [8.3.4]{.title-ref} and [8.3.5]{.title-ref} to no longer match:This has now been fixed:
#13119: Improved handling of invalid regex patterns for filter warnings by providing a clear error message.
#13175: The diff is now also highlighted correctly when comparing two strings.
#13248: Fixed an issue where passing a
scopeinMetafunc.parametrize <pytest.Metafunc.parametrize>{.interpreted-text role="py:func"} withindirect=Truecould result in other fixtures being unable to depend on the parametrized fixture.
#13291: Fixed
reprofattrsobjects in assertion failure messages when usingattrs>=25.2.#13312: Fixed a possible
KeyErrorcrash on PyPy during collection of tests involving higher-scoped parameters.#13345: Fix type hints for
pytest.TestReport.when{.interpreted-text role="attr"} andpytest.TestReport.location{.interpreted-text role="attr"}.#13377: Fixed handling of test methods with positional-only parameter syntax.
Now, methods are supported that formally define
selfas positional-onlyand/or fixture parameters as keyword-only, e.g.:
Before, this caused an internal error in pytest.
#13384: Fixed an issue where pytest could report negative durations.
#13420: Added
lru_cachetonodes._check_initialpaths_for_relpath.#9037: Honor
disable_test_id_escaping_and_forfeit_all_rights_to_community_support{.interpreted-text role="confval"} when escaping ids in parametrized tests.Improved documentation
#12535: [This
example]{.title-ref}<https://docs.pytest.org/en/latest/example/simple.html#making-test-result-information-available-in-fixtures>
showed
printstatements that do not exactly reflect what thedifferent branches actually do. The fix makes the example more precise.
#13218: Pointed out in the
pytest.approx{.interpreted-text role="func"} documentation that it considers booleans unequal to numeric zero or one.#13221: Improved grouping of CLI options in the
--helpoutput.#6649: Added
~pytest.TerminalReporter{.interpreted-text role="class"} to theapi-reference{.interpreted-text role="ref"} documentation page.#8612: Add a recipe for handling abstract test classes in the documentation.
A new example has been added to the documentation to demonstrate how to use a mixin class to handle abstract
test classes without manually setting the
__test__attribute for subclasses.This ensures that subclasses of abstract test classes are automatically collected by pytest.
Packaging updates and notes for downstreams
colorama,iniconfig,and
packaging; and bumped the minimum allowed versionof
exceptiongroupforpython_version<'3.11'from a releasecandidate to a full release.
Contributor-facing changes
#12017: Mixed internal improvements:
MockTiminginto_pytest.timing.-- by
RonnyPfannschmidt{.interpreted-text role="user"}#12647: Fixed running the test suite with the
hypothesispytest plugin.Miscellaneous internal changes
~pytest.TerminalReporter{.interpreted-text role="class"} to the public pytest API, as it is part of the signature of thepytest_terminal_summary{.interpreted-text role="hook"} hook.astral-sh/ruff (ruff)
v0.12.0Compare Source
Check out the blog post for a migration
guide and overview of the changes!
Breaking changes
Detection of more syntax errors
Ruff now detects version-related syntax errors, such as the use of the
matchstatement on Python versions before 3.10, and syntax errors emitted by
CPython's compiler, such as irrefutable
matchpatterns before the finalcasearm.New default Python version handling for syntax errors
Ruff will default to the latest supported Python version (3.13) when
checking for the version-related syntax errors mentioned above to prevent
false positives in projects without a Python version configured. The default
in all other cases, like applying lint rules, is unchanged and remains at the
minimum supported Python version (3.9).
Updated f-string formatting
Ruff now formats multi-line f-strings with format specifiers to avoid adding a
line break after the format specifier. This addresses a change to the Python
grammar in version 3.13.4 that made such a line break a syntax error.
rust-toolchain.tomlis no longer included in source distributionsThe
rust-toolchain.tomlis used to specify a higher Rust version than Ruff'sminimum supported Rust version (MSRV) for development and building release
artifacts. However, when present in source distributions, it would also cause
downstream package maintainers to pull in the same Rust toolchain, even if
their available toolchain was MSRV-compatible.
Removed Rules
The following rules have been removed:
suspicious-xmle-tree-usage(
S320)Deprecated Rules
The following rules have been deprecated:
pandas-df-variable-nameStabilization
The following rules have been stabilized and are no longer in preview:
for-loop-writes(FURB122)check-and-remove-from-set(FURB132)verbose-decimal-constructor(FURB157)fromisoformat-replace-z(FURB162)int-on-sliced-str(FURB166)exc-info-outside-except-handler(LOG014)import-outside-top-level(PLC0415)unnecessary-dict-index-lookup(PLR1733)nan-comparison(PLW0177)eq-without-hash(PLW1641)pytest-parameter-with-default-argument(PT028)pytest-warns-too-broad(PT030)pytest-warns-with-multiple-statements(PT031)invalid-formatter-suppression-comment(RUF028)dataclass-enum(RUF049)class-with-mixed-type-vars(RUF053)unnecessary-round(RUF057)starmap-zip(RUF058)non-pep604-annotation-optional(UP045)non-pep695-generic-class(UP046)non-pep695-generic-function(UP047)private-type-parameter(UP049)The following behaviors have been stabilized:
collection-literal-concatenation] (RUF005) now recognizes slices, inaddition to list literals and variables.
readlines-in-for] (FURB129) is now marked as always safe.if-else-block-instead-of-if-exp] (SIM108) will now further simplifyexpressions to use
orinstead of anifexpression, where possible.unused-noqa] (RUF100) now checks for file-levelnoqacomments as wellas inline comments.
subprocess-without-shell-equals-true] (S603) now accepts literal strings,as well as lists and tuples of literal strings, as trusted input.
boolean-type-hint-positional-argument] (FBT001) now applies to types thatinclude
bool, likebool | intortyping.Optional[bool], in addition toplain
boolannotations.non-pep604-annotation-union] (UP007) has now been split into two rules.UP007now applies only totyping.Union, while[
non-pep604-annotation-optional] (UP045) checks for use oftyping.Optional.UP045has also been stabilized in this release, but youmay need to update existing
include,ignore, ornoqasettings toaccommodate this change.
Preview features
ruff] Check for non-context-manager use ofpytest.raises,pytest.warns, andpytest.deprecated_call(RUF061) (#17368)Bug fixes
readlines(#18542)\rand\r\nhandling in t- and f-string debug texts (#18673)}when f-string expression has a format specifier (#18704)flake8-pyi] Avoid syntax error in the case of starred and keyword arguments (PYI059) (#18611)flake8-return] FixRET504autofix generating a syntax error (#18428)pep8-naming] Suppress fix forN804andN805if the recommended name is already used (#18472)pycodestyle] Avoid causing a syntax error in expressions spanning multiple lines (E731) (#18479)pyupgrade] SuppressUP008ifsuperis shadowed (#18688)refurb] Parenthesize lambda and ternary expressions (FURB122,FURB142) (#18592)ruff] Handle extra arguments todeque(RUF037) (#18614)ruff] Preserve parentheses arounddequein fix forunnecessary-empty-iterable-within-deque-call(RUF037) (#18598)ruff] Validate arguments before offering a fix (RUF056) (#18631)ruff] Skip fix forRUF059if dummy name is already bound (#18509)pylint] FixPLW0128to check assignment targets in square brackets and after asterisks (#18665)Rule changes
returnstatements (B909) (#18408)ty:comments as pragma comments (#18532)flake8-pyi] Applycustom-typevar-for-selfto string annotations (PYI019) (#18311)pyupgrade] Don't offer a fix forOptional[None](UP007,UP045)(#18545)pyupgrade] Fixsuper(__class__, self)detection (UP008) (#18478)refurb] Make the fix forFURB163unsafe forlog2,log10,*args, and deleted comments (#18645)Server
Documentation
*from glob pattern example forper-file-target-version(#18709)pylint] De-emphasize__hash__ = Parent.__hash__(PLW1641) (#18613)refurb] Add a note about float literal handling (FURB157) (#18615)v0.11.13Compare Source
Preview features
airflow] Add unsafe fix for module moved cases (AIR301,AIR311,AIR312,AIR302) (#18367,#18366,#18363,#18093)refurb] Add coverage ofsetandfrozensetcalls (FURB171) (#18035)refurb] MarkFURB180fix unsafe when class has bases (#18149)Bug fixes
perflint] Fix missing parentheses for lambda and ternary conditions (PERF401,PERF403) (#18412)pyupgrade] ApplyUP035only on py313+ forget_type_hints()(#18476)pyupgrade] Make fix unsafe if it deletes comments (UP004,UP050) (#18393, #18390)Rule changes
fastapi] Avoid false positive for class dependencies (FAST003) (#18271)Documentation
Other changes
v0.11.12Compare Source
Preview features
airflow] Revise fix titles (AIR3) (#18215)pylint] Implementmissing-maxsplit-arg(PLC0207) (#17454)pyupgrade] New ruleUP050(useless-class-metaclass-type) (#18334)flake8-use-pathlib] Replaceos.symlinkwithPath.symlink_to(PTH211) (#18337)Bug fixes
flake8-bugbear] Ignore__debug__attribute inB010(#18357)flake8-async] Fixanyio.sleepargument name (ASYNC115,ASYNC116) (#18262)refurb] FixFURB129autofix generating invalid syntax (#18235)Rule changes
flake8-implicit-str-concat] Add autofix forISC003(#18256)pycodestyle] Improve the diagnostic message forE712(#18328)flake8-2020] Fix diagnostic message for!=comparisons (YTT201) (#18293)pyupgrade] Make fix unsafe if it deletes comments (UP010) (#18291)Documentation
flake8-bugbear] Add fix safety section (B006) (#17652)v0.11.11Compare Source
Preview features
airflow] Add autofixes forAIR302andAIR312(#17942)airflow] Move rules fromAIR312toAIR302(#17940)airflow] UpdateAIR301andAIR311with the latest Airflow implementations (#17985)flake8-simplify] Enable fix in preview mode (SIM117) (#18208)Bug fixes
[]and_(#18147)pylint] FixPLW1514not recognizing theencodingpositional argument ofcodecs.open(#18109)CLI
Documentation
flake8-print] Improve print/pprint docs forT201andT203(#18130)flake8-simplify] Add fix safety section (SIM110,SIM210) (#18114,#18100)pylint] Fix docs example that produced different output (PLW0603) (#18216)v0.11.10Compare Source
Preview features
ruff] Implement a recursive check forRUF060(#17976)airflow] Enable autofixes forAIR301andAIR311(#17941)airflow] Apply try catch guard to allAIR3rules (#17887)airflow] ExtendAIR311rules (#17913)Bug fixes
flake8-bugbear] IgnoreB028ifskip_file_prefixesis present (#18047)flake8-pie] Mark autofix forPIE804as unsafe if the dictionary contains comments (#18046)flake8-simplify] Correct behavior forstr.split/rsplitwithmaxsplit=0(SIM905) (#18075)flake8-simplify] FixSIM905autofix forrsplitcreating a reversed list literal (#18045)flake8-use-pathlib] Suppress diagnostics for allos.*functions that have thedir_fdparameter (PTH) (#17968)refurb] Mark autofix as safe only for number literals (FURB116) (#17692)Rule changes
flake8-bandit] SkipS608for expressionless f-strings (#17999)flake8-pytest-style] Don't recommendusefixturesforparametrizevalues (PT019) (#17650)pyupgrade] Addresource.erroras deprecated alias ofOSError(UP024) (#17933)CLI
Documentation
flake8-simplify] Add fix safety section (SIM103) (#18086)flake8-simplify] Add fix safety section (SIM112) (#18099)pylint] Add fix safety section (PLC0414) (#17802)pylint] Add fix safety section (PLE4703) (#17824)pylint] Add fix safety section (PLW1514) (#17932)pylint] Add fix safety section (PLW3301) (#17878)ruff] Add fix safety section (RUF007) (#17755)ruff] Add fix safety section (RUF033) (#17760)v0.11.9Compare Source
Preview features
airflow] FixSQLTableCheckOperatortypo (AIR302) (#17946)airflow] Removeairflow.utils.dag_parsing_context.get_parsing_context(AIR301) (#17852)airflow] Skip attribute check in try catch block (AIR301) (#17790)flake8-bandit] Mark tuples of string literals as trusted input inS603(#17801)isort] Check full module path against project root(s) when categorizing first-party imports (#16565)ruff] Add new rulein-empty-collection(RUF060) (#16480)Bug fixes
combinecall forlint.typing-extensionssetting (#17823)flake8-async] Fix module name inASYNC110,ASYNC115, andASYNC116fixes (#17774)pyupgrade] Add spaces between tokens as necessary to avoid syntax errors inUP018autofix (#17648)refurb] Fix false positive for float and complex numbers inFURB116(#17661)Documentation
PLC2801,PLR1722, andRUF013(#17825, #17826, #17759)check-typed-exceptionfromS110andS112(#17786)Other changes
ruff analyze graph(#17743)v0.11.8Compare Source
Preview features
airflow] Apply auto fixes to cases where the names have changed in Airflow 3 (AIR302,AIR311) (#17553, #17570, #17571)airflow] ExtendAIR301rule (#17598)airflow] Update existingAIR302rules with better suggestions (#17542)refurb] Mark fix as safe forreadlines-in-for(FURB129) (#17644)nonlocaldeclaration at module level (#17559)x = *y(#17624)Bug fixes
flake8-pyi] EnsureLiteral[None,] | Literal[None,]is not autofixed toNone | None(PYI061) (#17659)flake8-use-pathlib] Avoid suggestingPath.iterdir()foros.listdirwith file descriptor (PTH208) (#17715)flake8-use-pathlib] FixPTH104false positive whenrenameis passed a file descriptor (#17712)flake8-use-pathlib] FixPTH116false positive whenstatis passed a file descriptor (#17709)flake8-use-pathlib] FixPTH123false positive whenopenis passed a file descriptor from a function call (#17705)pycodestyle] Fix duplicated diagnostic inE712(#17651)pylint] Detectglobaldeclarations in module scope (PLE0118) (#17411)async-comprehension-in-sync-comprehensionmore specific (#17460)Configuration
typing_extensionsimports (#17611)Documentation
lint.pydocstyle.ignore-var-parametersoption (#17740)ASYNC116,FLY002,D200,RUF005,RUF017,RUF027,RUF028,RUF057) (#17497, #17496, #17502, #17484, #17480, #17485, #17722, #17483)Other changes
v0.11.7Compare Source
Preview features
airflow] Apply auto fixes to cases where the names have changed in Airflow 3 (AIR301) (#17355)perflint] Implement fix formanual-dict-comprehension(PERF403) (#16719)Bug fixes
airflow] Fix typos in provider package names (AIR302,AIR312) (#17574)flake8-type-checking] Visit keyword arguments in checks involvingtyping.cast/typing.NewTypearguments (#17538)pyupgrade] Preserve parenthesis when fixing native literals containing newlines (UP018) (#17220)refurb] Mark theFURB161fix unsafe except for integers and booleans (#17240)Rule changes
perflint] Allow list function calls to be replaced with a comprehension (PERF401) (#17519)pycodestyle] Auto-fix redundant boolean comparison (E712) (#17090)pylint] make fix unsafe if delete comments (PLR1730) (#17459)Documentation
v0.11.6Compare Source
Preview features
airflow] ExtractAIR311fromAIR301rules (AIR301,AIR311) (#17310, #17422)Bug fixes
\is at end of file (#17409)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.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.