chore(deps): bump the python-minor-and-patch group with 21 updates

DE
5d ago
+553-395

Bumps the python-minor-and-patch group with 21 updates:

PackageFromTo
aiohttp3.14.33.14.5
azure-identity1.25.01.26.0
boto31.43.781.43.114
gitpython3.1.623.2.1
starlette1.6.01.8.0
pyjwt2.13.02.15.1
python-gitlab8.3.08.6.0
starlette-context0.3.60.5.1
uvicorn0.52.40.54.0
a2a-sdk[http-server]1.0.31.2.2
pydantic2.13.32.14.1
pydantic-settings2.14.22.16.0
prometheus-client0.21.10.26.0
langchain1.3.111.4.6
langchain-core1.4.81.6.12
langchain-openai1.3.31.7.2
pandas3.0.33.0.6
lancedb0.38.00.40.0
qdrant-client1.15.11.19.1
pre-commit4.6.04.7.0
ruff0.16.80.17.1

Updates aiohttp from 3.14.3 to 3.14.5
Updates azure-identity from 1.25.0 to 1.26.0

Release notes

Sourced from azure-identity's releases.

azure-identity_1.26.0

1.26.0 (2026-09-30)

Features Added

  • ManagedIdentityCredential now supports user-assigned managed identities on Azure Arc-enabled servers. An identity can be selected by client ID, object ID, or resource ID. Token responses that do not confirm the requested identity are rejected. (#48967)

Bugs Fixed

  • Fixed synchronous Service Fabric managed identity authentication with MSAL 1.39.0 and later. Service Fabric now uses the session from an Azure Core RequestsTransport. (#48967)
  • Fixed an issue where AuthorizationCodeCredential and the asynchronous OnBehalfOfCredential could return a cached token for another account when multiple credentials shared a token cache. (#49001)

Other Changes

  • Added RequestIdPolicy to the default pipeline policies to ensure a unique x-ms-client-request-id header is sent with each request. (#46070)
  • CertificateCredential now passes the PEM private key to MSAL as a str rather than bytes, matching MSAL's documented client_credential contract. (#46801)
  • Bumped the minimum dependency on msal to >=1.39.0.
Commits
  • 30d8bb9 [identity] prepare azure-identity 1.26.0 release (#49290)
  • c7148b7 [identity] Enable user-assigned managed identity for AzureArcCredential (#48967)
  • c5b1f4f [Identity] Fix identity cache issue (#49001)
  • 9d085c1 [AutoPR azure-mgmt-compute-bulkaction]-generated-from-SDK Generation - Python...
  • efc412d [TA] fix release error (#49261)
  • 3d9b8b3 Prepare Responses 2.3.0b2 release (#49281)
  • 8e49d15 [AutoPR azure-mgmt-resiliencemanagement]-generated-from-SDK Generation - Pyth...
  • ef68c78 Preserve canonical agent reference in response snapshots (#49256)
  • 3754db9 Configurations: 'specification/applink/AppLink.Management/tspconfig.yaml', a...
  • 0929352 [Mgmt] Make review drafts and incomplete outcomes reliable (#49275)
  • Additional commits viewable in compare view

Updates boto3 from 1.43.78 to 1.43.114

Commits
  • 432fa17 Merge branch 'release-1.43.114'
  • bf4aed7 Bumping version to 1.43.114
  • fa3e3f2 Add changelog entries from botocore
  • 69ed308 Merge branch 'release-1.43.113'
  • 3abaa49 Merge branch 'release-1.43.113' into develop
  • 741f8d9 Bumping version to 1.43.113
  • ad1c6b5 Add changelog entries from botocore
  • 9ca5e36 Merge branch 'release-1.43.112'
  • f5581ba Merge branch 'release-1.43.112' into develop
  • 6f065c3 Bumping version to 1.43.112
  • Additional commits viewable in compare view

Updates gitpython from 3.1.62 to 3.2.1

Release notes

Sourced from gitpython's releases.

3.2.1

What's Changed

New Contributors

Full Changelog: https://github.com/gitpython-developers/GitPython/compare/3.2.0...3.2.1

3.2.0 - Security

What's Changed

... (truncated)

Changelog

Sourced from gitpython's changelog.

3.2.1

Security fixes for

If you can, also try and provide feedback on the upcoming v4 branch gitpython-developers/GitPython#2274 - patches welcome.

See the following for all changes. https://github.com/gitpython-developers/GitPython/releases/tag/3.2.1

3.2.0

Drops support for Python 3.7 (5 years after its EOL).

Security fixes for

If you can, also try and provide feedback on the upcoming v4 branch gitpython-developers/GitPython#2274 - patches welcome.

See the following for all changes. https://github.com/gitpython-developers/GitPython/releases/tag/3.2.0

Commits
  • c179357 prepare changelog prior to release
  • 97eadb8 fix(submodule): validate destinations before mutation
  • 6a7180a prepare for next release, v3.2
  • 0b64501 refactor(db): deprecate the pure-Python GitDB backend
  • 9349ff5 fix(repo): preserve literal separate Git directory paths
  • 8290c98 fix: bound actor and date parsing
  • 9ad28cc fix: complete safety checks in Git command wrappers
  • ce2093b bump minor version to indicate drop of python 3.7 support
  • dafafff Merge pull request #2247 from gitpython-developers/pos-arg-sanitization
  • 790bb31 fix(remote): reject option-shaped pull operands
  • Additional commits viewable in compare view

Updates starlette from 1.6.0 to 1.8.0

Release notes

Sourced from starlette's releases.

Version 1.8.0

This release adds HTTP 103 Early Hints, preserves response trailers through GZipMiddleware, and stops FileResponse transfers when clients disconnect. Starlette now requires Python 3.11.

Added

  • Add Request.send_early_hints() for HTTP 103 Early Hints through the ASGI http.response.early_hint extension #3435.

Changed

  • Require Python 3.11 or later, dropping support for Python 3.10 #3592.
  • Exclude native gRPC media types (application/grpc and application/grpc+...) from GZipMiddleware compression by default #3565.
  • Send http.response.start immediately in GZipMiddleware for responses with an existing Content-Encoding, status 206, or an excluded content type, instead of waiting for the first body chunk #3631.
  • Resolve the multipart charset once per request instead of once per field #3618.

Fixed

  • Preserve response trailers through GZipMiddleware #3565.
  • Stop FileResponse transfers when the client disconnects #3523.
  • Stop multipart range responses when the file ends before a range is complete, instead of looping forever #3583.
  • Ignore Range when If-Range contains a weak ETag #3567.
  • Include Allow: GET, HEAD in StaticFiles 405 responses #3640.
  • Close Request.stream() generators deterministically, avoiding "Exception ignored" errors with stacked BaseHTTPMiddleware #3628.
  • Add Vary: Cookie when Session.pop() removes an existing key #3186.
  • Emit Max-Age=0 on the session cookie when SessionMiddleware uses max_age=0 #3651.
  • Bracket IPv6 hostnames in URL.replace() #3617.

Full changelog: 1.7.0...1.8.0

Version 1.7.0

This release adds experimental OpenTelemetry tracing, HTTP QUERY support, and response trailers in TestClient. Starlette now requires AnyIO 4.

[!WARNING] OpenTelemetryMiddleware is experimental. Its API and emitted telemetry may change in minor releases without a deprecation period.

Added

  • Add experimental OpenTelemetryMiddleware for HTTP server spans, with URL exclusions and custom tracer providers #3438, #3463, and #3520.
  • Expose the matched route through scope["route"] #3438.
  • Support the QUERY HTTP method in HTTPEndpoint, CORS, and OpenAPI 3.2 schema generation #3489.
  • Capture HTTP response trailers in TestClient and expose them through response.extensions["http.response.trailers"] #3563.
  • Support partitioned cookies in SessionMiddleware #3510.
  • Add partitioned to Response.delete_cookie() on Python 3.14 and later #3376.
  • Support IPv6 hosts in TrustedHostMiddleware and TestClient #3471.
  • Support Python 3.15 #3508.

Changed

  • Require anyio>=4.0.0,<5, dropping support for AnyIO 3 #3512.
  • Raise WebSocketDisconnected, a RuntimeError subclass, for disconnected WebSocket operations #2767.
  • Accept Collection[str] in CORSMiddleware configuration annotations, including sets and frozensets #3518.

... (truncated)

Changelog

Sourced from starlette's changelog.

1.8.0 (October 13, 2026)

This release drops Python 3.10 support and adds HTTP 103 Early Hints.

Added

  • Add Request.send_early_hints() for HTTP 103 Early Hints through the ASGI http.response.early_hint extension #3435.

Changed

  • Require Python 3.11 or later, dropping support for Python 3.10 #3592.
  • Exclude native gRPC media types (application/grpc and application/grpc+...) from GZipMiddleware compression by default #3565.
  • Send http.response.start immediately in GZipMiddleware for responses with an existing Content-Encoding, status 206, or an excluded content type, instead of waiting for the first body chunk #3631.
  • Resolve the multipart charset once per request instead of once per field #3618.

Fixed

  • Preserve response trailers through GZipMiddleware #3565.
  • Stop FileResponse transfers when the client disconnects #3523.
  • Stop multipart range responses when the file ends before a range is complete, instead of looping forever #3583.
  • Ignore Range when If-Range contains a weak ETag #3567.
  • Include Allow: GET, HEAD in StaticFiles 405 responses #3640.
  • Close Request.stream() generators deterministically, avoiding "Exception ignored" errors with stacked BaseHTTPMiddleware #3628.
  • Add Vary: Cookie when Session.pop() removes an existing key #3186.
  • Emit Max-Age=0 on the session cookie when SessionMiddleware uses max_age=0 #3651.
  • Bracket IPv6 hostnames in URL.replace() #3617.

1.7.0 (September 23, 2026)

This release adds experimental OpenTelemetry tracing and requires AnyIO 4.

!!! warning "OpenTelemetryMiddleware is experimental" Its API and emitted telemetry may change in minor releases without a deprecation period #3574.

Added

  • Add experimental OpenTelemetryMiddleware for HTTP server spans, with URL exclusions and custom tracer providers #3438, #3463, and #3520.
  • Expose the matched route through scope["route"] #3438.
  • Support the QUERY HTTP method in HTTPEndpoint, CORS, and OpenAPI 3.2 schema generation #3489.
  • Capture HTTP response trailers in TestClient and expose them through response.extensions["http.response.trailers"] #3563.
  • Support partitioned cookies in SessionMiddleware #3510.
  • Add partitioned to Response.delete_cookie() on Python 3.14 and later #3376.
  • Support IPv6 hosts in TrustedHostMiddleware and TestClient #3471.
  • Support Python 3.15 #3508.

Changed

  • Require anyio>=4.0.0,<5, dropping support for AnyIO 3 #3512.
  • Raise WebSocketDisconnected, a RuntimeError subclass, for disconnected WebSocket operations #2767.

... (truncated)

Commits
  • 7b2948f Version 1.8.0 (#3660)
  • 5b544ce Send response start immediately when GZipMiddleware cannot compress (#3631)
  • 96d5023 Emit Max-Age=0 on session cookie when max_age=0 (#3651)
  • 0a15da3 Include allowed methods in StaticFiles 405 responses (#3640)
  • ff5b4df Close Request.stream() generators with aclosing (#3628)
  • 7cb2f09 Mark sessions as accessed when popping existing keys (#3186)
  • c67ca4e Add HTTP 103 Early Hints support (#3435)
  • 04741d0 Update broken external documentation links (#3621)
  • 470f986 Correct the documented WebSocket and Request constructor signatures (#3580)
  • b2e8750 Bracket IPv6 hostnames in URL.replace() (#3617)
  • Additional commits viewable in compare view

Updates pyjwt from 2.13.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.

2.15.0

See the 2.15.0 changelog for complete release details.

2.14.0

See the 2.14.0 changelog for the complete release details and related security advisories.

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>`__).

v2.15.0 &lt;https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0&gt;__

Security

  • Wrap recursion errors from deeply nested JWT payloads in DecodeError instead of exposing a raw RecursionError.

Added


- Support Python 3.15 by @kytta in `[#1202](https://github.com/jpadilla/pyjwt/issues/1202) <https://github.com/jpadilla/pyjwt/pull/1202>`__

Changed

  • JWKSetCache now stores the parsed PyJWKSet rather than the raw JWKS payload, so a cache hit no longer re-parses every key. JWKSetCache.put() accepts either form and raises PyJWKSetError for anything else. As a result, PyJWKClient.get_jwk_set() returns the same PyJWKSet instance for as long as it stays cached, rather than a freshly built one per call in [#1208](https://github.com/jpadilla/pyjwt/issues/1208) <https://github.com/jpadilla/pyjwt/pull/1208>__
  • PyJWKClient.fetch_data() now raises PyJWKClientError("The JWKS endpoint did not return a JSON object") when the endpoint response is not a JSON object, instead of returning it for get_jwk_set() to reject. Callers reaching the JWKS through get_jwk_set() see the same error as before in [#1208](https://github.com/jpadilla/pyjwt/issues/1208) <https://github.com/jpadilla/pyjwt/pull/1208>__

Fixed


- Return cached ``PyJWKSet`` values from ``PyJWKClient.get_jwk_set()`` instead
  of raising ``PyJWKClientError("The JWKS endpoint did not return a JSON
  object")``. ``JWKSetCache.put()`` documents ``PyJWKSet`` as the cached value,
  so callers pre-populating the cache to avoid a network round-trip could not
  read it back in `[#914](https://github.com/jpadilla/pyjwt/issues/914) <https://github.com/jpadilla/pyjwt/issues/914>`__ and
  `[#1208](https://github.com/jpadilla/pyjwt/issues/1208) <https://github.com/jpadilla/pyjwt/pull/1208>`__
</tr></table> 

... (truncated)

Commits
  • 7d5ef55 chore: prepare 2.15.1 release
  • 7bf3252 Accept canonical Base64URL padding in JWT segments (#1216)
  • 1d41a64 chore: prepare 2.15.0 release
  • 9bc0665 fix: make recursive payload tests deterministic
  • 5fde08a fix: normalize recursive JWT payload errors
  • 171062d utils: mention bytes in force_bytes type error (#1173)
  • c9d4d53 docs/conf: drop duplicate 'and' from read() docstring (#1174)
  • 2763752 Add support for Python 3.15 (#1202)
  • 4adcd02 Catch http.client.HTTPException in PyJWKClient.fetch_data (#1201)
  • 9e501d9 fix: correct docstring typo in _validate_jti (#1179)
  • Additional commits viewable in compare view

Updates python-gitlab from 8.3.0 to 8.6.0

Release notes

Sourced from python-gitlab's releases.

v8.6.0 (2026-09-28)

This release is published under the LGPL-3.0-or-later License.

Bug Fixes

  • COPYING: Use the combined LGPGL and GPL license text. (b6e65dd)

  • renovate: Add a 7-day cooldown for updates (6bb4216)

Features

  • hooks: Add all available project hook attributes (f57c33b)

Testing

  • Don't delete source branch by default for projects (aff7954)

Detailed Changes: v8.5.0...v8.6.0

v8.5.0 (2026-07-28)

This release is published under the LGPL-3.0-or-later License.

Bug Fixes

  • Typo (72134f5)

  • api: Allow ProjectMergeRequestDiscussionNote.resolved to be updated (b411e5a)

  • client: Retry fetching server version after an unknown result (046fbac)

Continuous Integration

  • Run the pre-commit rst checks in the CI (a9c5d17)

Documentation

  • Correct error with backticks (e57559e)

  • discussions: Add example of resolving a single project merge request discussion note (2ef6452)

Features

  • api: Add ListMixin to remaining *DiscussionNoteManagers (0e2347c)

  • client: Additionally handle retries for request timeouts (4e32439)

... (truncated)

Changelog

Sourced from python-gitlab's changelog.

v8.6.0 (2026-09-28)

Bug Fixes

  • COPYING: Use the combined LGPGL and GPL license text. (b6e65dd)

  • renovate: Add a 7-day cooldown for updates (6bb4216)

Features

  • hooks: Add all available project hook attributes (f57c33b)

Testing

  • Don't delete source branch by default for projects (aff7954)

v8.5.0 (2026-07-28)

Bug Fixes

  • Typo (72134f5)

  • api: Allow ProjectMergeRequestDiscussionNote.resolved to be updated (b411e5a)

  • client: Retry fetching server version after an unknown result (046fbac)

Continuous Integration

  • Run the pre-commit rst checks in the CI (a9c5d17)

Documentation

  • Correct error with backticks (e57559e)

  • discussions: Add example of resolving a single project merge request discussion note (2ef6452)

Features

  • api: Add ListMixin to remaining *DiscussionNoteManagers

... (truncated)

Commits
  • 51eb17e chore: release v8.6.0
  • ce92c8f chore(deps): update all non-major dependencies
  • a3e3713 chore(deps): update gitlab/gitlab-ee docker tag to v19.3.2-ee.0 (#3448)
  • a47b5e0 chore(deps): update all non-major dependencies
  • c58ca36 chore(deps): update pre-commit hook pycqa/isort to v9
  • 50b7c1e chore(deps): update dependency isort to v9
  • dc9afed chore(deps): update all non-major dependencies
  • c56d5fd chore(deps): update gitlab/gitlab-ee docker tag to v19.3.1-ee.0 (#3443)
  • 3032667 chore(deps): update dependency types-setuptools to v84
  • f4a643f chore(deps): update pre-commit hook maxbrunet/pre-commit-renovate to v44
  • Additional commits viewable in compare view

Updates starlette-context from 0.3.6 to 0.5.1

Release notes

Sourced from starlette-context's releases.

v0.5.1

  • Fix HeaderKeys enum str() behavior inconsistency across Python versions (#192). On Python 3.11+, str(HeaderKeys.api_key) returned "HeaderKeys.api_key" instead of "X-API-Key". Now uses StrEnum for consistent behavior across all supported Python versions.

v0.5.0

  • Add support for Python 3.13 and 3.14
  • Drop support for Python 3.9. Now only 3.10+ is supported
  • Migrate from Poetry to uv as the package manager and build tool
  • Switch build backend from poetry-core to hatchling
  • Replace assert with ConfigurationError in Plugin.process_request for clearer error messages
  • Replace Black with ruff format for code formatting
  • Replace deprecated HTTP_422_UNPROCESSABLE_ENTITY with HTTP_422_UNPROCESSABLE_CONTENT

v0.4.0

Commits

Updates uvicorn from 0.52.4 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

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)
Commits
  • 3eb9a9a Version 0.54.0 (#3161)
  • cd7ef6d Remove races from supervisor tests (#3134)
  • a56c7cc Support HTTP/2 response trailers (#3146)
  • 9bd4404 chore(deps): bump anyio from 4.13.0 to 4.14.2 (#3145)
  • 21f39ef Add HTTP/2 Early Hints support (#3137)
  • 421708f Version 0.53.0 (#3136)
  • f1a1bff Unset the keep-alive timer when upgrading to WebSocket (#3107)
  • 63971ed Document HTTP/2 support (#3130)
  • Description has been truncated


    Summary by cubic

    Bumps 21 Python dependencies in the python-minor-and-patch group across runtime, similar-issue, and dev dependencies, updating both exact pins and locked transitive versions in pyproject.toml and uv.lock.

    Review notes

    • gitpython 3.2.x drops Python 3.7, deprecates the GitDB backend, and bundles security fixes.
    • starlette 1.8.0 requires Python 3.11+ and adds HTTP 103 Early Hints support.
    • starlette-context 0.5.x drops Python 3.9 support.
    • pyjwt 2.15.x applies security fixes and changes JWKSetCache to store parsed PyJWKSet objects instead of raw JWKS payloads.