Skip to content

Bump the python-deps group in /backend with 6 updates - #53

Merged
alo-is merged 1 commit into
mainfrom
dependabot/pip/backend/python-deps-00d85ae706
Aug 18, 2026
Merged

Bump the python-deps group in /backend with 6 updates#53
alo-is merged 1 commit into
mainfrom
dependabot/pip/backend/python-deps-00d85ae706

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 14, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on fastapi, uvicorn, asyncmy, pydantic-settings, redis and websockets to permit the latest version.
Updates fastapi to 0.141.1

Release notes

Sourced from fastapi's releases.

0.141.1

Fixes

  • 🐛 Fix support for background tasks and headers from dependencies in app.frontend(). PR #16105 by @​tiangolo.

Docs

Commits
  • 95f8322 🔖 Release version 0.141.1 (#16106)
  • f137944 📝 Update release notes
  • d623544 🐛 Fix support for background tasks and headers from dependencies in `app.fron...
  • 1d211b9 📝 Update release notes
  • 8a1f876 📝 Document FASTAPI_ENV in FastAPI CLI guide (#16104)
  • c7e7b65 🔖 Release version 0.141.0 (#16103)
  • 6bceb84 📝 Update release notes
  • 5429fed ✨ Add app.frontend(check_dir="auto"), to make local development more conven...
  • 628663f 🔖 Release version 0.140.13 (#16096)
  • 0b54fd0 📝 Update release notes
  • Additional commits viewable in compare view

Updates uvicorn to 0.52.1

Release notes

Sourced from uvicorn's releases.

Version 0.52.1

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)
  • Remove duplicate Content-Type and Content-Length headers from WebSocket denial responses on the websockets-sansio implementation, and deliver non-UTF-8 denial bodies intact (#3041)

Full Changelog: Kludex/uvicorn@0.52.0...0.52.1

Changelog

Sourced from uvicorn's changelog.

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)
  • Remove duplicate Content-Type and Content-Length headers from WebSocket denial responses on the websockets-sansio implementation, and deliver non-UTF-8 denial bodies intact (#3041)

0.52.0 (July 29, 2026)

This release adds an experimental HTTP/1.1 implementation backed by zttp, a sans-IO HTTP parser I've been developing on the side: a core written in Zig, with bindings to Python. It has been running under a fuzzer for some weeks now, and has been through multiple rounds of security auditing.

It is still experimental, so don't put it in front of production traffic yet. Try it with --http zttp, and please send any feedback to the issue tracker.

Added

  • Add an experimental zttp HTTP/1.1 implementation, selectable with --http zttp (#2979)

Fixed

  • Keep non-ASCII WebSocket request headers intact with websockets 17.0, which encodes them with ISO-8859-1 (#3036)

0.51.0 (July 8, 2026)

Added

  • Restart workers one at a time on SIGHUP, bringing each replacement up before retiring the old worker, so reloads no longer drop requests (#3025)

Removed

  • Remove colorama from the standard extra (#3027)

0.50.2 (July 6, 2026)

Fixed

  • Require websockets>=13.0, which the default websockets-sansio implementation needs (#3021)

0.50.1 (July 6, 2026)

Fixed

  • Split comma-separated Sec-WebSocket-Protocol values in the websockets-sansio implementation (#3019)

0.50.0 (July 4, 2026)

If you use WebSockets, note that --ws auto now picks the websockets-sansio implementation. You shouldn't need it, but you can pin --ws websockets to get the deprecated legacy one back.

Changed

... (truncated)

Commits
  • ee8e45c Version 0.52.1 (#3056)
  • b57926d Remove duplicate content headers from WebSocket denial responses on websocket...
  • 49de1b9 chore(deps): bump pymdown-extensions from 10.21.3 to 11.0 (#3042)
  • 2f3fa3a Complete server-initiated closes in SansIO WebSocket protocols (#3053)
  • 8c59d55 chore(deps): bump the github-actions group with 5 updates (#3054)
  • e148451 Handle connection loss during WebSocket write backpressure (#3050)
  • e16a69b Add missing write flow control to websockets-sansio (#3048)
  • ef1dd44 Fold the zttp-only tests back into the HTTP test suite (#3046)
  • 8f1b884 Version 0.52.0 (#3044)
  • f6833db Add experimental zttp HTTP/1.1 protocol (#2979)
  • Additional commits viewable in compare view

Updates asyncmy to 0.2.13

Release notes

Sourced from asyncmy's releases.

v0.2.13

Highlights

Binary protocol release — server-side prepared statements land, and the receive path goes zero-copy. On the cross-language benchmark asyncmy's binary scan (22.9ms/50k rows) is now the fastest, ahead of go-sql-driver (32ms) and mysql_async (48ms).

Server-side prepared statements (binary protocol)

stmt = await conn.prepare("SELECT id, name FROM users WHERE id = ?")
result = await stmt.execute((42,))
  • Parameters serialize in binary form — no client-side escaping
  • Rows parse from the binary protocol in C: integers as little-endian bytes, temporal types via the CPython datetime C-API
  • ~35% faster than the text protocol on numeric/datetime-heavy scans

Transparent statement cache

pool = await asyncmy.create_pool(stmt_cache_size=128, ...)

Plain cursor.execute("... %s ...", args) automatically runs as cached server-side prepared statements — ORMs benefit with zero code changes (36.9ms → 25.3ms on 50k-row cursor scans). Unpreparable queries fall back to the text protocol silently. Opt-in because FLOAT columns return the exact stored value under the binary protocol.

Protocol & I/O

  • Custom asyncio.BufferedProtocol replaces StreamReader: incoming bytes land directly in the parse buffer (zero-copy receive, no per-read Future round-trips)
  • CLIENT_DEPRECATE_EOF negotiated: one packet less per result set and per prepare
  • Prepared-statement column metadata cached; repeated executes skip the column definition packets via C-level packet skipping
  • MariaDB COM_STMT_BULK_EXECUTE: executemany binds all rows in one round-trip when the statement cache is enabled (also stmt.execute_bulk(rows))
  • SSCursor bulk-parses buffered rows; DictCursor builds row dicts at C level

Fixes & build

  • Fix LOAD DATA LOCAL INFILE sending (await on a non-coroutine) and add write backpressure
  • Fix conftest.py ignoring a non-default MYSQL_PORT
  • Linux aarch64 wheels are now published

Full Changelog: long2ice/asyncmy@v0.2.12...v0.2.13

Changelog

Sourced from asyncmy's changelog.

0.2.13

  • Add server-side prepared statements (binary protocol): stmt = await conn.prepare(sql), await stmt.execute(args). Parameters are sent in binary form (no client-side escaping) and results are parsed from the binary protocol — no text parsing for numeric/temporal columns. Large scans are ~35% faster than the text protocol; on the cross-language benchmark asyncmy's binary scan is now the fastest, ahead of go-sql-driver and mysql_async.
  • Add transparent statement cache: connect(stmt_cache_size=N) makes plain cursor.execute("... %s ...", args) run as cached server-side prepared statements (binary protocol) with silent text-protocol fallback for unpreparable queries. Opt-in because FLOAT columns return the exact stored value under the binary protocol.
  • Replace StreamReader with a custom asyncio.BufferedProtocol: incoming bytes land directly in the parse buffer (zero-copy receive, no per-read Future round-trips).
  • Cache prepared-statement column metadata: repeated executes skip re-parsing column definition packets entirely (C-level packet skipping).
  • SSCursor now bulk-parses buffered rows (unbuffered scans ~10% faster on top of 0.2.12's 2.8x).
  • DictCursor builds row dicts at C level.
  • Fix LOAD DATA LOCAL INFILE sending (await on a non-coroutine) and add write backpressure.
  • Build Linux aarch64 wheels.
  • Negotiate CLIENT_DEPRECATE_EOF: one packet less per result set and per prepare (both MySQL 5.7.5+ and MariaDB support it; legacy EOF path kept for older servers).
  • MariaDB: support COM_STMT_BULK_EXECUTEexecutemany binds all rows in binary form in one round-trip when stmt_cache_size is enabled (automatic text fallback); also available explicitly via stmt.execute_bulk(rows).
  • Fix conftest.py ignoring a non-default MYSQL_PORT.

0.2.12

  • Major performance improvement: buffered packet reading, C-level bulk row parsing, pointer-based protocol reads, direct cell decoding via CPython C-API, zero-decode numeric/temporal columns, escape fast path. Large result sets are 5-15x faster; asyncmy now ranks #1 in all benchmarks, details see https://github.com/long2ice/asyncmy/blob/dev/benchmark/README.md.
  • Fix OKPacketWrapper.message containing 2 stray bytes (read_struct position bug).
  • Fix LoadLocalPacketWrapper missing attribute declarations (LOAD DATA LOCAL crash).
  • Fix potential integer overflow of rowcount/insert_id on unbuffered cursors and Windows.
  • Benchmark suite now uses warmup + best-of-3 methodology.
  • Security: remove unsafe escape_dict — dict keys could reach SQL unescaped (CVE-2025-65896). (#134, #135, thanks @​Cycloctane)
  • Fix AttributeError: 'Connection' object has no attribute 'ssl' in sha256_password auth branch. (#147, #148, thanks @​shychee)
  • Support MySQL 8.0.19+ INSERT ... AS alias ON DUPLICATE KEY UPDATE syntax in executemany. (#116, #120, thanks @​MarkReedZ)
  • Pool closes idle/recycled connections with QUIT instead of aborting the TCP stream. (#112, #113, thanks @​Cycloctane)
  • Fix OverflowError when escaping ints outside the signed 64-bit range, e.g. unsigned BIGINT 2**64-1. (#35, #127)
  • Close connection when a query is cancelled mid-read to prevent stale results leaking into pooled reuse. (#107, #108)
  • Use setuptools instead of deprecated distutils in build. (#106, thanks @​tijuca)

0.2.11

  • Fix 'Connection' object has no attribute '_auth_plugin_name' (#86)

0.2.10

... (truncated)

Commits
  • 082046d feat: CLIENT_DEPRECATE_EOF and MariaDB COM_STMT_BULK_EXECUTE
  • 5d1738c perf: custom BufferedProtocol, transparent stmt cache, metadata caching
  • fb8e0de feat: server-side prepared statements with binary protocol
  • 6590227 docs: archive cross-language benchmark vs Go and Rust native drivers
  • 13d940b ci: drop obsolete CIBW_SKIP selectors and bump artifact actions to v5
  • 712add9 fix: rename build.py to avoid shadowing the PyPA build module
  • fc6c71e Merge pull request #105 from tijuca/fix-typo
  • 22e5ee1 fix: apply community fixes on top of protocol rewrite
  • 39a5e16 Merge pull request #113 from Cycloctane/close_with_quit
  • b664149 Merge pull request #120 from MarkReedZ/deprecation_fix
  • Additional commits viewable in compare view

Updates pydantic-settings to 2.15.0

Release notes

Sourced from pydantic-settings's releases.

v2.15.0

Highlights

Behavior changes

  • case_sensitive now applies to init kwargs and config-file sources (#900). InitSettingsSource and the JSON/TOML/YAML config sources previously ignored case_sensitive. Since it defaults to False, case-insensitive matching is now the default for these sources — e.g. Settings(TeSt=...) now populates a test field where it previously did not. Nested keys are still matched case-sensitively.
  • Fields with unresolved forward references now emit a warning (#901). Settings sources can silently fail to resolve such fields; they now raise IncompleteFieldDefinitionWarning telling you to call model_rebuild(). If you have filterwarnings = error configured, this may surface as a new failure.
  • Non-JSON env values for strict fields now raise ValidationError (#926) instead of a less specific error.

New features

  • Show environment variable names in CLI help via cli_show_env_vars=True (#860), so generated --help output doubles as configuration documentation.
  • PYDANTIC_SETTINGS_DEBUG for debugging settings resolution (#906, #913). Set it to a truthy value with DEBUG logging enabled to see each source's contribution in priority order, which source won for each value, and which env_file/secret files were probed, loaded, or skipped — the long-standing "why isn't my .env being picked up?" question.
  • toml_table_header for regular TOML files (#882, #886, #887), letting you root settings at a nested table in any TOML file, not just pyproject.toml.
  • Traversable support for JSON/TOML/YAML file sources (#902), so you can load config packaged inside a distribution — including files inside a zip or wheel — via importlib.resources.files(...) without casting to Path.
  • GCP: project_id can come from an earlier settings source (#878), rather than only from the constructor or GOOGLE_CLOUD_PROJECT.

Bug fixes

  • Fix env vars not loading on Windows with case_sensitive=True (#894). Windows upper-cases os.environ keys, so fields raised Field required instead of picking up their values.
  • Read secret files as UTF-8 instead of the platform locale encoding (#917). On Windows code pages such as cp1252 this silently corrupted non-ASCII secrets.
  • Fix AliasPath on nested model fields not JSON-decoding env values (#898).
  • Fix case-insensitive matching for optional nested models (#905).
  • Fix dotenv extras being wrongly claimed by a complex field sharing a name prefix (#912) — e.g. dbx_token being swallowed by a db: dict field.
  • Fix nested_model_default_partial_update=True corrupting discriminated unions (#876).
  • Fix Secret subclasses crashing when loaded from the environment (#920).
  • Fix enum names not parsing through nested annotations such as Optional[Annotated[MyEnum, ...]] with env_parse_enums=True (#910).
  • An empty yaml_config_section now falls back to defaults instead of raising AttributeError: 'NoneType' object has no attribute 'keys' (#914).
  • NestedSecretsSettingsSource no longer follows symlinks pointing outside secrets_dir (#889).
  • GCP: skip the list_secrets call when case_sensitive=True (#862), lowering the required IAM permissions to just roles/secretmanager.secretAccessor.
  • AWS: types-boto3[secretsmanager] is no longer required at runtime (#880).

Documentation

  • Document JSON parsing of complex env values, plus a comma-separated-values recipe (#919).
  • Recommend an async settings loading pattern (#908).
  • Clarify behavior when an unprefixed value is present in a dotenv file (#895).
  • Clarify environment variable helper descriptions (#867) and fix assorted typos (#904).

What's Changed

... (truncated)

Commits
  • f725ca1 Prepare release 2.15.0 (#930)
  • 28f35c2 Bump the python-packages group with 4 updates (#929)
  • 9056db0 test: move function-local imports to the top of test modules (#927)
  • f077e3a fix: raise ValidationError for non-JSON env values on strict fields (#926)
  • ae25d70 fix: treat Secret subclasses as non-complex fields (#716) (#920)
  • 798dcea Bump the python-packages group with 4 updates (#924)
  • a190041 Bump the github-actions group with 4 updates (#925)
  • 5d93332 Bump the python-packages group with 4 updates (#921)
  • d2fdeda fix: read secret files as UTF-8 instead of the locale encoding (#917)
  • 2256a4e Bump the python-packages group with 3 updates (#915)
  • Additional commits viewable in compare view

Updates redis 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:

  • ListsLMOVEM / BLMOVEM for moving multiple elements between lists (#4174).
  • SetsSDIFFCARD and SUNIONCARD cardinality commands (#4171).
  • StreamsMAXCOUNT / MAXSIZE options for XREAD and XREADGROUP (#4173).
  • Time SeriesTS.READ (#4170), TS.QUERYLABELS (#4197), TS.NRANGE / TS.NREVRANGE (#4163), and an exclude_empty (EXCLUDEEMPTY) option for TS.MRANGE / TS.MREVRANGE (#4188).
  • SearchFT.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
  • e013126 Testing with 8.10 GA (#4227)
  • 059d1e9 Fixed TS.NRANGE commands to correctly apply aggregators (#4225)
  • d486a0a Fix FIELDNAME alias dropping first character of un-prefixed fields (#4224)
  • fb93104 feat: add client-side HIMPORT fieldset support for standalone and cluster cli...
  • 9197609 Fix lat/lon swap in search querystring geo() helper (#4223)
  • 14714a0 fix: Fixed double decoding issue with unquote() (#4222)
  • 227280a Update lib version to 8.1.0
  • 88d16d0 Decode ACL LOG string values on the default RESP3 legacy callback (#4201)
  • 599fd75 feat: add FT.ALIASLIST support (#4198)
  • 71e275e test: add VectorField RERANK serialization tests for sync and async search (#...
  • Additional commits viewable in compare view

Updates websockets to 17.0.1

Release notes

Sourced from websockets's releases.

17.0.1

See https://websockets.readthedocs.io/en/stable/project/changelog.html for details.

Commits
  • fd3f16c Release version 17.0.1.
  • 3e4634a Remove superfluous "no cover" pragmas.
  • b93ef1e Add tests for the asyncio server.
  • fef04d8 Fix backpressure in the Trio implementation.
  • eb3600c Restore compatibility of serve_forever with uvloop.
  • 8b5e767 Simplify asyncio server implementation.
  • 94f6384 Refactor connection handling outside of Server class.
  • 3826993 Unpin sphinx.
  • 31ec002 Add Trio to requirements for building docs.
  • ff7a7fb Increase timeout for building wheels.
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Updates the requirements on [fastapi](https://github.com/fastapi/fastapi), [uvicorn](https://github.com/Kludex/uvicorn), [asyncmy](https://github.com/long2ice/asyncmy), [pydantic-settings](https://github.com/pydantic/pydantic-settings), [redis](https://github.com/redis/redis-py) and [websockets](https://github.com/python-websockets/websockets) to permit the latest version.

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

Updates `uvicorn` to 0.52.1
- [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.52.1)

Updates `asyncmy` to 0.2.13
- [Release notes](https://github.com/long2ice/asyncmy/releases)
- [Changelog](https://github.com/long2ice/asyncmy/blob/dev/CHANGELOG.md)
- [Commits](long2ice/asyncmy@v0.2.11...v0.2.13)

Updates `pydantic-settings` to 2.15.0
- [Release notes](https://github.com/pydantic/pydantic-settings/releases)
- [Commits](pydantic/pydantic-settings@v2.14.2...v2.15.0)

Updates `redis` 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 `websockets` to 17.0.1
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](python-websockets/websockets@16.1.1...17.0.1)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-version: 0.141.1
  dependency-type: direct:production
  dependency-group: python-deps
- dependency-name: uvicorn
  dependency-version: 0.52.1
  dependency-type: direct:production
  dependency-group: python-deps
- dependency-name: asyncmy
  dependency-version: 0.2.13
  dependency-type: direct:production
  dependency-group: python-deps
- dependency-name: pydantic-settings
  dependency-version: 2.15.0
  dependency-type: direct:production
  dependency-group: python-deps
- dependency-name: redis
  dependency-version: 8.1.0
  dependency-type: direct:production
  dependency-group: python-deps
- dependency-name: websockets
  dependency-version: 17.0.1
  dependency-type: direct:production
  dependency-group: python-deps
...

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 Aug 14, 2026
@alo-is
alo-is merged commit 3a5b671 into main Aug 18, 2026
11 checks passed
@alo-is
alo-is deleted the dependabot/pip/backend/python-deps-00d85ae706 branch August 18, 2026 20:45
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.

1 participant