Update Python dependencies #345

Open
robbertbos wants to merge 1 commit from renovate/python into main
Owner

This PR contains the following updates:

Package Change Age Confidence
alembic (changelog) >=1.19.1>=1.19.2 age confidence
anyio (changelog) >=4.14.2>=4.15.0 age confidence
authlib >=1.7.2>=1.8.0 age confidence
cachetools (changelog) >=7.1.7,<7.2>=7.1.8,<7.2 age confidence
cryptography (changelog) >=50.0.0>=50.0.1 age confidence
pydantic (changelog) >=2.13.4>=2.13.5 age confidence
ruff (source, changelog) >=0.16.3>=0.16.6 age confidence
ty (changelog) >=0.0.72>=0.0.78 age confidence
uvicorn (changelog) >=0.52.3>=0.52.4 age confidence

Release Notes

agronholm/anyio (anyio)

v4.15.0

Compare Source

  • Added support for the newer keyword-only arguments on anyio.Path methods to match the standard library pathlib.Path:

    • follow_symlinks on exists() (Python 3.12+)
    • follow_symlinks on is_dir() (Python 3.13+)
    • follow_symlinks on is_file() (Python 3.13+)
    • follow_symlinks on owner() (Python 3.13+)
    • follow_symlinks on group() (Python 3.13+)
    • newline on read_text() (Python 3.13+)

    (#​1286, #​1293; PR by @​jaideeppyne)

  • Added amap, gather, and as_completed utility functions to simplify common patterns (#​1173; PR by @​Graeme22)

  • Added --anyio-mode command-line option as an alternative to the anyio_mode ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: pytest_asyncio). (#​1242; PR by @​EmmanuelNiyonshuti)

  • Added the anyio.Future synchronization primitive which behaves similar to asyncio.Future, allowing tasks to wait for a value (or exception) from another task (#​1146; PR by @​Vizonex)

  • Added guidance for managing multiple memory object stream producers and consumers with cloned streams (#​330; PR by @​nightcityblade)

  • Added StapledObjectStream.send_nowait() that delegates to the underlying ObjectSendStream, if it implements it (#​1241; PR by @​davidbrochart)

  • Added the move_on_at() and fail_at() functions to complement move_on_after() and fail_after()

  • Changed the default name for a task spawned with TaskGroup.create_task(func()) to match the default task name for the analogous task spawned with TaskGroup.start_soon(func) or TaskGroup.start(func) in more situations. Previously, the default name of a TaskGroup.create_task task never included the module name. (The default name for a task spawned with TaskGroup.start_soon or TaskGroup.start typically includes the module name.) (#​1234; PR by @​gschaffner)

  • Changed the anyio and anyio.abc modules to lazily (much like 810) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the if TYPE_CHECKING: block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (#​1169)

  • Fixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to start_blocking_portal() and anyio.to_thread.run_sync() (#​1224; PR by @​EmmanuelNiyonshuti)

  • Fixed SpooledTemporaryFile.readinto() and readinto1() reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (#​1215; PR by @​c-tonneslan)

  • Added a reason parameter to fail_after (and the new fail_at) allowing for added exception context when raising TimeoutError (#​1227; PR by @​Graeme22)

  • Fixed the default TaskHandle.name missing part of the task name for tasks started with TaskGroup.start on Trio (#​1231; PR by @​gschaffner)

  • Fixed anyio.run leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a RunVar. (#​1203; PR by @​tapetersen)

  • Fixed anyio.Path.with_stem() silently producing a wrong path (e.g. Path(".txt")) instead of raising ValueError when given an empty stem on a path with a non-empty suffix, unlike pathlib.PurePath.with_stem (#​1200; PR by @​Sanjays2402)

  • Fixed UNIXSocketStream.aclose() raising asyncio.InvalidStateError when a concurrent receive or send operation had just been cancelled on the asyncio backend (#​1267; PR by @​alloutflo)

  • Fixed the pytest plugin importing the deprecated _pytest.python.CallSpec2 alias, which triggers PytestRemovedIn10Warning on pytest>=9.2 and crashes pytest at startup when filterwarnings = error is configured (#​1271; PR by @​matthewfeickert)

  • Fixed an asyncio worker thread race that could raise RuntimeError when the event loop closed between checking its state and scheduling the worker result (#​1265; PR by @​hansu650)

  • Fixed CapacityLimiter on the asyncio backend over-granting tokens when total_tokens was raised while the limiter was over-subscribed (#​1223; PR by @​zelinewang)

  • Fixed asyncio task groups leaking unawaited coroutines when a custom task constructor fails; default task creation is unaffected (#​1274; PR by @​dsfaccini)

  • Fixed inconsistencies between Trio and asyncio when target TaskGroup is cancelled before a task created with .start() calls TaskStatus.started()

    • The started task shouldn't get a CancelledError until the first checkpoint after the started() call.
    • A value passed to started() should be available on the TaskHandle and correctly passed back to the caller of start even if cancelled.
    • The CancelledError shouldn't leak out of the TaskGroup.start() call to the calling task.

    (#​1197; PR by @​tapetersen)

  • Fixed TemporaryDirectory not cleaning up when the host task was cancelled while exiting the context manager, as the cleanup now runs in a shielded cancel scope (#​1304; PR by @​smurfix)

authlib/authlib (authlib)

v1.8.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/authlib/authlib/compare/v1.7.2...v1.8.0

tkem/cachetools (cachetools)

v7.1.8

Compare Source

===================

  • Reject negative maxsize in Cache.__init__.
pyca/cryptography (cryptography)

v50.0.1

Compare Source

pydantic/pydantic (pydantic)

v2.13.5

Compare Source

v2.13.5 (2026-08-28)

What's Changed
Fixes
astral-sh/ruff (ruff)

v0.16.6

Compare Source

Released on 2026-09-03.

Preview features
  • Move pytest-fixture-autouse to the restriction category (#​28219)
  • [flake8-pytest-style] Add an autofix for PT020 (#​27993)
  • [flake8-tidy-imports] Prevent fix loop between TID254 and TID255 (#​28262)
  • [isort] Exclude pragma comments from line length calculation (I001) (#​27313)
Bug fixes
  • Validate unary expressions when parsing (#​28233)
  • [flake8-async, pylint] Recognize builtins.open (ASYNC230, PLW1514) (#​28021)
  • [flake8-bugbear] Fix panic on match subjects (B031) (#​27781)
  • [flake8-datetimez] Reject tzinfo=None for datetime bounds (DTZ901) (#​28022)
  • [flake8-pytest-style] Avoid duplicate PT017 diagnostics (#​27918)
  • [ruff] Remove lint.external hint for Ruff-specific suppressions (RUF102) (#​27923)
Rule changes
  • [flake8-use-pathlib] Add display-only fix for os.listdir (PTH208) (#​28027)
Documentation
  • Add another example and glob reference for lint.per-file-ignores (#​28106)
  • Add duplicate work guidance (#​28229)
  • [flake8-async] Document thread offloading (ASYNC240) (#​28008)
  • [pyupgrade] Clarify default encoding argument handling (UP012) (#​27315)
Other changes
  • Allow unary plus in match patterns on Python 3.15 (#​28231)
Contributors

v0.16.5

Compare Source

Released on 2026-08-27.

Preview features
  • Allow rules without codes (#​28049)
  • Introduce category selectors (#​27666)
  • Update preview default rules and categories (#​27877)
Bug fixes
  • [flake8-async] Detect blocking generic HTTP requests (ASYNC210) (#​28024)
  • [flake8-datetimez] Allow timezone-safe strptime chains (DTZ007) (#​28023)
  • [flake8-simplify] Respect side effects in lambda defaults (SIM401) (#​28000)
Server
  • Fix duplicated "of" in ClientOptions doc comment (#​27978)
Documentation
  • Document rule acceptance guidelines (#​27910)
  • Document the new category selectors (#​27906)
Contributors

v0.16.4

Compare Source

Released on 2026-08-20.

Preview features
  • [flake8-use-pathlib] Add autofix for PTH116 (#​26460)
  • [refurb] Restrict delete-full-slice to lists (FURB131) (#​27711)
  • [refurb] Skip FURB101 and FURB103 when the open argument is a file descriptor (#​27643)
Bug fixes
  • Fix InvalidInstruction on Windows CPUs that do not support POPCNT (#​27803)
  • [pyflakes] Emit semantic syntax errors in string type definitions as F722 (#​27835)
  • [pylint] Allow os._exit imports in import-private-name (PLC2701) (#​27738)
Rule changes
  • [syntax-errors] Align mixed t-string/bytes error message with CPython 3.14 (#​27766)
  • [ruff] Add ctypes.LittleEndianStructure and related types to existing exception (RUF012) (#​27753)
  • [syntax-errors] Detect duplicate keyword arguments (#​17804)
  • [syntax-errors] Detect parameters declared nonlocal (#​27628)
Server
  • Offer display-only fixes and mark safe fixes preferred (#​27807)
  • Support pull diagnostics for notebook cells (#​27779)
Documentation
  • Add default indicator to rules table (#​27724)
  • Fix broken link to Python docs (#​27757)
Other changes
  • Fix s390x stacker assembly in release builds (#​27776)
  • Guarantee minimum stack size when parsing a module, standalone expression, and suites (#​25464)
  • Reduce configuration deserialization code size (#​27924)
  • Check packed AST index bounds (#​27849)
Contributors
astral-sh/ty (ty)

v0.0.78

Compare Source

Released on 2026-09-02.

Bug fixes
  • Defer decorator-call diagnostics to avoid recursive-default cycles (#​28226)
  • Make cyclic intersection simplification deterministic (#​28156)
  • Stabilize cyclic terminal-call reachability (#​28216)
Preview features
  • Refresh uv workspace metadata when dependencies change (#​28224)
Diagnostics
  • Add a new disjoint-cast rule (#​28129)
  • Report deprecated property accessors on intersections (#​28250)
  • Report deprecations for implicit constructor calls (#​28251)
  • Report deprecations for overloads, operators, and properties (#​28134)
  • Respect overload selection in deprecation diagnostics (#​28148)
Core type checking
  • Fix negative narrowing for protocols with gradual members (#​28198)
  • Preserve ParamSpec bindings inferred against type context (#​28084)
  • Preserve generic protocol materialization relations (#​28246)
  • Preserve uncertain branches during quantification (#​28211)
  • Respect type variables in top/bottom materializations of invariant generics (#​28072)
  • Sync vendored typeshed stubs (#​28217). Typeshed diff
  • Treat captured bound-method receivers covariantly (#​28180)
  • Unsound intersection simplification for generic iterables (#​28068)
  • Validate type variable scopes in constructors and aliases (#​28130)
  • lambda functions are always truthy (#​28254)
Performance
  • Optimize materialized recursive protocol comparisons (#​28079)
  • Optimize recursive protocol checks for nested type variables (#​28257)
Contributors

v0.0.77

Compare Source

Released on 2026-08-31.

Bug fixes
  • Bound recursive protocol traversal in generic intersections (#​28215)
  • Preserve recursion guards across nested type operations (#​28150)
  • Preserve syntax and comments when removing redundant casts (#​28145)
  • Stabilize recursive receiver inference (#​28042)
  • Stabilize condition truthiness during cyclic inference (#​28212)
Core type checking
  • Preserve generic receivers in implicit __init_subclass__ calls (#​28138)
  • Preserve specialization for inherited TypedDict methods (#​28111)
  • Propagate deletions through nested loop headers (#​28044)
Performance
  • Avoid repeated inference for literal union call results (#​28196)
Contributors

v0.0.76

Compare Source

Released on 2026-08-31.

Preview features
  • Add a missing-direct-dependency rule (#​28001)
  • Cancel superseded queued uv requests (#​28108)
  • Check direct dependencies in PEP 723 scripts (#​28136)
  • Fix Goto definition in script dependencies (#​27747)
  • Move script environment initialization to the CLI and LSP (#​28038)
  • Refresh uv project metadata in the background (#​27933)
  • Synchronize PEP 723 script environments in the language server (#​27619)
  • Warn when uv metadata cannot support dependency checks (#​28133)
Bug fixes
  • Avoid panics on incomplete protocol type parameter lists (#​28088)
  • Fix auto-completion panic involving bare declarations (#​28191)
  • Guard recursive meta-type expansion (#​28143)
  • Preserve parentheses when removing redundant casts (#​28092)
LSP server
  • Add "Find references" support for pytest fixtures (#​28075)
  • Highlight PEP 723 script metadata as TOML (#​27746)
  • Synchronize saved script metadata on open (#​27873)
Core type checking
  • Apply mixin specialization when validating enum members (#​28101)
  • Bind Self through generic type aliases (#​28117)
  • Infer lambda parameters through callable type aliases (#​28109)
  • Intersection simplifications with subtype-related generic specializations (#​26880)
  • Invalidate member narrowing across loop iterations (#​28009)
  • Narrow functional enum members in == and match (#​28103)
  • Only treat recursive types with unbounded specializations as fallback cycles (#​27538)
  • Preserve Final variance in stubs (#​28119)
  • Preserve inferred types for unknown class-decorator results (#​28067)
  • Preserve list literal positions in starred unpacking (#​28061)
  • Preserve short-circuit reachability for direct conditions (#​28082)
  • Preserve type variables in bounded generic defaults (#​28122)
  • Reject circular type alias definitions (#​28140)
  • Reject class access to generic instance attributes (#​28123)
  • Use the subclass receiver when checking method overrides (#​28124)
  • Validate declared variance in method signatures (#​28116)
Performance
  • Avoid cubic narrowing with repeated assignments and context managers (#​27787)
  • Avoid repeated traversal of shared alias arguments (#​28147)
  • Reject impossible eager protocol comparisons early (#​28081)
Contributors

v0.0.75

Compare Source

Released on 2026-08-26.

Preview features
  • Initialize PEP 723 script environments in the CLI (#​27544)
  • Refresh PEP 723 script environments in watch mode (#​27617)
  • Run PEP 723 script synchronization on bounded workers (#​27615)
Bug fixes
  • Specialize Self bounds of inherited methods (#​27990)
LSP server
  • Add "Go to Definition" support for pytest fixtures (#​27444)
Documentation
  • Fix documented Python package build command (#​4384)
  • Link untyped-call tracking issue in migration guide (#​4382)
Library support
  • Resolve imported pytest fixture exposures (#​27539)
  • Resolve installed core pytest fixture providers (#​27770)
  • Resolve pytest fixtures through conftest (#​27540)
Diagnostics
  • Add more autofixes (#​28029)
  • Add a dedicated missing-slot diagnostic (#​28039)
  • Explain missing storage for declared slotted attributes (#​27969)
  • Improve diagnostic spans for unpacked variable assignments (#​28041)
Core type checking
  • Account for known subclasses in equality inference (#​28005)
  • Expand ParamSpec signatures inferred from bound receivers (#​28020)
  • Fix Self binding in ParamSpec protocols (#​28016)
  • Fix TypedDict variance inference (#​28052)
  • Fix unsound narrowing through branch-assigned conditions (#​28006)
  • Ignore inconsistent binding decorators on overloads (#​28036)
  • Infer yield from send/return types from the iterator returned by __iter__ (#​27987)
  • Infer tuple type parameters from union arguments (#​28062)
  • Infer variance through nonrecursive protocol references (#​28065)
  • Preserve bounds of non-literal metaclasses (#​28046)
  • Preserve correlated generic-call inference (#​28043)
  • Preserve invariant materialization constraints (#​28047)
  • Recover bare TypeVarTuples in tuple annotations (#​27950)
  • Reject fixed tuples for non-inferable TypeVarTuples (#​27943)
  • Reject incompatible constructor context for variadic packs (#​27966)
  • Support mixed gradual tuple assignability with TypeVarTuple (#​27957)
  • Support tagged union with multiple tags per type (#​27984)
  • Sync vendored typeshed stubs (#​28035). Typeshed diff
  • Treat typing.Union as a class on Python 3.14+ (#​28003)
  • Validate generic protocol variance (#​27531)
  • collections.abc.Callable is an instance of type (#​27991)
Contributors

v0.0.74

Compare Source

Released on 2026-08-22.

Bug fixes
  • Avoid duplicate bindings in multi-target assignments (#​27938)
  • Avoid panic on unpacked kwargs in string annotations (#​27963)
  • Fix stack overflow in recursive TypedDict dictionary compatibility (#​27951)
  • Handle assignment expressions in string annotations (#​27921)
  • Handle dynamic classes in string annotations (#​27883)
  • Preserve string annotation context in lambda defaults and TypedDict types (#​27914)
  • Skip invalid subscript arguments in string annotations (#​27917)
  • Skip invalid subscript operands in string annotations (#​27882)
LSP server
  • Add untrustedWorkspace option to the LSP (#​27828)
  • Add executable discovery to the server command (#​27806)
  • Handle file-valued workspace folders from Zed (#​27836)
  • Skip scripts with an invalid PEP 723 configuration (#​27505)
  • Support pull diagnostics for notebook cells (#​27778)
Documentation
  • Update mypy/pyright comparison table (#​4165)
Diagnostics
  • Add an opt-in unsound-assignment rule for variables (#​27874)
  • Fix variadic signature display (#​27869)
  • Highlight declarations in invalid-assignment diagnostics (#​27872)
  • Improve LiteralString suggestions in string annotations (#​27931)
  • Use invalid-type-form for non-generic class annotations (#​27889)
Core type checking
  • Add bounded constraint solution projections (#​27949)
  • Fix invariant gradual tuple materialization ranges (#​27946)
  • Guard recursive constructor bindings by receiver (#​27958)
  • Preserve all alternatives in bounded intersections (#​27898)
  • Preserve keyword safety for unpacked callables (#​27517)
  • Preserve source protocol members and classify finite aliases (#​27772)
  • Preserve type-variable order when reloading constraints (#​27904)
  • Propagate narrowing through statically known branches (#​27752)
  • Recognize ABC metaclass methods on protocols (#​27897)
  • Support __slots__ (#​27730)
Performance
  • Lazily infer function parameter default types (#​27857)
  • Optimize inherited recursive protocol comparisons (#​27922)
  • Traverse shared constraint source-order nodes once (#​27947)
Contributors

v0.0.73

Compare Source

Released on 2026-08-18.

LSP server
  • Do not prefer unsafe fixes in the language server (#​27822)
  • Fix signature help in trailing whitespace (#​27784)
Library support
  • Preserve variadic generics in functools.partial (#​27774)
Diagnostics
  • Add an opt-in rule flagging function decorators that transform a non-dynamic type into a dynamic type (#​27829)
  • Disambiguate same-named types in several diagnostics (#​27814)
  • Show error spans for errors originating in script metadata (#​26693)
Core type checking
  • Avoid bypassing solver during literal promotion (#​27763)
  • Expand nested union aliases when finding a TypedDict or callable (#​27740)
  • Implement intersection meta-type projection (#​27660)
  • Infer generic protocols from class objects (#​27812)
  • Model exception-suppressing context managers (#​27219)
  • Preserve TypeAliasType runtime origin (#​27813)
  • Preserve class objects in lazy protocol checks (#​27815)
  • Preserve declared types in exception handlers (#​27817)
  • Preserve explicit globals after conditional rebinding (#​27786)
  • Preserve property subclass types and accessors (#​27833)
  • Preserve required stub fields in generated constructors (#​27765)
  • Preserve static upper bounds of gradual solutions (#​27664)
  • Prevent unrelated quantified constraints from destabilizing recursive queries (#​27737)
  • Separate generic constraint accumulation from legacy projection (#​27743)
  • Simplify generic protocol inference (#​27819)
  • Specialize inherited members of unspecialized generic classes (#​27658)
  • Specialize type variables determined by bound receivers (#​27732)
  • Support unpacking tuple type aliases (#​27825)
  • Sync vendored typeshed stubs (#​27771). Typeshed diff
Performance
  • Cache py.typed contents (#​27805)
  • Deduplicate exception checkpoints across equivalent branches (#​27703)
Contributors
Kludex/uvicorn (uvicorn)

v0.52.4: Version 0.52.4

Compare Source

Fixed
  • Remove duplicate Date headers from accepted WebSocket handshakes with websockets-sansio (#​3078)

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4


Configuration

📅 Schedule: (in timezone Europe/Amsterdam)

  • Branch creation
    • "before 6am on sunday"
  • 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [alembic](https://github.com/sqlalchemy/alembic) ([changelog](https://alembic.sqlalchemy.org/en/latest/changelog.html)) | `>=1.19.1` → `>=1.19.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/alembic/1.19.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/alembic/1.19.1/1.19.2?slim=true) | | [anyio](https://github.com/agronholm/anyio) ([changelog](https://anyio.readthedocs.io/en/stable/versionhistory.html)) | `>=4.14.2` → `>=4.15.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/anyio/4.15.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/anyio/4.14.2/4.15.0?slim=true) | | [authlib](https://github.com/authlib/authlib) | `>=1.7.2` → `>=1.8.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/authlib/1.8.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/authlib/1.7.2/1.8.0?slim=true) | | [cachetools](https://github.com/tkem/cachetools) ([changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)) | `>=7.1.7,<7.2` → `>=7.1.8,<7.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/cachetools/7.1.8?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/cachetools/7.1.7/7.1.8?slim=true) | | [cryptography](https://github.com/pyca/cryptography) ([changelog](https://cryptography.io/en/latest/changelog/)) | `>=50.0.0` → `>=50.0.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/cryptography/50.0.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/cryptography/50.0.0/50.0.1?slim=true) | | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `>=2.13.4` → `>=2.13.5` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.13.5?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.13.4/2.13.5?slim=true) | | [ruff](https://docs.astral.sh/ruff) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | `>=0.16.3` → `>=0.16.6` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.16.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.16.3/0.16.6?slim=true) | | [ty](https://github.com/astral-sh/ty) ([changelog](https://github.com/astral-sh/ty/blob/main/CHANGELOG.md)) | `>=0.0.72` → `>=0.0.78` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ty/0.0.78?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ty/0.0.72/0.0.78?slim=true) | | [uvicorn](https://github.com/Kludex/uvicorn) ([changelog](https://uvicorn.dev/release-notes)) | `>=0.52.3` → `>=0.52.4` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/uvicorn/0.52.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/uvicorn/0.52.3/0.52.4?slim=true) | --- ### Release Notes <details> <summary>agronholm/anyio (anyio)</summary> ### [`v4.15.0`](https://github.com/agronholm/anyio/releases/tag/4.15.0) [Compare Source](https://github.com/agronholm/anyio/compare/4.14.2...4.15.0) - Added support for the newer keyword-only arguments on `anyio.Path` methods to match the standard library `pathlib.Path`: - `follow_symlinks` on `exists()` (Python 3.12+) - `follow_symlinks` on `is_dir()` (Python 3.13+) - `follow_symlinks` on `is_file()` (Python 3.13+) - `follow_symlinks` on `owner()` (Python 3.13+) - `follow_symlinks` on `group()` (Python 3.13+) - `newline` on `read_text()` (Python 3.13+) ([#&#8203;1286](https://github.com/agronholm/anyio/pull/1286), [#&#8203;1293](https://github.com/agronholm/anyio/pull/1293); PR by [@&#8203;jaideeppyne](https://github.com/jaideeppyne)) - Added `amap`, `gather`, and `as_completed` utility functions to simplify common patterns ([#&#8203;1173](https://github.com/agronholm/anyio/pull/1173); PR by [@&#8203;Graeme22](https://github.com/Graeme22)) - Added `--anyio-mode` command-line option as an alternative to the `anyio_mode` ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: `pytest_asyncio`). ([#&#8203;1242](https://github.com/agronholm/anyio/pull/1242); PR by [@&#8203;EmmanuelNiyonshuti](https://github.com/EmmanuelNiyonshuti)) - Added the `anyio.Future` synchronization primitive which behaves similar to `asyncio.Future`, allowing tasks to wait for a value (or exception) from another task ([#&#8203;1146](https://github.com/agronholm/anyio/pull/1146); PR by [@&#8203;Vizonex](https://github.com/Vizonex)) - Added guidance for managing multiple memory object stream producers and consumers with cloned streams ([#&#8203;330](https://github.com/agronholm/anyio/issues/330); PR by [@&#8203;nightcityblade](https://github.com/nightcityblade)) - Added `StapledObjectStream.send_nowait()` that delegates to the underlying `ObjectSendStream`, if it implements it ([#&#8203;1241](https://github.com/agronholm/anyio/pull/1241); PR by [@&#8203;davidbrochart](https://github.com/davidbrochart)) - Added the `move_on_at()` and `fail_at()` functions to complement `move_on_after()` and `fail_after()` - Changed the default name for a task spawned with `TaskGroup.create_task(func())` to match the default task name for the analogous task spawned with `TaskGroup.start_soon(func)` or `TaskGroup.start(func)` in more situations. Previously, the default name of a `TaskGroup.create_task` task never included the module name. (The default name for a task spawned with `TaskGroup.start_soon` or `TaskGroup.start` typically includes the module name.) ([#&#8203;1234](https://github.com/agronholm/anyio/pull/1234); PR by [@&#8203;gschaffner](https://github.com/gschaffner)) - Changed the `anyio` and `anyio.abc` modules to lazily (much like `810`) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the `if TYPE_CHECKING:` block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). ([#&#8203;1169](https://github.com/agronholm/anyio/pull/1169)) - Fixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to `start_blocking_portal()` and `anyio.to_thread.run_sync()` ([#&#8203;1224](https://github.com/agronholm/anyio/pull/1224); PR by [@&#8203;EmmanuelNiyonshuti](https://github.com/EmmanuelNiyonshuti)) - Fixed `SpooledTemporaryFile.readinto()` and `readinto1()` reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data ([#&#8203;1215](https://github.com/agronholm/anyio/pull/1215); PR by [@&#8203;c-tonneslan](https://github.com/c-tonneslan)) - Added a `reason` parameter to `fail_after` (and the new `fail_at`) allowing for added exception context when raising `TimeoutError` ([#&#8203;1227](https://github.com/agronholm/anyio/pull/1227); PR by [@&#8203;Graeme22](https://github.com/Graeme22)) - Fixed the default `TaskHandle.name` missing part of the task name for tasks started with `TaskGroup.start` on Trio ([#&#8203;1231](https://github.com/agronholm/anyio/issues/1231); PR by [@&#8203;gschaffner](https://github.com/gschaffner)) - Fixed `anyio.run` leaking, or at least, delaying collection of loop and root\_task due to the root task being cached in a `RunVar`. ([#&#8203;1203](https://github.com/agronholm/anyio/issues/1203); PR by [@&#8203;tapetersen](https://github.com/tapetersen)) - Fixed `anyio.Path.with_stem()` silently producing a wrong path (e.g. `Path(".txt")`) instead of raising `ValueError` when given an empty stem on a path with a non-empty suffix, unlike `pathlib.PurePath.with_stem` ([#&#8203;1200](https://github.com/agronholm/anyio/pull/1200); PR by [@&#8203;Sanjays2402](https://github.com/Sanjays2402)) - Fixed `UNIXSocketStream.aclose()` raising `asyncio.InvalidStateError` when a concurrent receive or send operation had just been cancelled on the asyncio backend ([#&#8203;1267](https://github.com/agronholm/anyio/issues/1267); PR by [@&#8203;alloutflo](https://github.com/alloutflo)) - Fixed the pytest plugin importing the deprecated `_pytest.python.CallSpec2` alias, which triggers `PytestRemovedIn10Warning` on `pytest>=9.2` and crashes pytest at startup when `filterwarnings = error` is configured ([#&#8203;1271](https://github.com/agronholm/anyio/issues/1271); PR by [@&#8203;matthewfeickert](https://github.com/matthewfeickert)) - Fixed an asyncio worker thread race that could raise `RuntimeError` when the event loop closed between checking its state and scheduling the worker result ([#&#8203;1265](https://github.com/agronholm/anyio/issues/1265); PR by [@&#8203;hansu650](https://github.com/hansu650)) - Fixed `CapacityLimiter` on the asyncio backend over-granting tokens when `total_tokens` was raised while the limiter was over-subscribed ([#&#8203;1223](https://github.com/agronholm/anyio/pull/1223); PR by [@&#8203;zelinewang](https://github.com/zelinewang)) - Fixed asyncio task groups leaking unawaited coroutines when a custom task constructor fails; default task creation is unaffected ([#&#8203;1274](https://github.com/agronholm/anyio/issues/1274); PR by [@&#8203;dsfaccini](https://github.com/dsfaccini)) - Fixed inconsistencies between Trio and asyncio when target `TaskGroup` is cancelled before a task created with `.start()` calls `TaskStatus.started()` - The started task shouldn't get a `CancelledError` until the first checkpoint after the `started()` call. - A value passed to `started()` should be available on the `TaskHandle` and correctly passed back to the caller of start even if cancelled. - The CancelledError shouldn't leak out of the `TaskGroup.start()` call to the calling task. ([#&#8203;1197](https://github.com/agronholm/anyio/issues/1197); PR by [@&#8203;tapetersen](https://github.com/tapetersen)) - Fixed `TemporaryDirectory` not cleaning up when the host task was cancelled while exiting the context manager, as the cleanup now runs in a shielded cancel scope ([#&#8203;1304](https://github.com/agronholm/anyio/pull/1304); PR by [@&#8203;smurfix](https://github.com/smurfix)) </details> <details> <summary>authlib/authlib (authlib)</summary> ### [`v1.8.0`](https://github.com/authlib/authlib/releases/tag/v1.8.0) [Compare Source](https://github.com/authlib/authlib/compare/v1.7.2...v1.8.0) #### What's Changed - Prefer `id_token_signed_response_alg` client metadata to guess algs by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;888](https://github.com/authlib/authlib/pull/888) - fix: Catch InvalidKeyIdError in RFC 9068 JWTBearerTokenValidator by [@&#8203;liudonggalaxy](https://github.com/liudonggalaxy) in [#&#8203;891](https://github.com/authlib/authlib/pull/891) - fix: make leeway configurable in JWTBearerTokenValidator by [@&#8203;mondi04](https://github.com/mondi04) in [#&#8203;903](https://github.com/authlib/authlib/pull/903) - feat: add default jti claim to sign\_jwt\_bearer\_assertion by [@&#8203;liudonggalaxy](https://github.com/liudonggalaxy) in [#&#8203;897](https://github.com/authlib/authlib/pull/897) - fix(oauth): cast sub claim to string in JWTBearerTokenGenerator by [@&#8203;levinKaus](https://github.com/levinKaus) in [#&#8203;911](https://github.com/authlib/authlib/pull/911) - Declare lower bounds for dependencies by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;912](https://github.com/authlib/authlib/pull/912) - feat(client): use httpx2 instead of httpx by [@&#8203;levinKaus](https://github.com/levinKaus) in [#&#8203;909](https://github.com/authlib/authlib/pull/909) - Fix RFC7523 malformed claims handling by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;916](https://github.com/authlib/authlib/pull/916) - Fix httpx oauth1 binary form data by [@&#8203;shc261392](https://github.com/shc261392) in [#&#8203;779](https://github.com/authlib/authlib/pull/779) - fix(starlette\_client): remove default= keyword from config.get calls by [@&#8203;aliaksei-protchanka](https://github.com/aliaksei-protchanka) in [#&#8203;770](https://github.com/authlib/authlib/pull/770) - Added client\_id parameter to AssertionClient by [@&#8203;vilmar-hillow](https://github.com/vilmar-hillow) in [#&#8203;476](https://github.com/authlib/authlib/pull/476) - fix(oauth): save device credential with authenticated client id by [@&#8203;arpitjain099](https://github.com/arpitjain099) in [#&#8203;908](https://github.com/authlib/authlib/pull/908) - fix(oauth1): correct protocol name in InsecureTransportError description by [@&#8203;RavSinghChandan](https://github.com/RavSinghChandan) in [#&#8203;919](https://github.com/authlib/authlib/pull/919) - fix(client): client can be flexible with jwt's header by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;922](https://github.com/authlib/authlib/pull/922) - fix(oidc): omit claims when the value is None by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;923](https://github.com/authlib/authlib/pull/923) #### New Contributors - [@&#8203;mondi04](https://github.com/mondi04) made their first contribution in [#&#8203;903](https://github.com/authlib/authlib/pull/903) - [@&#8203;levinKaus](https://github.com/levinKaus) made their first contribution in [#&#8203;911](https://github.com/authlib/authlib/pull/911) - [@&#8203;aliaksei-protchanka](https://github.com/aliaksei-protchanka) made their first contribution in [#&#8203;770](https://github.com/authlib/authlib/pull/770) - [@&#8203;vilmar-hillow](https://github.com/vilmar-hillow) made their first contribution in [#&#8203;476](https://github.com/authlib/authlib/pull/476) - [@&#8203;arpitjain099](https://github.com/arpitjain099) made their first contribution in [#&#8203;908](https://github.com/authlib/authlib/pull/908) - [@&#8203;RavSinghChandan](https://github.com/RavSinghChandan) made their first contribution in [#&#8203;919](https://github.com/authlib/authlib/pull/919) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.7.2...v1.8.0> </details> <details> <summary>tkem/cachetools (cachetools)</summary> ### [`v7.1.8`](https://github.com/tkem/cachetools/blob/HEAD/CHANGELOG.rst#v718-2026-08-31) [Compare Source](https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8) \=================== - Reject negative `maxsize` in `Cache.__init__`. </details> <details> <summary>pyca/cryptography (cryptography)</summary> ### [`v50.0.1`](https://github.com/pyca/cryptography/compare/50.0.0...50.0.1) [Compare Source](https://github.com/pyca/cryptography/compare/50.0.0...50.0.1) </details> <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.13.5`](https://github.com/pydantic/pydantic/releases/tag/v2.13.5) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5) #### v2.13.5 (2026-08-28) ##### What's Changed ##### Fixes - Allow reuse of validators when plugins are set by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;13535](https://github.com/pydantic/pydantic/pull/13535) - Fix missing GC traversal on some `pydantic-core` struct fields by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;13624](https://github.com/pydantic/pydantic/pull/13624) - Fix missing GC traversal in `pydantic-core` for `GeneralFieldsSerializer` by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;13629](https://github.com/pydantic/pydantic/pull/13629) - Count validated model fields once in smart unions by [@&#8203;tamird](https://github.com/tamird) in [#&#8203;13731](https://github.com/pydantic/pydantic/pull/13731) </details> <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.16.6`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0166) [Compare Source](https://github.com/astral-sh/ruff/compare/0.16.5...0.16.6) Released on 2026-09-03. ##### Preview features - Move `pytest-fixture-autouse` to the `restriction` category ([#&#8203;28219](https://github.com/astral-sh/ruff/pull/28219)) - \[`flake8-pytest-style`] Add an autofix for `PT020` ([#&#8203;27993](https://github.com/astral-sh/ruff/pull/27993)) - \[`flake8-tidy-imports`] Prevent fix loop between `TID254` and `TID255` ([#&#8203;28262](https://github.com/astral-sh/ruff/pull/28262)) - \[`isort`] Exclude pragma comments from line length calculation (`I001`) ([#&#8203;27313](https://github.com/astral-sh/ruff/pull/27313)) ##### Bug fixes - Validate unary expressions when parsing ([#&#8203;28233](https://github.com/astral-sh/ruff/pull/28233)) - \[`flake8-async`, `pylint`] Recognize `builtins.open` (`ASYNC230`, `PLW1514`) ([#&#8203;28021](https://github.com/astral-sh/ruff/pull/28021)) - \[`flake8-bugbear`] Fix panic on `match` subjects (`B031`) ([#&#8203;27781](https://github.com/astral-sh/ruff/pull/27781)) - \[`flake8-datetimez`] Reject `tzinfo=None` for `datetime` bounds (`DTZ901`) ([#&#8203;28022](https://github.com/astral-sh/ruff/pull/28022)) - \[`flake8-pytest-style`] Avoid duplicate `PT017` diagnostics ([#&#8203;27918](https://github.com/astral-sh/ruff/pull/27918)) - \[`ruff`] Remove `lint.external` hint for Ruff-specific suppressions (`RUF102`) ([#&#8203;27923](https://github.com/astral-sh/ruff/pull/27923)) ##### Rule changes - \[`flake8-use-pathlib`] Add display-only fix for `os.listdir` (`PTH208`) ([#&#8203;28027](https://github.com/astral-sh/ruff/pull/28027)) ##### Documentation - Add another example and glob reference for `lint.per-file-ignores` ([#&#8203;28106](https://github.com/astral-sh/ruff/pull/28106)) - Add duplicate work guidance ([#&#8203;28229](https://github.com/astral-sh/ruff/pull/28229)) - \[`flake8-async`] Document thread offloading (`ASYNC240`) ([#&#8203;28008](https://github.com/astral-sh/ruff/pull/28008)) - \[`pyupgrade`] Clarify default `encoding` argument handling (`UP012`) ([#&#8203;27315](https://github.com/astral-sh/ruff/pull/27315)) ##### Other changes - Allow unary plus in match patterns on Python 3.15 ([#&#8203;28231](https://github.com/astral-sh/ruff/pull/28231)) ##### Contributors - [@&#8203;flying-sheep](https://github.com/flying-sheep) - [@&#8203;pikammmmm](https://github.com/pikammmmm) - [@&#8203;fly1d](https://github.com/fly1d) - [@&#8203;waterWang](https://github.com/waterWang) - [@&#8203;Pierre-Sassoulas](https://github.com/Pierre-Sassoulas) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;jelle-openai](https://github.com/jelle-openai) - [@&#8203;ericbuehl](https://github.com/ericbuehl) - [@&#8203;tjkuson](https://github.com/tjkuson) - [@&#8203;AbhinavMir](https://github.com/AbhinavMir) - [@&#8203;Whning0513](https://github.com/Whning0513) - [@&#8203;chirizxc](https://github.com/chirizxc) ### [`v0.16.5`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0165) [Compare Source](https://github.com/astral-sh/ruff/compare/0.16.4...0.16.5) Released on 2026-08-27. ##### Preview features - Allow rules without codes ([#&#8203;28049](https://github.com/astral-sh/ruff/pull/28049)) - Introduce category selectors ([#&#8203;27666](https://github.com/astral-sh/ruff/pull/27666)) - Update preview default rules and categories ([#&#8203;27877](https://github.com/astral-sh/ruff/pull/27877)) ##### Bug fixes - \[`flake8-async`] Detect blocking generic HTTP requests (`ASYNC210`) ([#&#8203;28024](https://github.com/astral-sh/ruff/pull/28024)) - \[`flake8-datetimez`] Allow timezone-safe `strptime` chains (`DTZ007`) ([#&#8203;28023](https://github.com/astral-sh/ruff/pull/28023)) - \[`flake8-simplify`] Respect side effects in `lambda` defaults (`SIM401`) ([#&#8203;28000](https://github.com/astral-sh/ruff/pull/28000)) ##### Server - Fix duplicated "of" in `ClientOptions` doc comment ([#&#8203;27978](https://github.com/astral-sh/ruff/pull/27978)) ##### Documentation - Document rule acceptance guidelines ([#&#8203;27910](https://github.com/astral-sh/ruff/pull/27910)) - Document the new category selectors ([#&#8203;27906](https://github.com/astral-sh/ruff/pull/27906)) ##### Contributors - [@&#8203;AlexWaygood](https://github.com/AlexWaygood) - [@&#8203;sharkdp](https://github.com/sharkdp) - [@&#8203;jelle-openai](https://github.com/jelle-openai) - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;aarushkandukoori](https://github.com/aarushkandukoori) ### [`v0.16.4`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0164) [Compare Source](https://github.com/astral-sh/ruff/compare/0.16.3...0.16.4) Released on 2026-08-20. ##### Preview features - \[`flake8-use-pathlib`] Add autofix for `PTH116` ([#&#8203;26460](https://github.com/astral-sh/ruff/pull/26460)) - \[`refurb`] Restrict `delete-full-slice` to lists (`FURB131`) ([#&#8203;27711](https://github.com/astral-sh/ruff/pull/27711)) - \[`refurb`] Skip `FURB101` and `FURB103` when the `open` argument is a file descriptor ([#&#8203;27643](https://github.com/astral-sh/ruff/pull/27643)) ##### Bug fixes - Fix `InvalidInstruction` on Windows CPUs that do not support `POPCNT` ([#&#8203;27803](https://github.com/astral-sh/ruff/pull/27803)) - \[`pyflakes`] Emit semantic syntax errors in string type definitions as `F722` ([#&#8203;27835](https://github.com/astral-sh/ruff/pull/27835)) - \[`pylint`] Allow `os._exit` imports in `import-private-name` (`PLC2701`) ([#&#8203;27738](https://github.com/astral-sh/ruff/pull/27738)) ##### Rule changes - \[syntax-errors] Align mixed t-string/bytes error message with CPython 3.14 ([#&#8203;27766](https://github.com/astral-sh/ruff/pull/27766)) - \[`ruff`] Add `ctypes.LittleEndianStructure` and related types to existing exception (`RUF012`) ([#&#8203;27753](https://github.com/astral-sh/ruff/pull/27753)) - \[syntax-errors] Detect duplicate keyword arguments ([#&#8203;17804](https://github.com/astral-sh/ruff/pull/17804)) - \[syntax-errors] Detect parameters declared `nonlocal` ([#&#8203;27628](https://github.com/astral-sh/ruff/pull/27628)) ##### Server - Offer display-only fixes and mark safe fixes preferred ([#&#8203;27807](https://github.com/astral-sh/ruff/pull/27807)) - Support pull diagnostics for notebook cells ([#&#8203;27779](https://github.com/astral-sh/ruff/pull/27779)) ##### Documentation - Add default indicator to rules table ([#&#8203;27724](https://github.com/astral-sh/ruff/pull/27724)) - Fix broken link to Python docs ([#&#8203;27757](https://github.com/astral-sh/ruff/pull/27757)) ##### Other changes - Fix s390x stacker assembly in release builds ([#&#8203;27776](https://github.com/astral-sh/ruff/pull/27776)) - Guarantee minimum stack size when parsing a module, standalone expression, and suites ([#&#8203;25464](https://github.com/astral-sh/ruff/pull/25464)) - Reduce configuration deserialization code size ([#&#8203;27924](https://github.com/astral-sh/ruff/pull/27924)) - Check packed AST index bounds ([#&#8203;27849](https://github.com/astral-sh/ruff/pull/27849)) ##### Contributors - [@&#8203;AbhinavMir](https://github.com/AbhinavMir) - [@&#8203;eduardorittner](https://github.com/eduardorittner) - [@&#8203;royb3](https://github.com/royb3) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;carljm](https://github.com/carljm) - [@&#8203;rosstitmarsh](https://github.com/rosstitmarsh) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;zaniebot](https://github.com/zaniebot) - [@&#8203;ewdurbin](https://github.com/ewdurbin) - [@&#8203;woodruffw](https://github.com/woodruffw) - [@&#8203;Sacrimento](https://github.com/Sacrimento) - [@&#8203;lakshayxi](https://github.com/lakshayxi) - [@&#8203;WhiteFox0-0](https://github.com/WhiteFox0-0) - [@&#8203;baltasarblanco](https://github.com/baltasarblanco) </details> <details> <summary>astral-sh/ty (ty)</summary> ### [`v0.0.78`](https://github.com/astral-sh/ty/blob/HEAD/CHANGELOG.md#0078) [Compare Source](https://github.com/astral-sh/ty/compare/0.0.77...0.0.78) Released on 2026-09-02. ##### Bug fixes - Defer decorator-call diagnostics to avoid recursive-default cycles ([#&#8203;28226](https://github.com/astral-sh/ruff/pull/28226)) - Make cyclic intersection simplification deterministic ([#&#8203;28156](https://github.com/astral-sh/ruff/pull/28156)) - Stabilize cyclic terminal-call reachability ([#&#8203;28216](https://github.com/astral-sh/ruff/pull/28216)) ##### Preview features - Refresh uv workspace metadata when dependencies change ([#&#8203;28224](https://github.com/astral-sh/ruff/pull/28224)) ##### Diagnostics - Add a new `disjoint-cast` rule ([#&#8203;28129](https://github.com/astral-sh/ruff/pull/28129)) - Report deprecated property accessors on intersections ([#&#8203;28250](https://github.com/astral-sh/ruff/pull/28250)) - Report deprecations for implicit constructor calls ([#&#8203;28251](https://github.com/astral-sh/ruff/pull/28251)) - Report deprecations for overloads, operators, and properties ([#&#8203;28134](https://github.com/astral-sh/ruff/pull/28134)) - Respect overload selection in deprecation diagnostics ([#&#8203;28148](https://github.com/astral-sh/ruff/pull/28148)) ##### Core type checking - Fix negative narrowing for protocols with gradual members ([#&#8203;28198](https://github.com/astral-sh/ruff/pull/28198)) - Preserve `ParamSpec` bindings inferred against type context ([#&#8203;28084](https://github.com/astral-sh/ruff/pull/28084)) - Preserve generic protocol materialization relations ([#&#8203;28246](https://github.com/astral-sh/ruff/pull/28246)) - Preserve uncertain branches during quantification ([#&#8203;28211](https://github.com/astral-sh/ruff/pull/28211)) - Respect type variables in top/bottom materializations of invariant generics ([#&#8203;28072](https://github.com/astral-sh/ruff/pull/28072)) - Sync vendored typeshed stubs ([#&#8203;28217](https://github.com/astral-sh/ruff/pull/28217)). [Typeshed diff](https://github.com/python/typeshed/compare/6b7f7b93300550eb55380db8ca62488eb0c78c77...cf09d2a4d7614f648e9109dce609887499a7c6ee) - Treat captured bound-method receivers covariantly ([#&#8203;28180](https://github.com/astral-sh/ruff/pull/28180)) - Unsound intersection simplification for generic iterables ([#&#8203;28068](https://github.com/astral-sh/ruff/pull/28068)) - Validate type variable scopes in constructors and aliases ([#&#8203;28130](https://github.com/astral-sh/ruff/pull/28130)) - `lambda` functions are always truthy ([#&#8203;28254](https://github.com/astral-sh/ruff/pull/28254)) ##### Performance - Optimize materialized recursive protocol comparisons ([#&#8203;28079](https://github.com/astral-sh/ruff/pull/28079)) - Optimize recursive protocol checks for nested type variables ([#&#8203;28257](https://github.com/astral-sh/ruff/pull/28257)) ##### Contributors - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;sharkdp](https://github.com/sharkdp) - [@&#8203;zsol](https://github.com/zsol) - [@&#8203;AlexWaygood](https://github.com/AlexWaygood) - [@&#8203;ibraheemdev](https://github.com/ibraheemdev) - [@&#8203;carljm](https://github.com/carljm) ### [`v0.0.77`](https://github.com/astral-sh/ty/blob/HEAD/CHANGELOG.md#0077) [Compare Source](https://github.com/astral-sh/ty/compare/0.0.76...0.0.77) Released on 2026-08-31. ##### Bug fixes - Bound recursive protocol traversal in generic intersections ([#&#8203;28215](https://github.com/astral-sh/ruff/pull/28215)) - Preserve recursion guards across nested type operations ([#&#8203;28150](https://github.com/astral-sh/ruff/pull/28150)) - Preserve syntax and comments when removing redundant casts ([#&#8203;28145](https://github.com/astral-sh/ruff/pull/28145)) - Stabilize recursive receiver inference ([#&#8203;28042](https://github.com/astral-sh/ruff/pull/28042)) - Stabilize condition truthiness during cyclic inference ([#&#8203;28212](https://github.com/astral-sh/ruff/pull/28212)) ##### Core type checking - Preserve generic receivers in implicit `__init_subclass__` calls ([#&#8203;28138](https://github.com/astral-sh/ruff/pull/28138)) - Preserve specialization for inherited `TypedDict` methods ([#&#8203;28111](https://github.com/astral-sh/ruff/pull/28111)) - Propagate deletions through nested loop headers ([#&#8203;28044](https://github.com/astral-sh/ruff/pull/28044)) ##### Performance - Avoid repeated inference for literal union call results ([#&#8203;28196](https://github.com/astral-sh/ruff/pull/28196)) ##### Contributors - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;carljm](https://github.com/carljm) ### [`v0.0.76`](https://github.com/astral-sh/ty/blob/HEAD/CHANGELOG.md#0076) [Compare Source](https://github.com/astral-sh/ty/compare/0.0.75...0.0.76) Released on 2026-08-31. ##### Preview features - Add a missing-direct-dependency rule ([#&#8203;28001](https://github.com/astral-sh/ruff/pull/28001)) - Cancel superseded queued uv requests ([#&#8203;28108](https://github.com/astral-sh/ruff/pull/28108)) - Check direct dependencies in PEP 723 scripts ([#&#8203;28136](https://github.com/astral-sh/ruff/pull/28136)) - Fix Goto definition in script dependencies ([#&#8203;27747](https://github.com/astral-sh/ruff/pull/27747)) - Move script environment initialization to the CLI and LSP ([#&#8203;28038](https://github.com/astral-sh/ruff/pull/28038)) - Refresh uv project metadata in the background ([#&#8203;27933](https://github.com/astral-sh/ruff/pull/27933)) - Synchronize PEP 723 script environments in the language server ([#&#8203;27619](https://github.com/astral-sh/ruff/pull/27619)) - Warn when uv metadata cannot support dependency checks ([#&#8203;28133](https://github.com/astral-sh/ruff/pull/28133)) ##### Bug fixes - Avoid panics on incomplete protocol type parameter lists ([#&#8203;28088](https://github.com/astral-sh/ruff/pull/28088)) - Fix auto-completion panic involving bare declarations ([#&#8203;28191](https://github.com/astral-sh/ruff/pull/28191)) - Guard recursive meta-type expansion ([#&#8203;28143](https://github.com/astral-sh/ruff/pull/28143)) - Preserve parentheses when removing redundant casts ([#&#8203;28092](https://github.com/astral-sh/ruff/pull/28092)) ##### LSP server - Add "Find references" support for pytest fixtures ([#&#8203;28075](https://github.com/astral-sh/ruff/pull/28075)) - Highlight PEP 723 script metadata as TOML ([#&#8203;27746](https://github.com/astral-sh/ruff/pull/27746)) - Synchronize saved script metadata on open ([#&#8203;27873](https://github.com/astral-sh/ruff/pull/27873)) ##### Core type checking - Apply mixin specialization when validating enum members ([#&#8203;28101](https://github.com/astral-sh/ruff/pull/28101)) - Bind `Self` through generic type aliases ([#&#8203;28117](https://github.com/astral-sh/ruff/pull/28117)) - Infer lambda parameters through callable type aliases ([#&#8203;28109](https://github.com/astral-sh/ruff/pull/28109)) - Intersection simplifications with subtype-related generic specializations ([#&#8203;26880](https://github.com/astral-sh/ruff/pull/26880)) - Invalidate member narrowing across loop iterations ([#&#8203;28009](https://github.com/astral-sh/ruff/pull/28009)) - Narrow functional enum members in `==` and `match` ([#&#8203;28103](https://github.com/astral-sh/ruff/pull/28103)) - Only treat recursive types with unbounded specializations as fallback cycles ([#&#8203;27538](https://github.com/astral-sh/ruff/pull/27538)) - Preserve `Final` variance in stubs ([#&#8203;28119](https://github.com/astral-sh/ruff/pull/28119)) - Preserve inferred types for unknown class-decorator results ([#&#8203;28067](https://github.com/astral-sh/ruff/pull/28067)) - Preserve list literal positions in starred unpacking ([#&#8203;28061](https://github.com/astral-sh/ruff/pull/28061)) - Preserve short-circuit reachability for direct conditions ([#&#8203;28082](https://github.com/astral-sh/ruff/pull/28082)) - Preserve type variables in bounded generic defaults ([#&#8203;28122](https://github.com/astral-sh/ruff/pull/28122)) - Reject circular type alias definitions ([#&#8203;28140](https://github.com/astral-sh/ruff/pull/28140)) - Reject class access to generic instance attributes ([#&#8203;28123](https://github.com/astral-sh/ruff/pull/28123)) - Use the subclass receiver when checking method overrides ([#&#8203;28124](https://github.com/astral-sh/ruff/pull/28124)) - Validate declared variance in method signatures ([#&#8203;28116](https://github.com/astral-sh/ruff/pull/28116)) ##### Performance - Avoid cubic narrowing with repeated assignments and context managers ([#&#8203;27787](https://github.com/astral-sh/ruff/pull/27787)) - Avoid repeated traversal of shared alias arguments ([#&#8203;28147](https://github.com/astral-sh/ruff/pull/28147)) - Reject impossible eager protocol comparisons early ([#&#8203;28081](https://github.com/astral-sh/ruff/pull/28081)) ##### Contributors - [@&#8203;AlexWaygood](https://github.com/AlexWaygood) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;BitWeaverDev](https://github.com/BitWeaverDev) - [@&#8203;gorewilliams](https://github.com/gorewilliams) - [@&#8203;zsol](https://github.com/zsol) - [@&#8203;malkin0xb8](https://github.com/malkin0xb8) - [@&#8203;sharkdp](https://github.com/sharkdp) - [@&#8203;mtshiba](https://github.com/mtshiba) - [@&#8203;carljm](https://github.com/carljm) - [@&#8203;lerebear](https://github.com/lerebear) - [@&#8203;jamtat](https://github.com/jamtat) ### [`v0.0.75`](https://github.com/astral-sh/ty/blob/HEAD/CHANGELOG.md#0075) [Compare Source](https://github.com/astral-sh/ty/compare/0.0.74...0.0.75) Released on 2026-08-26. ##### Preview features - Initialize PEP 723 script environments in the CLI ([#&#8203;27544](https://github.com/astral-sh/ruff/pull/27544)) - Refresh PEP 723 script environments in watch mode ([#&#8203;27617](https://github.com/astral-sh/ruff/pull/27617)) - Run PEP 723 script synchronization on bounded workers ([#&#8203;27615](https://github.com/astral-sh/ruff/pull/27615)) ##### Bug fixes - Specialize `Self` bounds of inherited methods ([#&#8203;27990](https://github.com/astral-sh/ruff/pull/27990)) ##### LSP server - Add "Go to Definition" support for pytest fixtures ([#&#8203;27444](https://github.com/astral-sh/ruff/pull/27444)) ##### Documentation - Fix documented Python package build command ([#&#8203;4384](https://github.com/astral-sh/ty/pull/4384)) - Link untyped-call tracking issue in migration guide ([#&#8203;4382](https://github.com/astral-sh/ty/pull/4382)) ##### Library support - Resolve imported pytest fixture exposures ([#&#8203;27539](https://github.com/astral-sh/ruff/pull/27539)) - Resolve installed core pytest fixture providers ([#&#8203;27770](https://github.com/astral-sh/ruff/pull/27770)) - Resolve pytest fixtures through conftest ([#&#8203;27540](https://github.com/astral-sh/ruff/pull/27540)) ##### Diagnostics - Add more autofixes ([#&#8203;28029](https://github.com/astral-sh/ruff/pull/28029)) - Add a dedicated missing-slot diagnostic ([#&#8203;28039](https://github.com/astral-sh/ruff/pull/28039)) - Explain missing storage for declared slotted attributes ([#&#8203;27969](https://github.com/astral-sh/ruff/pull/27969)) - Improve diagnostic spans for unpacked variable assignments ([#&#8203;28041](https://github.com/astral-sh/ruff/pull/28041)) ##### Core type checking - Account for known subclasses in equality inference ([#&#8203;28005](https://github.com/astral-sh/ruff/pull/28005)) - Expand `ParamSpec` signatures inferred from bound receivers ([#&#8203;28020](https://github.com/astral-sh/ruff/pull/28020)) - Fix `Self` binding in `ParamSpec` protocols ([#&#8203;28016](https://github.com/astral-sh/ruff/pull/28016)) - Fix `TypedDict` variance inference ([#&#8203;28052](https://github.com/astral-sh/ruff/pull/28052)) - Fix unsound narrowing through branch-assigned conditions ([#&#8203;28006](https://github.com/astral-sh/ruff/pull/28006)) - Ignore inconsistent binding decorators on overloads ([#&#8203;28036](https://github.com/astral-sh/ruff/pull/28036)) - Infer `yield from` send/return types from the iterator returned by `__iter__` ([#&#8203;27987](https://github.com/astral-sh/ruff/pull/27987)) - Infer tuple type parameters from union arguments ([#&#8203;28062](https://github.com/astral-sh/ruff/pull/28062)) - Infer variance through nonrecursive protocol references ([#&#8203;28065](https://github.com/astral-sh/ruff/pull/28065)) - Preserve bounds of non-literal metaclasses ([#&#8203;28046](https://github.com/astral-sh/ruff/pull/28046)) - Preserve correlated generic-call inference ([#&#8203;28043](https://github.com/astral-sh/ruff/pull/28043)) - Preserve invariant materialization constraints ([#&#8203;28047](https://github.com/astral-sh/ruff/pull/28047)) - Recover bare `TypeVarTuple`s in tuple annotations ([#&#8203;27950](https://github.com/astral-sh/ruff/pull/27950)) - Reject fixed tuples for non-inferable `TypeVarTuple`s ([#&#8203;27943](https://github.com/astral-sh/ruff/pull/27943)) - Reject incompatible constructor context for variadic packs ([#&#8203;27966](https://github.com/astral-sh/ruff/pull/27966)) - Support mixed gradual tuple assignability with `TypeVarTuple` ([#&#8203;27957](https://github.com/astral-sh/ruff/pull/27957)) - Support tagged union with multiple tags per type ([#&#8203;27984](https://github.com/astral-sh/ruff/pull/27984)) - Sync vendored typeshed stubs ([#&#8203;28035](https://github.com/astral-sh/ruff/pull/28035)). [Typeshed diff](https://github.com/python/typeshed/compare/6fba3ae73db5a9807780514b463126f1ee8ff216...6b7f7b93300550eb55380db8ca62488eb0c78c77) - Treat `typing.Union` as a class on Python 3.14+ ([#&#8203;28003](https://github.com/astral-sh/ruff/pull/28003)) - Validate generic protocol variance ([#&#8203;27531](https://github.com/astral-sh/ruff/pull/27531)) - `collections.abc.Callable` is an instance of `type` ([#&#8203;27991](https://github.com/astral-sh/ruff/pull/27991)) ##### Contributors - [@&#8203;sharkdp](https://github.com/sharkdp) - [@&#8203;jelle-openai](https://github.com/jelle-openai) - [@&#8203;marcelo-souzaf](https://github.com/marcelo-souzaf) - [@&#8203;AlexWaygood](https://github.com/AlexWaygood) - [@&#8203;krzkaczor](https://github.com/krzkaczor) - [@&#8203;carljm](https://github.com/carljm) - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;lerebear](https://github.com/lerebear) - [@&#8203;MichaReiser](https://github.com/MichaReiser) ### [`v0.0.74`](https://github.com/astral-sh/ty/blob/HEAD/CHANGELOG.md#0074) [Compare Source](https://github.com/astral-sh/ty/compare/0.0.73...0.0.74) Released on 2026-08-22. ##### Bug fixes - Avoid duplicate bindings in multi-target assignments ([#&#8203;27938](https://github.com/astral-sh/ruff/pull/27938)) - Avoid panic on unpacked kwargs in string annotations ([#&#8203;27963](https://github.com/astral-sh/ruff/pull/27963)) - Fix stack overflow in recursive `TypedDict` dictionary compatibility ([#&#8203;27951](https://github.com/astral-sh/ruff/pull/27951)) - Handle assignment expressions in string annotations ([#&#8203;27921](https://github.com/astral-sh/ruff/pull/27921)) - Handle dynamic classes in string annotations ([#&#8203;27883](https://github.com/astral-sh/ruff/pull/27883)) - Preserve string annotation context in lambda defaults and `TypedDict` types ([#&#8203;27914](https://github.com/astral-sh/ruff/pull/27914)) - Skip invalid subscript arguments in string annotations ([#&#8203;27917](https://github.com/astral-sh/ruff/pull/27917)) - Skip invalid subscript operands in string annotations ([#&#8203;27882](https://github.com/astral-sh/ruff/pull/27882)) ##### LSP server - Add `untrustedWorkspace` option to the LSP ([#&#8203;27828](https://github.com/astral-sh/ruff/pull/27828)) - Add executable discovery to the server command ([#&#8203;27806](https://github.com/astral-sh/ruff/pull/27806)) - Handle file-valued workspace folders from Zed ([#&#8203;27836](https://github.com/astral-sh/ruff/pull/27836)) - Skip scripts with an invalid PEP 723 configuration ([#&#8203;27505](https://github.com/astral-sh/ruff/pull/27505)) - Support pull diagnostics for notebook cells ([#&#8203;27778](https://github.com/astral-sh/ruff/pull/27778)) ##### Documentation - Update mypy/pyright comparison table ([#&#8203;4165](https://github.com/astral-sh/ty/pull/4165)) ##### Diagnostics - Add an opt-in `unsound-assignment` rule for variables ([#&#8203;27874](https://github.com/astral-sh/ruff/pull/27874)) - Fix variadic signature display ([#&#8203;27869](https://github.com/astral-sh/ruff/pull/27869)) - Highlight declarations in invalid-assignment diagnostics ([#&#8203;27872](https://github.com/astral-sh/ruff/pull/27872)) - Improve `LiteralString` suggestions in string annotations ([#&#8203;27931](https://github.com/astral-sh/ruff/pull/27931)) - Use `invalid-type-form` for non-generic class annotations ([#&#8203;27889](https://github.com/astral-sh/ruff/pull/27889)) ##### Core type checking - Add bounded constraint solution projections ([#&#8203;27949](https://github.com/astral-sh/ruff/pull/27949)) - Fix invariant gradual tuple materialization ranges ([#&#8203;27946](https://github.com/astral-sh/ruff/pull/27946)) - Guard recursive constructor bindings by receiver ([#&#8203;27958](https://github.com/astral-sh/ruff/pull/27958)) - Preserve all alternatives in bounded intersections ([#&#8203;27898](https://github.com/astral-sh/ruff/pull/27898)) - Preserve keyword safety for unpacked callables ([#&#8203;27517](https://github.com/astral-sh/ruff/pull/27517)) - Preserve source protocol members and classify finite aliases ([#&#8203;27772](https://github.com/astral-sh/ruff/pull/27772)) - Preserve type-variable order when reloading constraints ([#&#8203;27904](https://github.com/astral-sh/ruff/pull/27904)) - Propagate narrowing through statically known branches ([#&#8203;27752](https://github.com/astral-sh/ruff/pull/27752)) - Recognize ABC metaclass methods on protocols ([#&#8203;27897](https://github.com/astral-sh/ruff/pull/27897)) - Support `__slots__` ([#&#8203;27730](https://github.com/astral-sh/ruff/pull/27730)) ##### Performance - Lazily infer function parameter default types ([#&#8203;27857](https://github.com/astral-sh/ruff/pull/27857)) - Optimize inherited recursive protocol comparisons ([#&#8203;27922](https://github.com/astral-sh/ruff/pull/27922)) - Traverse shared constraint source-order nodes once ([#&#8203;27947](https://github.com/astral-sh/ruff/pull/27947)) ##### Contributors - [@&#8203;carljm](https://github.com/carljm) - [@&#8203;lerebear](https://github.com/lerebear) - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;dhruvmanila](https://github.com/dhruvmanila) - [@&#8203;AlexWaygood](https://github.com/AlexWaygood) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;jelle-openai](https://github.com/jelle-openai) ### [`v0.0.73`](https://github.com/astral-sh/ty/blob/HEAD/CHANGELOG.md#0073) [Compare Source](https://github.com/astral-sh/ty/compare/0.0.72...0.0.73) Released on 2026-08-18. ##### LSP server - Do not prefer unsafe fixes in the language server ([#&#8203;27822](https://github.com/astral-sh/ruff/pull/27822)) - Fix signature help in trailing whitespace ([#&#8203;27784](https://github.com/astral-sh/ruff/pull/27784)) ##### Library support - Preserve variadic generics in `functools.partial` ([#&#8203;27774](https://github.com/astral-sh/ruff/pull/27774)) ##### Diagnostics - Add an opt-in rule flagging function decorators that transform a non-dynamic type into a dynamic type ([#&#8203;27829](https://github.com/astral-sh/ruff/pull/27829)) - Disambiguate same-named types in several diagnostics ([#&#8203;27814](https://github.com/astral-sh/ruff/pull/27814)) - Show error spans for errors originating in script metadata ([#&#8203;26693](https://github.com/astral-sh/ruff/pull/26693)) ##### Core type checking - Avoid bypassing solver during literal promotion ([#&#8203;27763](https://github.com/astral-sh/ruff/pull/27763)) - Expand nested union aliases when finding a `TypedDict` or callable ([#&#8203;27740](https://github.com/astral-sh/ruff/pull/27740)) - Implement intersection meta-type projection ([#&#8203;27660](https://github.com/astral-sh/ruff/pull/27660)) - Infer generic protocols from class objects ([#&#8203;27812](https://github.com/astral-sh/ruff/pull/27812)) - Model exception-suppressing context managers ([#&#8203;27219](https://github.com/astral-sh/ruff/pull/27219)) - Preserve `TypeAliasType` runtime origin ([#&#8203;27813](https://github.com/astral-sh/ruff/pull/27813)) - Preserve class objects in lazy protocol checks ([#&#8203;27815](https://github.com/astral-sh/ruff/pull/27815)) - Preserve declared types in exception handlers ([#&#8203;27817](https://github.com/astral-sh/ruff/pull/27817)) - Preserve explicit globals after conditional rebinding ([#&#8203;27786](https://github.com/astral-sh/ruff/pull/27786)) - Preserve property subclass types and accessors ([#&#8203;27833](https://github.com/astral-sh/ruff/pull/27833)) - Preserve required stub fields in generated constructors ([#&#8203;27765](https://github.com/astral-sh/ruff/pull/27765)) - Preserve static upper bounds of gradual solutions ([#&#8203;27664](https://github.com/astral-sh/ruff/pull/27664)) - Prevent unrelated quantified constraints from destabilizing recursive queries ([#&#8203;27737](https://github.com/astral-sh/ruff/pull/27737)) - Separate generic constraint accumulation from legacy projection ([#&#8203;27743](https://github.com/astral-sh/ruff/pull/27743)) - Simplify generic protocol inference ([#&#8203;27819](https://github.com/astral-sh/ruff/pull/27819)) - Specialize inherited members of unspecialized generic classes ([#&#8203;27658](https://github.com/astral-sh/ruff/pull/27658)) - Specialize type variables determined by bound receivers ([#&#8203;27732](https://github.com/astral-sh/ruff/pull/27732)) - Support unpacking tuple type aliases ([#&#8203;27825](https://github.com/astral-sh/ruff/pull/27825)) - Sync vendored typeshed stubs ([#&#8203;27771](https://github.com/astral-sh/ruff/pull/27771)). [Typeshed diff](https://github.com/python/typeshed/compare/1b116673774d062a4af7b0a0b3d05533a6be55d0...6fba3ae73db5a9807780514b463126f1ee8ff216) ##### Performance - Cache `py.typed` contents ([#&#8203;27805](https://github.com/astral-sh/ruff/pull/27805)) - Deduplicate exception checkpoints across equivalent branches ([#&#8203;27703](https://github.com/astral-sh/ruff/pull/27703)) ##### Contributors - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;AlexWaygood](https://github.com/AlexWaygood) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;augustelalande](https://github.com/augustelalande) - [@&#8203;carljm](https://github.com/carljm) - [@&#8203;woodruffw](https://github.com/woodruffw) - [@&#8203;dhruvmanila](https://github.com/dhruvmanila) - [@&#8203;ibraheemdev](https://github.com/ibraheemdev) - [@&#8203;zaniebot](https://github.com/zaniebot) </details> <details> <summary>Kludex/uvicorn (uvicorn)</summary> ### [`v0.52.4`](https://github.com/Kludex/uvicorn/releases/tag/0.52.4): Version 0.52.4 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4) ##### Fixed - Remove duplicate `Date` headers from accepted WebSocket handshakes with `websockets-sansio` ([#&#8203;3078](https://github.com/Kludex/uvicorn/pull/3078)) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4> </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Amsterdam) - Branch creation - "before 6am on sunday" - 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](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Update Python dependencies
Some checks failed
CI / pre-commit (pull_request) Successful in 3m3s
CI / frontend-test (pull_request) Failing after 5m48s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 50s
security-scan / Python SAST (bandit) (pull_request) Successful in 30s
security-scan / JS SCA (npm audit) (pull_request) Successful in 30s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 22s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m13s
test-build / build (frontend) (pull_request) Successful in 2m8s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 19m47s
CI / e2e (pull_request) Failing after 15m26s
43522290aa
robbertbos force-pushed renovate/python from 43522290aa
Some checks failed
CI / pre-commit (pull_request) Successful in 3m3s
CI / frontend-test (pull_request) Failing after 5m48s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 50s
security-scan / Python SAST (bandit) (pull_request) Successful in 30s
security-scan / JS SCA (npm audit) (pull_request) Successful in 30s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 22s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m13s
test-build / build (frontend) (pull_request) Successful in 2m8s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 19m47s
CI / e2e (pull_request) Failing after 15m26s
to b8b29bc243
Some checks failed
CI / pre-commit (pull_request) Successful in 3m1s
CI / frontend-test (pull_request) Successful in 5m32s
CI / release-scripts (pull_request) Successful in 8s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 50s
security-scan / Python SAST (bandit) (pull_request) Successful in 29s
security-scan / JS SCA (npm audit) (pull_request) Successful in 30s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 21s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m7s
test-build / build (frontend) (pull_request) Successful in 1m59s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 16m11s
CI / e2e (pull_request) Failing after 15m51s
2026-08-26 02:03:46 +00:00
Compare
robbertbos force-pushed renovate/python from b8b29bc243
Some checks failed
CI / pre-commit (pull_request) Successful in 3m1s
CI / frontend-test (pull_request) Successful in 5m32s
CI / release-scripts (pull_request) Successful in 8s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 50s
security-scan / Python SAST (bandit) (pull_request) Successful in 29s
security-scan / JS SCA (npm audit) (pull_request) Successful in 30s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 21s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m7s
test-build / build (frontend) (pull_request) Successful in 1m59s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 16m11s
CI / e2e (pull_request) Failing after 15m51s
to 1456095766
Some checks failed
CI / pre-commit (pull_request) Successful in 2m58s
CI / frontend-test (pull_request) Failing after 5m58s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 53s
security-scan / Python SAST (bandit) (pull_request) Successful in 33s
security-scan / JS SCA (npm audit) (pull_request) Successful in 32s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 23s
security-scan / SBOM (trivy) (pull_request) Successful in 15s
test-build / build (backend) (pull_request) Successful in 2m14s
test-build / build (frontend) (pull_request) Successful in 1m44s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 19m23s
CI / e2e (pull_request) Failing after 13m10s
2026-08-27 02:04:10 +00:00
Compare
robbertbos force-pushed renovate/python from 1456095766
Some checks failed
CI / pre-commit (pull_request) Successful in 2m58s
CI / frontend-test (pull_request) Failing after 5m58s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 53s
security-scan / Python SAST (bandit) (pull_request) Successful in 33s
security-scan / JS SCA (npm audit) (pull_request) Successful in 32s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 23s
security-scan / SBOM (trivy) (pull_request) Successful in 15s
test-build / build (backend) (pull_request) Successful in 2m14s
test-build / build (frontend) (pull_request) Successful in 1m44s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 19m23s
CI / e2e (pull_request) Failing after 13m10s
to a32b67d460
Some checks failed
CI / pre-commit (pull_request) Successful in 3m13s
CI / frontend-test (pull_request) Failing after 5m37s
CI / release-scripts (pull_request) Successful in 10s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 49s
security-scan / Python SAST (bandit) (pull_request) Successful in 32s
security-scan / JS SCA (npm audit) (pull_request) Successful in 30s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 23s
security-scan / SBOM (trivy) (pull_request) Successful in 15s
test-build / build (backend) (pull_request) Successful in 2m14s
test-build / build (frontend) (pull_request) Successful in 2m8s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 19m24s
CI / e2e (pull_request) Failing after 15m15s
2026-08-28 02:04:15 +00:00
Compare
robbertbos force-pushed renovate/python from a32b67d460
Some checks failed
CI / pre-commit (pull_request) Successful in 3m13s
CI / frontend-test (pull_request) Failing after 5m37s
CI / release-scripts (pull_request) Successful in 10s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 49s
security-scan / Python SAST (bandit) (pull_request) Successful in 32s
security-scan / JS SCA (npm audit) (pull_request) Successful in 30s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 23s
security-scan / SBOM (trivy) (pull_request) Successful in 15s
test-build / build (backend) (pull_request) Successful in 2m14s
test-build / build (frontend) (pull_request) Successful in 2m8s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 19m24s
CI / e2e (pull_request) Failing after 15m15s
to 15ac78bb43
Some checks failed
CI / pre-commit (pull_request) Successful in 3m11s
CI / frontend-test (pull_request) Successful in 6m4s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 50s
security-scan / Python SAST (bandit) (pull_request) Successful in 30s
security-scan / JS SCA (npm audit) (pull_request) Successful in 32s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 23s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m17s
test-build / build (frontend) (pull_request) Successful in 2m8s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 22m25s
CI / e2e (pull_request) Failing after 15m52s
2026-08-29 02:03:51 +00:00
Compare
robbertbos force-pushed renovate/python from 15ac78bb43
Some checks failed
CI / pre-commit (pull_request) Successful in 3m11s
CI / frontend-test (pull_request) Successful in 6m4s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 50s
security-scan / Python SAST (bandit) (pull_request) Successful in 30s
security-scan / JS SCA (npm audit) (pull_request) Successful in 32s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 23s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m17s
test-build / build (frontend) (pull_request) Successful in 2m8s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 22m25s
CI / e2e (pull_request) Failing after 15m52s
to 450da40bb8
Some checks failed
CI / pre-commit (pull_request) Successful in 3m11s
CI / frontend-test (pull_request) Failing after 5m34s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 51s
security-scan / Python SAST (bandit) (pull_request) Successful in 32s
security-scan / JS SCA (npm audit) (pull_request) Successful in 34s
security-scan / SBOM (trivy) (pull_request) Successful in 16s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 26s
test-build / build (frontend) (pull_request) Successful in 2m8s
test-build / build (backend) (pull_request) Successful in 2m15s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 18m9s
CI / e2e (pull_request) Failing after 13m11s
2026-08-31 02:09:16 +00:00
Compare
robbertbos force-pushed renovate/python from 450da40bb8
Some checks failed
CI / pre-commit (pull_request) Successful in 3m11s
CI / frontend-test (pull_request) Failing after 5m34s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 51s
security-scan / Python SAST (bandit) (pull_request) Successful in 32s
security-scan / JS SCA (npm audit) (pull_request) Successful in 34s
security-scan / SBOM (trivy) (pull_request) Successful in 16s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 26s
test-build / build (frontend) (pull_request) Successful in 2m8s
test-build / build (backend) (pull_request) Successful in 2m15s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 18m9s
CI / e2e (pull_request) Failing after 13m11s
to 46f2ea97e1
Some checks failed
CI / pre-commit (pull_request) Successful in 3m12s
CI / frontend-test (pull_request) Failing after 5m25s
CI / release-scripts (pull_request) Successful in 8s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 49s
security-scan / Python SAST (bandit) (pull_request) Successful in 29s
security-scan / JS SCA (npm audit) (pull_request) Successful in 29s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 22s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m8s
test-build / build (frontend) (pull_request) Successful in 2m2s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 18m58s
CI / e2e (pull_request) Failing after 14m54s
2026-09-01 02:09:41 +00:00
Compare
robbertbos force-pushed renovate/python from 46f2ea97e1
Some checks failed
CI / pre-commit (pull_request) Successful in 3m12s
CI / frontend-test (pull_request) Failing after 5m25s
CI / release-scripts (pull_request) Successful in 8s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 49s
security-scan / Python SAST (bandit) (pull_request) Successful in 29s
security-scan / JS SCA (npm audit) (pull_request) Successful in 29s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 22s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m8s
test-build / build (frontend) (pull_request) Successful in 2m2s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 18m58s
CI / e2e (pull_request) Failing after 14m54s
to b4d47b1b59
Some checks failed
CI / pre-commit (pull_request) Successful in 3m12s
CI / frontend-test (pull_request) Failing after 5m29s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 51s
security-scan / Python SAST (bandit) (pull_request) Successful in 32s
security-scan / JS SCA (npm audit) (pull_request) Successful in 31s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 22s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m9s
test-build / build (frontend) (pull_request) Successful in 2m2s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 19m23s
CI / e2e (pull_request) Failing after 14m8s
2026-09-03 02:10:10 +00:00
Compare
robbertbos force-pushed renovate/python from b4d47b1b59
Some checks failed
CI / pre-commit (pull_request) Successful in 3m12s
CI / frontend-test (pull_request) Failing after 5m29s
CI / release-scripts (pull_request) Successful in 9s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 51s
security-scan / Python SAST (bandit) (pull_request) Successful in 32s
security-scan / JS SCA (npm audit) (pull_request) Successful in 31s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 22s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m9s
test-build / build (frontend) (pull_request) Successful in 2m2s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 19m23s
CI / e2e (pull_request) Failing after 14m8s
to aec8c56cdd
Some checks failed
CI / pre-commit (pull_request) Successful in 4m40s
CI / frontend-test (pull_request) Successful in 5m20s
CI / release-scripts (pull_request) Successful in 8s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 46s
security-scan / Python SAST (bandit) (pull_request) Successful in 26s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 19s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 1m45s
CI / backend-test (pull_request) Successful in 14m26s
test-build / build (frontend) (pull_request) Successful in 1m28s
test-build / build (pull_request) Successful in 0s
security-scan / JS SCA (npm audit) (pull_request) Failing after 7m26s
CI / e2e (pull_request) Successful in 15m9s
2026-09-04 02:09:24 +00:00
Compare
robbertbos force-pushed renovate/python from aec8c56cdd
Some checks failed
CI / pre-commit (pull_request) Successful in 4m40s
CI / frontend-test (pull_request) Successful in 5m20s
CI / release-scripts (pull_request) Successful in 8s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 46s
security-scan / Python SAST (bandit) (pull_request) Successful in 26s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 19s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 1m45s
CI / backend-test (pull_request) Successful in 14m26s
test-build / build (frontend) (pull_request) Successful in 1m28s
test-build / build (pull_request) Successful in 0s
security-scan / JS SCA (npm audit) (pull_request) Failing after 7m26s
CI / e2e (pull_request) Successful in 15m9s
to b658343cc2
Some checks failed
CI / pre-commit (pull_request) Successful in 3m14s
CI / frontend-test (pull_request) Successful in 5m31s
CI / release-scripts (pull_request) Successful in 8s
security-scan / Python SCA (pip-audit) (pull_request) Successful in 49s
security-scan / Python SAST (bandit) (pull_request) Successful in 30s
security-scan / JS SCA (npm audit) (pull_request) Successful in 29s
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 21s
security-scan / SBOM (trivy) (pull_request) Successful in 14s
test-build / build (backend) (pull_request) Successful in 2m17s
test-build / build (frontend) (pull_request) Successful in 2m7s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 20m18s
CI / e2e (pull_request) Failing after 23m49s
2026-09-05 02:10:02 +00:00
Compare
Some checks failed
CI / pre-commit (pull_request) Successful in 3m14s
Required
Details
CI / frontend-test (pull_request) Successful in 5m31s
Required
Details
CI / release-scripts (pull_request) Successful in 8s
Required
Details
security-scan / Python SCA (pip-audit) (pull_request) Successful in 49s
Required
Details
security-scan / Python SAST (bandit) (pull_request) Successful in 30s
Required
Details
security-scan / JS SCA (npm audit) (pull_request) Successful in 29s
Required
Details
security-scan / Filesystem scan (trivy fs) (pull_request) Successful in 21s
Required
Details
security-scan / SBOM (trivy) (pull_request) Successful in 14s
Required
Details
test-build / build (backend) (pull_request) Successful in 2m17s
test-build / build (frontend) (pull_request) Successful in 2m7s
test-build / build (pull_request) Successful in 0s
CI / backend-test (pull_request) Successful in 20m18s
Required
Details
CI / e2e (pull_request) Failing after 23m49s
Required
Details
Some required checks were not successful.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/python:renovate/python
git switch renovate/python
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
robbertbos/waggle!345
No description provided.