Skip to content

Bump the python-packages group across 1 directory with 22 updates - #715

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/python-packages-52b52f9836
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/python-packages-52b52f9836

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Bumps the python-packages group with 22 updates in the / directory:

Package From To
fastapi 0.139.0 0.162.0
pygithub 2.9.1 2.10.0
pyjwt 2.15.0 2.15.1
psycopg2 2.9.12 2.9.13
sqlalchemy 2.0.51 2.1.6
pydantic 2.13.4 2.14.2
uvicorn 0.51.0 0.54.0
redis 8.0.1 8.1.0
pika 1.4.1 1.4.4
opentelemetry-api 1.43.0 1.45.2
opentelemetry-sdk 1.43.0 1.45.2
opentelemetry-instrumentation 0.64b0 0.66b2
opentelemetry-instrumentation-fastapi 0.64b0 0.66b2
opentelemetry-instrumentation-psycopg2 0.64b0 0.66b2
opentelemetry-exporter-otlp 1.43.0 1.45.2
ruff 0.15.21 0.17.3
mypy 2.2.0 2.4.1
types-requests 2.33.0.20260712 2.33.0.20261030
pytest-asyncio 1.4.0 1.4.1
pytest 9.1.1 9.2.0
faker 40.28.1 40.44.0
pytest-env 1.6.0 1.8.3

Updates fastapi from 0.139.0 to 0.162.0

Release notes

Sourced from fastapi's releases.

0.162.0

Omitted bool and bool | None form fields now use their declared defaults or produce missing-field errors, consistent with other fields and Pydantic behavior. FastAPI no longer infers False for omitted booleans. This applies to individual form parameters, form models, and unions of form models.

Omitted boolean model fields are excluded from model_dump(exclude_unset=True), and their defaults no longer count as submitted fields during union selection. Default factories and validate_default follow the usual rules.

For HTML checkboxes, declare a boolean with a default of False. See Boolean Form Fields.

Breaking Changes

  • 🐛 Restore default handling for omitted boolean form fields. PR #16605 by @​tiangolo.

0.161.1

Fixes

  • 🐛 Fix OpenAPI schemas for standalone nullable form unions. PR #16598 by @​tiangolo.

0.161.0

Features

0.160.0

Query, header, cookie, and form parameter models now apply their extra configuration to all submitted fields in the same parameter location, consistent with Pydantic behavior. This includes fields declared in other models, individual parameters, or dependencies, which were previously excluded.

With extra="forbid", fields outside the model are rejected even if another parameter declares them. With extra="allow", those fields are included as model extras. With the default extra="ignore", they are ignored.

Breaking Changes

  • 🐛 Apply each parameter model's extra configuration to sibling fields. PR #16594 by @​tiangolo.

Internal

0.159.1

Features

0.159.0

Features

  • ✨ Add support for optional query, header, and cookie parameter models. PR #16584 by @​tiangolo.

0.158.2

Features

0.158.1

... (truncated)

Commits

Updates pygithub from 2.9.1 to 2.10.0

Release notes

Sourced from pygithub's releases.

2.10.0

Notable changes

Drop Python 3.9 support due to End-of-Life

Python 3.9 reached its end-of-life October 31, 2025. Support has been removed with this release.

New Features

Improvements

Bug Fixes

Maintenance

... (truncated)

Changelog

Sourced from pygithub's changelog.

Version 2.10.0 (August 20, 2026)

Notable changes ^^^^^^^^^^^^^^^

Drop Python 3.9 support due to End-of-Life """""""""""""""""""""""""""""""""""""""""" Python 3.9 reached its end-of-life October 31, 2025. Support has been removed with this release.

New Features ^^^^^^^^^^^^

  • Allow to specify the Github API version ([#3480](https://github.com/pygithub/pygithub/issues/3480) <https://github.com/PyGithub/PyGithub/pull/3480>) (546b0ee7e <https://github.com/PyGithub/PyGithub/commit/546b0ee7e>)
  • Add issue dependency endpoints ([#3477](https://github.com/pygithub/pygithub/issues/3477) <https://github.com/PyGithub/PyGithub/pull/3477>) (b0ee6e0c7 <https://github.com/PyGithub/PyGithub/commit/b0ee6e0c7>)

Improvements ^^^^^^^^^^^^

  • Add incomplete_results property to PaginatedList ([#3396](https://github.com/pygithub/pygithub/issues/3396) <https://github.com/PyGithub/PyGithub/pull/3396>) (7806e7dcc <https://github.com/PyGithub/PyGithub/commit/7806e7dcc>)
  • Add WorkflowRun.get_attempt and Repository.get_workflow_job functions ([#3401](https://github.com/pygithub/pygithub/issues/3401) <https://github.com/PyGithub/PyGithub/pull/3401>) (fdf9ed869 <https://github.com/PyGithub/PyGithub/commit/fdf9ed869>)
  • Add support for head_repo when creating pull request ([#3479](https://github.com/pygithub/pygithub/issues/3479) <https://github.com/PyGithub/PyGithub/pull/3479>) (8ddfd6b11 <https://github.com/PyGithub/PyGithub/commit/8ddfd6b11>)
  • Add max_rate_limit_wait to GithubRetry to cap rate limit backoff ([#3540](https://github.com/pygithub/pygithub/issues/3540) <https://github.com/PyGithub/PyGithub/pull/3540>) (8b50a098f <https://github.com/PyGithub/PyGithub/commit/8b50a098f>)
  • Add return_run_details parameter to Workflow.create_dispatch ([#3471](https://github.com/pygithub/pygithub/issues/3471) <https://github.com/PyGithub/PyGithub/pull/3471>) (162ce9d0e <https://github.com/PyGithub/PyGithub/commit/162ce9d0e>)
  • Update SecurityAndAnalysis ([#3503](https://github.com/pygithub/pygithub/issues/3503) <https://github.com/PyGithub/PyGithub/pull/3503>) (9674c5799 <https://github.com/PyGithub/PyGithub/commit/9674c5799>)

Bug Fixes ^^^^^^^^^

  • Fix duplicated URL in OrganizationVariable.edit() and OrganizationSecret.edit() ([#3472](https://github.com/pygithub/pygithub/issues/3472) <https://github.com/PyGithub/PyGithub/pull/3472>) (a2e76eb8e <https://github.com/PyGithub/PyGithub/commit/a2e76eb8e>)
  • Fix GithubException.__str__ decoding bytes data ([#3494](https://github.com/pygithub/pygithub/issues/3494) <https://github.com/PyGithub/PyGithub/pull/3494>) (7a3b22ed6 <https://github.com/PyGithub/PyGithub/commit/7a3b22ed6>)
  • Fixing OrganizationVariable.value by properly using base class ([#3507](https://github.com/pygithub/pygithub/issues/3507) <https://github.com/PyGithub/PyGithub/pull/3507>) (39a7464ff <https://github.com/PyGithub/PyGithub/commit/39a7464ff>)
  • Parse only the query string for PaginatedList.totalCount ([#3518](https://github.com/pygithub/pygithub/issues/3518) <https://github.com/PyGithub/PyGithub/pull/3518>) (645d2a2e8 <https://github.com/PyGithub/PyGithub/commit/645d2a2e8>)
  • Encode boolean query parameters as lowercase ([#3516](https://github.com/pygithub/pygithub/issues/3516) <https://github.com/PyGithub/PyGithub/pull/3516>) (f4e29299e <https://github.com/PyGithub/PyGithub/commit/f4e29299e>)
  • Fix doubled slash in request path for base_url with trailing slash ([#3537](https://github.com/pygithub/pygithub/issues/3537) <https://github.com/PyGithub/PyGithub/pull/3537>) (c15572f23 <https://github.com/PyGithub/PyGithub/commit/c15572f23>)
  • Fix WorkflowRun schema suggestion ([#3559](https://github.com/pygithub/pygithub/issues/3559) <https://github.com/PyGithub/PyGithub/pull/3559>) (5f707d64b <https://github.com/PyGithub/PyGithub/commit/5f707d64b>)
  • Fix OAuth2 authorization state / code_verifier parameters ([#3440](https://github.com/pygithub/pygithub/issues/3440) <https://github.com/PyGithub/PyGithub/pull/3440>) (4785224bc <https://github.com/PyGithub/PyGithub/commit/4785224bc>)
  • Allow creating custom property with values_editable_by param ([#3548](https://github.com/pygithub/pygithub/issues/3548) <https://github.com/PyGithub/PyGithub/pull/3548>) (134f38a63 <https://github.com/PyGithub/PyGithub/commit/134f38a63>)
  • Fix OrganizationSecret.edit() to seal the value and use PUT ([#3529](https://github.com/pygithub/pygithub/issues/3529) <https://github.com/PyGithub/PyGithub/pull/3529>) (4f8674b72 <https://github.com/PyGithub/PyGithub/commit/4f8674b72>)
  • Fix lazy retrieval of latest tag name ([#3487](https://github.com/pygithub/pygithub/issues/3487) <https://github.com/PyGithub/PyGithub/pull/3487>) (33071b35d <https://github.com/PyGithub/PyGithub/commit/33071b35d>)
  • Fix typing and typos ([#3485](https://github.com/pygithub/pygithub/issues/3485) <https://github.com/PyGithub/PyGithub/pull/3485>) (fd7abf6a7 <https://github.com/PyGithub/PyGithub/commit/fd7abf6a7>)

Maintenance ^^^^^^^^^^^

  • Add support for Python 3.15 and drop EOL 3.9 ([#3551](https://github.com/pygithub/pygithub/issues/3551) <https://github.com/PyGithub/PyGithub/pull/3551>) (5e2de3144 <https://github.com/PyGithub/PyGithub/commit/5e2de3144>)
  • Move self-link awareness into CompletableGithubObject ([#3432](https://github.com/pygithub/pygithub/issues/3432) <https://github.com/PyGithub/PyGithub/pull/3432>) (92ec3fab0 <https://github.com/PyGithub/PyGithub/commit/92ec3fab0>)
  • Add documentation for agents, add Claude skills ([#3509](https://github.com/pygithub/pygithub/issues/3509) <https://github.com/PyGithub/PyGithub/pull/3509>) (28f140d10 <https://github.com/PyGithub/PyGithub/commit/28f140d10>)
  • Add sphinx-copybutton for code blocks ([#3493](https://github.com/pygithub/pygithub/issues/3493) <https://github.com/PyGithub/PyGithub/pull/3493>_)
  • Add support to OpenAPI script for applying schema to methods ([#3374](https://github.com/pygithub/pygithub/issues/3374) <https://github.com/PyGithub/PyGithub/pull/3374>) (b7a6d2324 <https://github.com/PyGithub/PyGithub/commit/b7a6d2324>)
  • Improve OpenAPI apply properties and methods ([#3495](https://github.com/pygithub/pygithub/issues/3495) <https://github.com/PyGithub/PyGithub/pull/3495>_)
  • Fix OpenAPI method verb detection ([#3496](https://github.com/pygithub/pygithub/issues/3496) <https://github.com/PyGithub/PyGithub/pull/3496>_)
  • Add OpenAPI script tests ([#3489](https://github.com/pygithub/pygithub/issues/3489) <https://github.com/PyGithub/PyGithub/pull/3489>) (09242d9b0 <https://github.com/PyGithub/PyGithub/commit/09242d9b0>)
  • Fix OpenAPI apply method ([#3498](https://github.com/pygithub/pygithub/issues/3498) <https://github.com/PyGithub/PyGithub/pull/3498>) (8f8697235 <https://github.com/PyGithub/PyGithub/commit/8f8697235>)

... (truncated)

Commits
  • 5cdf6ab Release 2.10.0 (#3560)
  • 33071b3 Fix lazy retrieval of latest tag name (#3487)
  • 4f8674b Fix OrganizationSecret.edit() to seal the value and use PUT (#3529)
  • c63d09e docs: add example for uploading multiple files in a single commit (#3545)
  • 4785224 Fix OAuth2 authorization state / code_verifier parameters (#3440)
  • 134f38a Allow creating custom property with values_editable_by param (#3548)
  • 5f707d6 Fix WorkflowRun schema suggestion (#3559)
  • 8280929 docs: add exception handling example (#3543)
  • c15572f Fix doubled slash in request path for base_url with trailing slash (#3537)
  • 162ce9d Add return_run_details parameter to Workflow.create_dispatch (#3471)
  • Additional commits viewable in compare view

Updates pyjwt from 2.15.0 to 2.15.1

Release notes

Sourced from pyjwt's releases.

2.15.1

See the 2.15.1 changelog for complete release details.

Changelog

Sourced from pyjwt's changelog.

v2.15.1 <https://github.com/jpadilla/pyjwt/compare/2.15.0...2.15.1>__

Fixed


- Accept trailing Base64URL ``=`` padding when decoding JWS segments, so
  tokens issued by AWS ALB and similar systems verify instead of raising
  ``DecodeError: Invalid crypto padding``. Non-alphabet junk such as
  ``!!!!`` remains rejected (`[#1209](https://github.com/jpadilla/pyjwt/issues/1209) <https://github.com/jpadilla/pyjwt/issues/1209>`__).
Commits

Updates psycopg2 from 2.9.12 to 2.9.13

Changelog

Sourced from psycopg2's changelog.

Current release

What's new in psycopg 2.9.13 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Add support for Python 3.15 (:ticket:[#1848](https://github.com/psycopg/psycopg2/issues/1848)).
  • Fix parsing of malformed bytea input.
  • Fix parsing of malformed int64 input in arrays (:ticket:[#1847](https://github.com/psycopg/psycopg2/issues/1847)).
  • Add a pyproject.toml file to declare a PEP 517 build backend (:ticket:[#1788](https://github.com/psycopg/psycopg2/issues/1788)).
  • Drop support for Python 3.9.

What's new in psycopg 2.9.12 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Fix infinite loop with malformed interval (:ticket:1835).

What's new in psycopg 2.9.11 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Add support for Python 3.14.
  • Avoid a segfault passing more arguments than placeholders if Python is built with assertions enabled (:ticket:[#1791](https://github.com/psycopg/psycopg2/issues/1791)).
  • Add riscv64 platform binary packages (:ticket:[#1813](https://github.com/psycopg/psycopg2/issues/1813)).
  • ~psycopg2.errorcodes map and ~psycopg2.errors classes updated to PostgreSQL 18.
  • Drop support for Python 3.8.

What's new in psycopg 2.9.10 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Add support for Python 3.13.
  • Receive notifications on commit (:ticket:[#1728](https://github.com/psycopg/psycopg2/issues/1728)).
  • ~psycopg2.errorcodes map and ~psycopg2.errors classes updated to PostgreSQL 17.
  • Drop support for Python 3.7.

What's new in psycopg 2.9.9 ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Add support for Python 3.12.
  • Drop support for Python 3.6.

What's new in psycopg 2.9.8

... (truncated)

Commits
  • f650e7a chore: bump to release 2.9.13
  • 368c8a1 chore!: drop support for Python 3.9
  • 9b39e65 chore: drop scaleway build support
  • 2ca7041 fix: fix handling of PostgreSQL 18 exceptions
  • 5385c02 Build CPython 3.15 wheels
  • 1d32e1f ci: only attempt triggering documentation refresh when pushing on main repo
  • 433e7b7 chore: add pyproject.toml file to declare a PEP 517 build backend
  • 8fb80bc fix: fix parsing of malformed int64 input in arrays
  • f98014a fix: fix parsing of malformed bytea input
  • 822b79c chore: bump dependencies in binary package
  • Additional commits viewable in compare view

Updates sqlalchemy from 2.0.51 to 2.1.6

Release notes

Sourced from sqlalchemy's releases.

2.1.6

Released: October 21, 2026

orm

  • [orm] [bug] Fixed issue where a Session flush that replaced an expired object in the identity map with a newly flushed object of the same primary key would emit a SELECT to refresh the expired object, solely in order to determine whether to emit an "Identity map already had an identity" warning. This could occur when a row loaded within a transaction is rolled back and its primary key value is subsequently reused, and could lead to an AttributeError if the expired object were garbage collected during that load. The check now emits no SQL, and an expired object that is replaced in this way no longer causes the warning to be emitted.

    This change is also backported to: 2.0.56

    References: #13711

  • [orm] [bug] [regression] Fixed regression caused by #13070 where using more than one orm.with_loader_criteria() option for the same entity, where the criteria made use of correlated subqueries referring to that entity, would fail with a RecursionError when compiling.

    References: #13701

  • [orm] [bug] [regression] Fixed regression caused by the new implementation of .params() for statements introduced in #7066, where parameter values passed to the .params() method of an ORM statement created using Select.from_statement() would not be applied when the statement was compiled without the compiled statement cache, such as when the cache was disabled or when the statement was stringified directly, leading to an error that a value is required for the bound parameter.

    References: #13709

orm extensions

  • [bug] [orm extensions] Fixed an issue in the instrumentation_toplevel extension where unrelated classes inheriting from typing.Generic could incorrectly raise a TypeError when using different instrumentation implementations. Pull request courtesy TomasCaruso10.

    This change is also backported to: 2.0.56

    References: #13680

... (truncated)

Commits

Updates pydantic from 2.13.4 to 2.14.2

Release notes

Sourced from pydantic's releases.

v2.14.2 2026-10-29

v2.14.2 (2026-10-29)

This release addresses 2 security issues, GHSA-qpmf-fgh3-ff25 and GHSA-3r8g-cqwr-jr29.

Packaging

Performance

Fixes

  • Make JSON validation by iteration consistent with Python approach by @​davidhewitt in #13275.

    JSON validation now handles field lookup and extra data the same way as Python validation. In particular, keys that only match an unused alias or field name are now treated as extra data, instead of being silently dropped:

    from pydantic import BaseModel, ConfigDict
    from pydantic.alias_generators import to_camel
    class Page(BaseModel):
    model_config = ConfigDict(extra='forbid', alias_generator=to_camel)
    page_size: int = 10
    
    Page.model_validate_json('{"page_size": 50}')
    Before: Page(page_size=10)
    After: ValidationError (extra_forbidden)

    See the pull request for the full list of behavior changes. This change addresses GHSA-qpmf-fgh3-ff25.

  • Ignore extra data matching a field name in TypedDict and dataclasses with extra=allow by @​Viicos in #14090. Addresses GHSA-3r8g-cqwr-jr29.

  • Fix unpickling of generic classes defined in separate module by @​Viicos in #13994

  • Support explicit by_alias overriding validate_by_alias in validation JSON schemas by @​Viicos in #13997

  • Fix mypy plugin crash on deferred empty model by @​ilevkivskyi in #14027

  • Fix infinite recursion when validating an invalid default with PydanticUseDefault by @​Viicos in #14028

  • Implement recursion guard for validate_strings() by @​Viicos in #14029

... (truncated)

Changelog

Sourced from pydantic's changelog.

v2.14.2 (2026-10-29)

GitHub release

What's Changed

Packaging

Performance

Fixes

  • Make JSON validation by iteration consistent with Python approach by @​davidhewitt in #13275.

    JSON validation now handles field lookup and extra data the same way as Python validation. In particular, keys that only match an unused alias or field name are now treated as extra data, instead of being silently dropped:

    from pydantic import BaseModel, ConfigDict
    from pydantic.alias_generators import to_camel
    class Page(BaseModel):
    model_config = ConfigDict(extra='forbid', alias_generator=to_camel)
    page_size: int = 10
    
    Page.model_validate_json('{"page_size": 50}')
    Before: Page(page_size=10)
    After: ValidationError (extra_forbidden)

    See the pull request for the full list of behavior changes.

  • Fix unpickling of generic classes defined in separate module by @​Viicos in #13994

  • Support explicit by_alias overriding validate_by_alias in validation JSON schemas by @​Viicos in #13997

  • Fix mypy plugin crash on deferred empty model by @​ilevkivskyi in #14027

  • Fix infinite recursion when validating an invalid default with PydanticUseDefault by @​Viicos in #14028

  • Implement recursion guard for validate_strings() by @​Viicos in #14029

  • Support named tuples in Sequence serialization by @​Viicos in #14033

... (truncated)

Commits
  • aa540ac Update changelog for v2.14.2
  • 6cde12f Update changelog for v2.14.2
  • 2db7c25 Fix deep copy of self-referential models
  • d783154 Update changelog for v2.14.2
  • df49b6c Avoid heap allocation for small JSON model field buffers
  • cd93e69 Skip decorator field checks when no field decorators exist
  • 2771e57 Make JSON validation by iteration consistent with Python approach
  • 8102e3f Avoid Python tuple allocation during model fields validation
  • dd139b5 Bump pydantic.v1 namespace to v1.10.27
  • 66155f9 Prepare release v2.14.2
  • Additional commits viewable in compare view

Updates uvicorn from 0.51.0 to 0.54.0

Release notes

Sourced from uvicorn's releases.

Version 0.54.0

📨 Send metadata after the response body

uvicorn 0.54.0 adds response trailers and 103 Early Hints to its experimental HTTP/2 implementation through zttp.

uv add uvicorn==0.54.0 "zttp>=0.0.34"
  • Send HTTP/2 response trailers (#3146). The ASGI http.response.trailers extension lets applications send metadata, such as checksums, after the response body. Clients must send TE: trailers to receive them. Multiple trailer messages are combined before completing the response.
  • HTTP/2 remains experimental and opt-in. Enable it with --http zttp --http2. Upgrade-based h2c and WebSockets over HTTP/2 remain unsupported.

💡 Hint at resources before the final response

  • Send 103 Early Hints over HTTP/2 (#3137). Applications can use the ASGI http.response.early_hint extension to send resource hints before the final response. Each supplied link becomes a separate Link header.

Full changelog: 0.53.0...0.54.0

Version 0.53.0

🌐 Opt-in HTTP/2 support

uvicorn 0.53.0 adds experimental HTTP/2 through zttp, alongside a new zuvloop integration and connection-handling improvements.

uv add uvicorn==0.53.0
  • Serve HTTP/1.1 and HTTP/2 with zttp (#2982, #3101). Install zttp, then enable HTTP/2 with --http zttp --http2. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.
  • HTTP/2 remains experimental. Upgrade-based h2c and WebSockets over HTTP/2 are not supported.

⚙️ More event loop choice

  • Run Uvicorn with zuvloop (#3104). Install zuvloop separately and select it explicitly with --loop zuvloop on CPython 3.14 or newer.

🛡️ More reliable connections and proxies

  • Honor Connection: close token lists (#3103). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.
  • Trust IPv6 loopback proxies by default (#3119). The default FORWARDED_ALLOW_IPS value now includes ::1.
  • Keep upgraded WebSockets alive (#3107). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.

Full changelog: 0.52.4...0.53.0

Version 0.52.4

Fixed

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

Full Changelog: Kludex/uvicorn@0.52.3...0.52.4

Version 0.52.3

... (truncated)

Changelog

Sourced from uvicorn's changelog.

0.54.0 (September 24, 2026)

HTTP/2 support remains experimental. Install zttp>=0.0.34 and enable it with --http zttp --http2.

Added

  • Add HTTP/2 response trailers through the ASGI http.response.trailers extension. Clients must send TE: trailers to receive them (#3146)
  • Add HTTP/2 103 Early Hints through the ASGI http.response.early_hint extension (#3137)

0.53.0 (September 14, 2026)

This release adds experimental HTTP/2 support through zttp. Enable it with --http zttp --http2. Upgrade-based h2c and WebSockets over HTTP/2 are not supported.

Added

  • Add experimental HTTP/2 support through zttp (#2982, #3101)
  • Add support for zuvloop (#3104)

Fixed

  • Handle comma-separated, case-insensitive Connection: close tokens across HTTP implementations (#3103)
  • Trust IPv6 loopback in the default FORWARDED_ALLOW_IPS value (#3119)
  • Cancel the HTTP keep-alive timer when upgrading to WebSocket (#3107)

0.52.4 (August 18, 2026)

Fixed

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

0.52.3 (August 13, 2026)

Changed

  • Update zttp to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (#3067)

0.52.2 (August 13, 2026)

Fixed

  • Update zttp to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (#3063)

0.52.1 (August 1, 2026)

Fixed

  • Complete the closing handshake on server-initiated WebSocket closes in the websockets-sansio and wsproto implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (#3053)
  • Add missing write flow control to the websockets-sansio implementation, preventing data truncation on server-initiated closes with large in-flight payloads (#3048)
  • Handle connection loss while a WebSocket write is waiting on backpressure (#3050)

... (truncated)

Commits

Updates redis from 8.0.1 to 8.1.0

Release notes

Sourced from redis's releases.

8.1.0

Changes

✨ Highlights

Async maintenance notifications

redis-py now supports server-pushed maintenance notifications in the asyncio stack for both standalone and cluster clients, bringing the async client to parity with the sync implementation. When a Redis deployment signals maintenance events (such as node migration or failover windows), the async client reacts through the maintenance-notifications handler (redis/maint_notifications.py and its async integration under redis/asyncio/), allowing applications to adapt connection handling during maintenance without downtime. (#4177)

Expanded command coverage

This release adds a batch of new command surfaces across core data types and modules:

  • Lists — LMOVEM / BLMOVEM for moving multiple elements between lists (#4174).
  • Sets — SDIFFCARD and SUNIONCARD cardinality commands (#4171).
  • Streams — MAXCOUNT / MAXSIZE options for XREAD and XREADGROUP (#4173).
  • Time Series — TS.READ (#4170), TS.QUERYLABELS (#4197), TS.NRANGE / TS.NREVRANGE (#4163), and an exclude_empty (EXCLUDEEMPTY) option for TS.MRANGE / TS.MREVRANGE (#4188).
  • Search — FT.ALIASLIST (#4198) and a COLLECT reducer for aggregations (#4179).
  • Sentinel — replica sentinel aliases (#4127).

🚀 New Features

  • Add replica sentinel aliases (#4127)
  • Add TS.NRANGE and TS.NREVRANGE support to the timeseries command surface (#4163)
  • feat: add TS.READ command support to the timeseries module (#4170)
  • feat: add SDIFFCARD and SUNIONCARD command support (#4171)
  • feat: add MAXCOUNT/MAXSIZE support to XREAD and XREADGROUP (#4173)
  • feat: add LMOVEM and BLMOVEM commands for moving multiple list elements (#4174)
  • feat: add async maintenance-notifications support for standalone and cluster clients (#4177)
  • feat: add COLLECT reducer support to search aggregations (#4179)
  • feat: add exclude_empty (EXCLUDEEMPTY) option to TS.MRANGE and TS.MREVRANGE (#4188)
  • feat: add TS.QUERYLABELS support to the timeseries command surface (#4197)
  • feat: add FT.ALIASLIST support (#4198)

⚠️ Experimental

  • feat: add client-side HIMPORT fieldset support for standalone and cluster clients (#4205)

The feature considered unstable and public API might be changed in the future minor version

🐛 Bug Fixes

  • fix: detect closed pooled connection without consuming pending push data (RESP3 + hiredis) (#4156)
  • Fix Sentinel pool capacity loss after failover (#4193)

... (truncated)

Commits

Bumps the python-packages group with 22 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [fastapi](https://github.com/fastapi/fastapi) | `0.139.0` | `0.162.0` |
| [pygithub](https://github.com/pygithub/pygithub) | `2.9.1` | `2.10.0` |
| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.15.0` | `2.15.1` |
| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.12` | `2.9.13` |
| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.51` | `2.1.6` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.14.2` |
| [uvicorn](https://github.com/Kludex/uvicorn) | `0.51.0` | `0.54.0` |
| [redis](https://github.com/redis/redis-py) | `8.0.1` | `8.1.0` |
| [pika](https://github.com/pika/pika) | `1.4.1` | `1.4.4` |
| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.43.0` | `1.45.2` |
| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.43.0` | `1.45.2` |
| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.64b0` | `0.66b2` |
| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.64b0` | `0.66b2` |
| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.64b0` | `0.66b2` |
| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.43.0` | `1.45.2` |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.21` | `0.17.3` |
| [mypy](https://github.com/python/mypy) | `2.2.0` | `2.4.1` |
| [types-requests](https://github.com/python/typeshed) | `2.33.0.20260712` | `2.33.0.20261030` |
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.4.0` | `1.4.1` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.1.1` | `9.2.0` |
| [faker](https://github.com/joke2k/faker) | `40.28.1` | `40.44.0` |
| [pytest-env](https://github.com/pytest-dev/pytest-env) | `1.6.0` | `1.8.3` |



Updates `fastapi` from 0.139.0 to 0.162.0
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](fastapi/fastapi@0.139.0...0.162.0)

Updates `pygithub` from 2.9.1 to 2.10.0
- [Release notes](https://github.com/pygithub/pygithub/releases)
- [Changelog](https://github.com/PyGithub/PyGithub/blob/main/doc/changes.rst)
- [Commits](PyGithub/PyGithub@v2.9.1...v2.10.0)

Updates `pyjwt` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](jpadilla/pyjwt@2.15.0...2.15.1)

Updates `psycopg2` from 2.9.12 to 2.9.13
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS)
- [Commits](psycopg/psycopg2@2.9.12...2.9.13)

Updates `sqlalchemy` from 2.0.51 to 2.1.6
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Updates `pydantic` from 2.13.4 to 2.14.2
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v2.14.2/HISTORY.md)
- [Commits](pydantic/pydantic@v2.13.4...v2.14.2)

Updates `uvicorn` from 0.51.0 to 0.54.0
- [Release notes](https://github.com/Kludex/uvicorn/releases)
- [Changelog](https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md)
- [Commits](Kludex/uvicorn@0.51.0...0.54.0)

Updates `redis` from 8.0.1 to 8.1.0
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](redis/redis-py@v8.0.1...v8.1.0)

Updates `pika` from 1.4.1 to 1.4.4
- [Release notes](https://github.com/pika/pika/releases)
- [Changelog](https://github.com/pika/pika/blob/main/HISTORY.md)
- [Commits](pika/pika@1.4.1...1.4.4)

Updates `opentelemetry-api` from 1.43.0 to 1.45.2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-python@v1.43.0...v1.45.2)

Updates `opentelemetry-sdk` from 1.43.0 to 1.45.2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-python@v1.43.0...v1.45.2)

Updates `opentelemetry-instrumentation` from 0.64b0 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `opentelemetry-instrumentation-fastapi` from 0.64b0 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `opentelemetry-instrumentation-psycopg2` from 0.64b0 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `opentelemetry-exporter-otlp` from 1.43.0 to 1.45.2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-python@v1.43.0...v1.45.2)

Updates `ruff` from 0.15.21 to 0.17.3
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.21...0.17.3)

Updates `mypy` from 2.2.0 to 2.4.1
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](python/mypy@v2.2.0...v2.4.1)

Updates `types-requests` from 2.33.0.20260712 to 2.33.0.20261030
- [Commits](https://github.com/python/typeshed/commits)

Updates `pytest-asyncio` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](pytest-dev/pytest-asyncio@v1.4.0...v1.4.1)

Updates `pytest` from 9.1.1 to 9.2.0
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@9.1.1...9.2.0)

Updates `faker` from 40.28.1 to 40.44.0
- [Release notes](https://github.com/joke2k/faker/releases)
- [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md)
- [Commits](joke2k/faker@v40.28.1...v40.44.0)

Updates `pytest-env` from 1.6.0 to 1.8.3
- [Release notes](https://github.com/pytest-dev/pytest-env/releases)
- [Changelog](https://github.com/pytest-dev/pytest-env/blob/main/CHANGELOG.md)
- [Commits](pytest-dev/pytest-env@1.6.0...1.8.3)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-version: 0.162.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pygithub
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pyjwt
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: psycopg2
  dependency-version: 2.9.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: sqlalchemy
  dependency-version: 2.1.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pydantic
  dependency-version: 2.14.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: uvicorn
  dependency-version: 0.54.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: redis
  dependency-version: 8.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pika
  dependency-version: 1.4.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: opentelemetry-api
  dependency-version: 1.45.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: opentelemetry-sdk
  dependency-version: 1.45.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: opentelemetry-instrumentation
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: python-packages
- dependency-name: opentelemetry-instrumentation-fastapi
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: python-packages
- dependency-name: opentelemetry-instrumentation-psycopg2
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: python-packages
- dependency-name: opentelemetry-exporter-otlp
  dependency-version: 1.45.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: ruff
  dependency-version: 0.17.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: mypy
  dependency-version: 2.4.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: types-requests
  dependency-version: 2.33.0.20261030
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: pytest-asyncio
  dependency-version: 1.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: pytest
  dependency-version: 9.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: faker
  dependency-version: 40.44.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pytest-env
  dependency-version: 1.8.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Nov 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants