Skip to content

build(deps): bump the minor-and-patch group across 1 directory with 21 updates - #45

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/minor-and-patch-cc5e1af535
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/minor-and-patch-cc5e1af535

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 9, 2026

Copy link
Copy Markdown
Contributor

Bumps the minor-and-patch group with 21 updates in the / directory:

Package From To
httpx2 2.13.1 2.16.0
mistralai 3.2.0 3.7.0
pytest 9.1.1 9.2.0
reuse 6.2.0 6.3.0
mypy 2.4.0 2.4.1
ruff 0.17.0 0.17.4
hatchling 1.32.4 1.33.0
anyio 4.15.1 4.16.0
ast-serialize 0.12.1 0.13.1
certifi 2026.7.22 2026.10.23
coverage 7.16.2 7.17.2
httpcore2 2.13.1 2.16.0
jiter 0.17.0 0.19.0
mypy-extensions 1.1.0 1.2.0
opentelemetry-api 1.45.1 1.45.2
pluggy 1.6.0 1.7.0
pydantic 2.14.0 2.14.3
pydantic-core 2.50.0 2.50.4
tomlkit 0.15.1 0.15.2
truststore 0.10.4 0.10.5
typing-inspection 0.4.4 0.4.5

Updates httpx2 from 2.13.1 to 2.16.0

Release notes

Sourced from httpx2's releases.

v2.16.0

Highlights

🍪 Faster requests with large cookie jars

Building the Cookie header no longer scans every cookie in the jar. The client reuses its jar instead of copying it on every request and redirect (#1284), only looks up the domains that can match the request host, and skips the expired cookie sweep until a cookie is due (#1285). With 1,000 cookies across 500 domains, building the Cookie header is about 18 times faster.

Cookies from different domains are now sent from the least to the most specific domain, for example .example.org before sub.example.org, instead of in the order the domains were added. Cookies with longer paths still come first.

httpx2

Changed

  • Look up only the cookie domains that match the request host, and skip the expired cookie sweep until a cookie is due. With 1,000 cookies across 500 domains, building the Cookie header is about 18 times faster. Cookies from different domains are now sent from the least to the most specific domain (#1285).

Fixed

  • Reuse the client cookie jar instead of copying it on every request and redirect. A custom policy set with client.cookies.jar.set_policy() now applies to outgoing requests (#1284).

httpcore2

No changes since 2.15.1. Version bumped to stay in lockstep with httpx2.

Full Changelog: pydantic/httpx2@v2.15.1...v2.16.0

v2.15.1

Highlights

🔒 Flat CPU usage for long-lived clients on Linux

On Linux, the default SSL context is now configured once instead of on every handshake (#1253). With OpenSSL older than 3.4, each handshake added a duplicate certificate lookup path, so CPU usage per request grew over the lifetime of a reused client. Certificate verification is unchanged, and Windows and macOS still use truststore.

httpx2

Fixed

  • Configure the default SSL context once on Linux, instead of on every handshake. With OpenSSL older than 3.4, CPU usage grew over the lifetime of a reused client (#1253).

httpcore2

Fixed

  • Configure the default SSL context once on Linux, instead of on every handshake. With OpenSSL older than 3.4, CPU usage grew over the lifetime of a reused client (#1253).

Full Changelog: pydantic/httpx2@v2.15.0...v2.15.1

v2.15.0

Highlights

🐍 Python 3.11+ required

... (truncated)

Changelog

Sourced from httpx2's changelog.

2.16.0 (October 21st, 2026)

Changed

  • Look up only the cookie domains that match the request host, and skip the expired cookie sweep until a cookie is due. With 1,000 cookies across 500 domains, building the Cookie header is about 18 times faster. Cookies from different domains are now sent from the least to the most specific domain. (#1285)

Fixed

  • Reuse the client cookie jar instead of copying it on every request and redirect. A custom policy set with client.cookies.jar.set_policy() now applies to outgoing requests. (#1284)

2.15.1 (October 19th, 2026)

Fixed

  • Configure the default SSL context once on Linux, instead of on every handshake. With OpenSSL older than 3.4, CPU usage grew over the lifetime of a reused client. (#1253)

2.15.0 (October 19th, 2026)

Removed

  • Drop support for Python 3.10. (#1274)

2.14.0 (October 18th, 2026)

Added

  • Match IP CIDR ranges, like 192.168.0.0/16 and [fe80::]/10, in NO_PROXY and mounts. Requests to any address in the range now bypass the proxy; previously only the network address itself did. (#1165)
  • Accept bracketed IPv6 addresses, like [::1] and [::1]:8080, in NO_PROXY. (#1267)

Changed

  • Raise InvalidURL for a mounts key with an IP host followed by anything other than a valid CIDR prefix, like all://10.0.0.0/33. (#1165)

Fixed

  • Ignore NO_PROXY entries that cannot be parsed, instead of raising InvalidURL when the client is created. (#1267)
  • Import httpx2 on FIPS-enforced Python builds without hashlib.md5. DigestAuth raises ProtocolError when the server asks for an unavailable algorithm. (#1130)
  • Handle reads after an ASGI WebSocket app shuts down, instead of leaking anyio exceptions. (#1233)
  • Stop the sync WebSocket session from hanging on exit when its event queue is full. (#1123)
Commits

Updates mistralai from 3.2.0 to 3.7.0

Release notes

Sourced from mistralai's releases.

python - v3.7.0 - 2026-11-01 20:09:31

Generated by Speakeasy CLI

2026-11-01 13:00:38

Generated SDK baseline differences

The published SDK or generator baseline differs from the baseline used by the OpenAPI changelog.

Stable compatibility changes

Removed from the stable API surface (1):

  • VoiceCreateRequest.slug

Stable type changes

Changed types or signatures on the stable surface (6):

  • DeploymentWorkerSpecInput.github_url: str -> OptionalNullable[str]
  • DeploymentWorkerSpecInputTypedDict.github_url: str -> NotRequired[Nullable[str]]
  • VoiceCreateRequest.gender: OptionalNullable[str] -> OptionalNullable[VoiceGender]
  • VoiceCreateRequestTypedDict.gender: NotRequired[Nullable[str]] -> NotRequired[Nullable[VoiceGender]]
  • VoiceUpdateRequest.gender: OptionalNullable[str] -> OptionalNullable[VoiceGender]
  • VoiceUpdateRequestTypedDict.gender: NotRequired[Nullable[str]] -> NotRequired[Nullable[VoiceGender]]

Beta surface changes

Removed from the beta surface (41):

  • ManagedIndexes
  • SearchIndexes
  • Rag.managed_indexes
  • ManagedIndexes.create
  • ManagedIndexes.create_async
  • ManagedIndexes.delete
  • ManagedIndexes.delete_async
  • ManagedIndexes.delete_documents
  • ManagedIndexes.delete_documents_async
  • ManagedIndexes.generate_index_summary
  • ManagedIndexes.generate_index_summary_async
  • ManagedIndexes.get
  • ManagedIndexes.get_async
  • ManagedIndexes.get_chunk
  • ManagedIndexes.get_chunk_async
  • ManagedIndexes.get_index_summary
  • ManagedIndexes.get_index_summary_async
  • ManagedIndexes.grep
  • ManagedIndexes.grep_async
  • ManagedIndexes.ingest_documents
  • ManagedIndexes.ingest_documents_async
  • ManagedIndexes.list
  • ManagedIndexes.list_async
  • ManagedIndexes.navigate
  • ManagedIndexes.navigate_async
  • ...and 16 more

... (truncated)

Changelog

Sourced from mistralai's changelog.

2024-08-07 14:25:13

Changes

Based on:

Generated

  • [python v1.0.0] .

Releases

2024-08-08 18:12:16

Changes

Based on:

Generated

  • [python v1.0.1] .

Releases

2024-08-20 08:36:28

Changes

Based on:

Generated

  • [python v1.0.2] .

Releases

2024-08-29 09:09:05

Changes

Based on:

Generated

  • [python v1.0.3] .

Releases

2024-09-13 16:21:24

Changes

Based on:

Generated

  • [python v1.1.0] .

Releases

... (truncated)

Commits
  • c5baf27 chore: sync generated SDK from upstream (#651)
  • 8fdbff0 fix(telemetry): send dedicated-mode traces to the client's explicit server_ur...
  • 90e3009 chore: sync generated SDK from upstream (#649)
  • 89da0f8 chore: sync generated SDK from upstream @ b0045172 (#647)
  • c5b1fcf chore: sync generated SDK from upstream (#646)
  • 08c7956 chore: sync generated SDK from upstream (#642)
  • b52629e ci: install PortAudio before uv sync --all-extras (#641)
  • See full diff in compare view

Updates pytest from 9.1.1 to 9.2.0

Release notes

Sourced from pytest's releases.

9.2.0

pytest 9.2.0 (2026-10-27)

Removals and backward incompatible breaking changes

  • #14716: -c now raises a usage error for a path that does not exist, is a directory, or is in a format pytest has no loader for. Such paths were previously either ignored or reported as an unhandled FileNotFoundError.

  • #8593: The indirect, ids and scope arguments of Metafunc.parametrize() <pytest.Metafunc.parametrize> -- and therefore of @pytest.mark.parametrize <pytest.mark.parametrize ref> -- are now keyword-only.

    Passing them positionally was a common source of confusing errors, e.g. parametrize("arg1", "arg2", [(1, 2)]) made the argvalues land in indirect and failed with indirect fixture '(1, 2)' doesn't exist; such mistakes now fail with an understandable TypeError. The type annotations have always declared these arguments as keyword-only.

  • #993: Plugin import failures at startup are now reported and classified instead of escaping as a raw traceback with the accidental exit code 1:

    • a plugin that cannot be found -- via -p, pytest_plugins or PYTEST_PLUGINS -- exits with pytest.ExitCode USAGE_ERROR (4), like a conftest.py that fails to import;
    • a plugin that is found but raises while importing -- including a broken pytest11 entry point or a missing plugin dependency -- exits with pytest.ExitCode INTERNAL_ERROR (3), with the traceback preserved.

    pytest.main now returns these codes instead of raising ImportError. Also fixed an IndexError from pytest's own internals when the plugin raised an exception with no arguments.

Deprecations (removal in next major release)

  • #14742: The private _pytest.python.CallSpec2 name has been renamed to CallSpec. The old CallSpec2 alias remains available for now and will be removed in pytest 10 or 11.

  • #14755: Schedule yield_fixture decorator for removal in pytest 10 or 11.

  • #14774: Similarly to the deprecation of class-scoped fixtures defined as instance methods in pytest 9.1, all higher-scoped fixtures (module, package, and session) defined as instance methods are now deprecated.

    They suffer from the same issue the original deprecation only fixed for class-scoped fixtures, see 10819 and 14011.

  • #14808: Passing a non-string value to a string-typed ini option now emits a pytest.PytestRemovedIn10Warning. This affects [tool.pytest.ini_options] in pyproject.toml. In pytest 10 this will raise a TypeError, matching the behavior of the corresponding TOML config path.

  • #7323: Passing bytes to TerminalReporter.write_line() is now deprecated, pass a str instead.

New features

  • #14743: Full diff: now contains a legend explaining the + & - symbols in diff output.
  • #2781: When strict_markers is enabled, marker names used in -m expressions are now validated against registered markers.
  • #6881: Added the parametrize_long_str_id_strategy configuration option to control how long str/bytes parameter values are handled in auto-generated test IDs. Explicit IDs set via ids=[...] or pytest.param(..., id=...) are not affected. Available strategies: short (default, values over 100 chars fall back to argname+index), sha256 (SHA-256 hex digest), legacy (keep full value), and disallow (error requesting explicit IDs).

Improvements in existing functionality

  • #10745: A RecursionError whose recursion origin cannot be located now shows only the first and last 10 stack frames, matching what pytest already did when locating the origin failed outright. Previously the full traceback -- often around a thousand near-identical frames -- was rendered, which was both slow and unreadable. Pass --full-trace to see every frame.

... (truncated)

Commits
  • ae1d0ff Prepare release version 9.2.0
  • 143ce31 pre-commit: exclude codespell on generated release announcements
  • 532dc5f tox: add attrs dependency to regen, needed in reportingdemo.rst
  • a7b2446 Merge pull request #15245 from pytest-dev/claude/project-thread-9jcf91
  • 679d09c [pre-commit.ci] pre-commit autoupdate (#15266)
  • 41d12cd docs: clarify typing for yield fixtures
  • b9022ba Merge pull request #15182 from 1871698/docs/improve-getting-started-description
  • 16f87a7 docs: improve getting-started.rst test execution description
  • 082ed70 Merge pull request #15255 from pytest-dev/claude/project-thread-eoi3d6
  • ae37a01 Merge pull request #15227 from pytest-dev/claude/project-thread-4etye4
  • Additional commits viewable in compare view

Updates reuse from 6.2.0 to 6.3.0

Commits

Updates mypy from 2.4.0 to 2.4.1

Changelog

Sourced from mypy's changelog.

Mypy 2.4.1

  • Process overloads as a whole in two-phase type checking (Ivan Levkivskyi, PR 22231)
  • Skip recursive setup for frame-private nested functions in mypyc (Piotr Sawicki, PR 22187)

Acknowledgements

Thanks to all mypy contributors who contributed to this release:

  • A5rocks
  • Adam Dangoor
  • Alex Waygood
  • Ali Hamdan
  • Brian Helba
  • Chad Dombrova
  • David Foster
  • dnwpark
  • Edgar Ramírez Mondragón
  • Giorgos Michas
  • Ivan Levkivskyi
  • Jelle Zijlstra
  • Jukka Lehtosalo
  • Marc Mueller
  • Michael R. Crusoe
  • NIYONSHUTI Emmanuel
  • Piotr Sawicki
  • Shantanu
  • themylogin
  • Vaggelis Danias
  • Willy Bruns

I'd also like to thank my employer, Dropbox, for supporting mypy development.

Mypy 2.3

We've just uploaded mypy 2.3.0 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:

python3 -m pip install -U mypy

You can read the full documentation for this release on Read the Docs.

The Upcoming Switch to the New Native Parser

We are planning to enable the new native parser (--native-parser) by default soon. We recommend that you test the native parser in your projects and report any issues in the mypy issue tracker.

Mypyc Free-threading Memory Safety

... (truncated)

Commits

Updates ruff from 0.17.0 to 0.17.4

Release notes

Sourced from ruff's releases.

0.17.4

Release Notes

Released on 2026-11-05.

Preview features

  • [flake8-logging-format] Avoid behavior changes and syntax errors in fixes (G004) (#27419)
  • [security] Implement tarfile-ignore-zeros-true (#28680)

Bug fixes

  • Accept a bare raise before a semicolon (#29761)
  • Allow match identifiers after a semicolon (#29760)
  • Fix panic on BOM-prefixed files in diagnostic renderer (#30017)
  • [flake8-simplify] Report collapsible elif clauses after a multi-statement if branch (SIM102) (#29814)

Rule changes

  • Show more nonprinting characters in diagnostic fix diffs (#30062)

Performance

  • Coalesce source slices when formatting attributes (#29841)
  • Collect return statements with a statement-only visitor (#29911)
  • [pyflakes] Defer value comparisons for repeated dictionary keys (F601, F602) (#29739)
  • Format node fields directly when comment handling is unnecessary (#29853)
  • Reduce formatter source-slice overhead (#29855)
  • Reuse a callee's qualified name across lint rules (#29916)
  • Skip invalid string character checks when the source contains none (#29883)
  • Use a Bloom filter for formatter comment lookups (#29852)
  • Use a concrete buffer for ordinary writes (#29819)

CLI

  • Give NO_COLOR precedence in Ruff and ty diagnostics (#29898)
  • Honor CLICOLOR=0 in Ruff and ty diagnostics (#29910)

Documentation

  • Correct the documented version and src defaults for ruff-action (#29880)
  • [flake8-bugbear] Make B014 example error out-of-the-box (#29941)
  • [flake8-no-pep420] Document preview behavior (INP001) (#29764)
  • [isort] Expand I001 documentation (#29843)

Other changes

  • [syntax-errors] Extend __debug__ write check to attribute targets (#27908)

Contributors

... (truncated)

Changelog

Sourced from ruff's changelog.

0.17.4

Released on 2026-11-05.

Preview features

  • [flake8-logging-format] Avoid behavior changes and syntax errors in fixes (G004) (#27419)
  • [security] Implement tarfile-ignore-zeros-true (#28680)

Bug fixes

  • Accept a bare raise before a semicolon (#29761)
  • Allow match identifiers after a semicolon (#29760)
  • Fix panic on BOM-prefixed files in diagnostic renderer (#30017)
  • [flake8-simplify] Report collapsible elif clauses after a multi-statement if branch (SIM102) (#29814)

Rule changes

  • Show more nonprinting characters in diagnostic fix diffs (#30062)

Performance

  • Coalesce source slices when formatting attributes (#29841)
  • Collect return statements with a statement-only visitor (#29911)
  • [pyflakes] Defer value comparisons for repeated dictionary keys (F601, F602) (#29739)
  • Format node fields directly when comment handling is unnecessary (#29853)
  • Reduce formatter source-slice overhead (#29855)
  • Reuse a callee's qualified name across lint rules (#29916)
  • Skip invalid string character checks when the source contains none (#29883)
  • Use a Bloom filter for formatter comment lookups (#29852)
  • Use a concrete buffer for ordinary writes (#29819)

CLI

  • Give NO_COLOR precedence in Ruff and ty diagnostics (#29898)
  • Honor CLICOLOR=0 in Ruff and ty diagnostics (#29910)

Documentation

  • Correct the documented version and src defaults for ruff-action (#29880)
  • [flake8-bugbear] Make B014 example error out-of-the-box (#29941)
  • [flake8-no-pep420] Document preview behavior (INP001) (#29764)
  • [isort] Expand I001 documentation (#29843)

Other changes

  • [syntax-errors] Extend __debug__ write check to attribute targets (#27908)

Contributors

... (truncated)

Commits
  • 05cdc36 Bump version to 0.17.4 (#30073)
  • c6b17c2 [ty] Freshen method typevars before owner specialization (#29543)
  • 4b0b407 [ty] Preserve unions inferred during fixpoint iteration (#29927)
  • 1dd3e9e Show more nonprinting characters in diagnostic fix diffs (#30062)
  • 32be8e7 [ty] Skip fixpoint iteration for simple generic calls (#30054)
  • 926ccc8 [ty] Handle output errors when generating shell completions (#29997)
  • c86652a [ty] Skip active Conda and Pixi environments during discovery if the environm...
  • c9150f0 Add project walltime benchmarks for Ruff (#30061)
  • 64989ec [ty] Report invalid module globs once per override pattern (#30031)
  • 367a563 [ty] Fix conditional type and tuple annotations (#29987)
  • Additional commits viewable in compare view

Updates hatchling from 1.32.4 to 1.33.0

Release notes

Sourced from hatchling's releases.

Hatchling v1.33.0

Added:

  • Officially support Python 3.15.
Commits
  • c93b542 release Hatch v1.18.2
  • b69f97a release Hatchling v1.33.0
  • e7495de Prepare for release for hatch 1.18.2 and hatchling 1.32.5 (#2477)
  • ad6d66e Use --python instead of --python-version for uv commands (#2473)
  • 6744e60 Fix hatch test crashing or silently doing nothing when filters match no env...
  • 52de770 match exclude key exactly when detecting injection (#2444)
  • 7bbe763 Fix require-runtime-dependencies being ignored for build hooks (#2257)
  • ac9c0c9 Add 3.15 support (#2468)
  • 7c26ebe Fix hatch.cli.application.Application.ensure_plugin_dependencies PyApp Comp...
  • See full diff in compare view

Updates anyio from 4.15.1 to 4.16.0

Release notes

Sourced from anyio's releases.

4.16.0

New features

  • Added BlockingPortal.call_async() for asynchronously calling into an event loop with optional abandonment on cancellation (#1342; PR by @​davidbrochart)
  • Added SOCK_SEQPACKET support to connect_unix() and create_unix_listener() (#1349; PR by @​theunkn0wn1)

Other changes

  • Changed UDP sockets on the asyncio backend to make send() wait until the datagram has been passed to the operating system (#1294; PR by @​graingert)

Bug fixes

  • Fixed documentation implying that use_uvloop=True falls back to the standard event loop when uvloop (winloop on Windows) is not installed, and showed how to skip the corresponding pytest backend variant when the dependency is missing (#645; PR by @​GruffElixir)
  • Fixed get_current_task() on the asyncio backend raising an opaque TypeError: cannot create weak reference to 'NoneType' object instead of a clear error when called from a callback scheduled via loop.call_soon_threadsafe() (e.g. from within from_thread.run_sync()), where asyncio.current_task() is legitimately None (#773; PR by @​AmirF194)
  • Fixed CancelScope on the asyncio backend swallowing a native Task.cancel() that was delivered in the same event loop iteration as the scope's own cancellation (such as a move_on_after() deadline expiring), which left the host task with a pending cancellation request that never raised CancelledError (#1214)
  • Fixed UDP socket closing hanging if a datagram send was still in flight (#1237; PR by @​graingert)
  • Fixed concurrent aclose_forcefully() calls on asyncio socket streams returning before the underlying socket was closed (#1273; PR by @​graingert)
  • Fixed aclose() on sockets not checkpointing, and thus failing to raise a cancellation exception when called inside a cancelled scope (affected UNIX socket streams and UNIX datagram sockets on asyncio, and all sockets on Trio) (#1288; PR by @​graingert)
  • Fixed aclose() on asyncio TCP socket listeners not checkpointing, and leaking the listening socket if cancelled while another task was waiting in accept() (#1289; PR by @​graingert)
  • Fixed accept() on asyncio UNIX socket listeners hanging forever, and leaving the listening socket registered with the event loop, when the listener was closed by another task (#1289; PR by @​graingert)
  • Fixed send() on asyncio TCP and UDP sockets returning normally, despite the data being discarded, when the socket was closed by another task (or, for TCP, the connection was lost) while send() was waiting for the operating system to accept the data (#1289; PR by @​graingert)
  • Fixed SocketStream.send() on the asyncio backend handing its data to a paused transport after a previous send() was cancelled (#1299; PR by @​graingert)
  • Fixed sleep() treating a negative delay (including -inf) inconsistently across backends (asyncio returned immediately; Trio raised ValueError) by raising ValueError on all backends (#1306; PR by @​BetterAndBetterII)
  • Fixed create_tcp_listener() occasionally failing with a message like Could not create 2 listeners with a consistent port when an ephemeral port is requested and IPv6 is enabled and the dual-stack path is not available or a specific local host name was given (#1313)
  • Fixed AsyncFile not shielding against cancellation while closing (#1314)
  • Fixed TemporaryDirectory.cleanup() reacting to cancellation prematurely when the host task was already cancelled, causing the actual cleanup operation to be skipped (#1316; PR by @​Yasser-Ameur)
  • Fixed a NaN deadline being accepted on asyncio while Trio raised ValueError, which silently disabled the timeout (fail_after(math.nan) returned instead of raising TimeoutError); CancelScope now rejects it on both backends (#1317; PR by @​dylanpulver)
  • Fixed FileReadStream and FileWriteStream leaving files open when cancelled during context manager exit, including unflushed writes (#1318; PR by @​Kuang-xianxin)
  • Fixed Condition.notify() and Condition.notify_all() failing when the underlying lock was acquired directly rather than through the condition (#1319; PR by @​GruffElixir)
  • Fixed importing AnyIO with loaders that do not provide __file__, such as PyOxidizer, raising TypeError instead of falling back to eager imports (#1322; PR by @​skulitom)
  • Fixed text receive streams silently discarding incomplete characters at end-of-file instead of applying the configured decoding error handler (#1339; PR by @​Aurelucien)
  • Fixed Semaphore(fast_acquire=True) losing its fast-acquire behavior when instantiated outside a running event loop (#1348; PR by @​feiiiiii5)
  • Fixed BlockingPortalProvider permanently failing with an AttributeError on every subsequent use if the first attempt to start its blocking portal failed (#1350; PR by @​Yasser-Ameur)
  • Fixed create_udp_socket() silently ignoring the local_port argument when local_host was omitted, making the socket bind to a random ephemeral port instead of the requested one (#1351; PR by @​januththedev)
  • Fixed worker threads on the asyncio backend never returning to the idle pool (and thus never being reused or pruned) when a to_thread.run_sync() call was cancelled after it had been queued for the worker but before the worker thread had picked it up (#1352; PR by @​Zac-HD)
  • Fixed pytest plugin running Hypothesis async tests only on the first parametrized backend instead of each backend (#1353; PR by @​DYNOSuprovo)
  • Fixed TypeError when subclassing an existing TypedAttributeSet subclass, and this subclass contains type annotations (#1358; PR by @​pasmud)
  • Fixed Lock.locked() (and Condition.locked()) raising NoEventLoopError when the lock was created outside a running event loop (#1362; PR by @​00200200)
  • Fixed connect_tcp() leaking a connected socket when an enclosing cancel scope was cancelled before the connection attempt task group exited (#1364; PR by @​charan-rathore)
  • Fixed create_connected_udp_socket() silently ignoring local_port when local_host was not given: the local address was left unset, so the OS picked an ephemeral port instead of the requested one (#1365; PR by @​feiiiiii5)
  • Fixed BlockingPortalProvider not passing the exception raised in its with block on to the start_blocking_portal() context manager it wraps (#1366; PR by @​feiiiiii5)
  • Fixed anyio.itertools.islice() not consuming the first start items when stop <= start (#1372; PR by @​Rodrigo-Palma)
  • Fixed BufferedByteReceiveStream.receive_exactly() and receive_until() returning buffered data after explicit closure instead of raising ClosedResourceError (#1378; PR by @​kokotatan)
  • Fixed a TLS stream sending records the peer could no longer decrypt after a cancelled send() lost an already-encrypted record; the stream now raises BrokenResourceError on further use instead (#1385; PR by @​Kayvan-Zahiri)
  • Fixed close() on memory object streams not waking up tasks blocked in send() or receive() on the same stream (#1391)
  • Fixed anyio.itertools.product() acquiring and consuming unused input iterables when repeat=0 (#1394; PR by @​sricharanreddycheruku)
  • Fixed SpooledTemporaryFile rolling over to disk on writes when max_size is zero (the default) (#1397; PR by @​fhgffy)
  • Fixed Trio UDP sockets remaining open when initialization failed or was cancelled (#1400; PR by @​adenzhou1350)
  • Fixed SpooledTemporaryFile.rollover() moving the current file position to the end of the file (#1401; PR by @​fhgffy)
  • Fixed cancellation during temporary directory creation leaving the directory behind while its context manager is retained (#1403; PR by @​adenzhou1350)

... (truncated)

Commits
  • 0ddd02d Released version 4.16.0
  • 576892e Fixed certain pending tasks not woken up by the closing of memory object stre...
  • 02ff4f8 Added BlockingPortal.call_async() (#1343)
  • 1af29a4 Moved documentation code snippets into separate, checked files (#1445)
  • f01c041 [pre-commit.ci] pre-commit autoupdate (#1448)
  • 95a0143 Test with blockbuster and uvloop on Python 3.15 too
  • 4d51154 Modernized the memory object stream tests
  • 1e4b448 Fixed the as_connectable() example in the networking docs (#1442)
  • cd21b36 Fixed TypedAttributeSet not collecting annotations from superclasses (#1358)
  • b7f8c68 [pre-commit.ci] pre-commit autoupdate (#1431)
  • Additional commits viewable in compare view

Updates ast-serialize from 0.12.1 to 0.13.1

Commits

Updates certifi from 2026.7.22 to 2026.10.23
Updates coverage from 7.16.2 to 7.17.2

Release notes

Sourced from coverage's releases.

7.17.2

Version 7.17.2 — 2026-11-04

  • Fix: two different scenarios failed with “attempt to write a readonly database”. These were regressions in 7.17.1. They are fixed, closing issue 2356:
    • When using a version of SQLite older than 3.34.0, such as on RHEL 8 or Ubuntu 20.04, coverage combine (and pytest-cov, which combines automatically) always failed.
    • coverage combine and coverage debug data failed when a data file existed but had no coverage schema, for example an empty file left behind by a worker that died. A file we can’t read is now reported like any other unusable data file, and is left in place.

➡️  PyPI page: coverage 7.17.2. :arrow_right:  To install: python3 -m pip install coverage==7.17.2

7.17.1

Version 7.17.1 — 2026-11-03

  • Fix: a one-line class or function body immediately followed by another statement (such as class Foo: ... on its own line) was incorrectly reported as a missing branch when using the sys.monitoring core. This is now fixed, closing issue 2167 and issue 2337.
  • Fix: the HTML report only rewrites a file’s page when the file or its data has changed, but each page also links to the previous and next files. When the set of reported files changed, unchanged pages kept their old links. For example, with skip_covered, a file that became 100% covered had its page deleted, but the pages next to it still linked to it. Now a page is also rewritten when its neighbors change.
  • Fix: --fail-under now uses at least the decimal precision of the threshold for both the comparison and failure message. With precision=0, a total of 0.4 now passes --fail-under=0.3 and fails --fail-under=0.5 with the message “total of 0.4 is less than fail-under=0.5”. Previously, the comparison rounded the total to zero and the message could claim “1 is less than 0”. Closes issue 2295.
  • Fix: the HTML report escaped file names twice, so a name with &, <, or quotes in it was shown with entities like &amp;. Now they are properly escaped only once.
  • Fix: --source=/ measured no files. A file system root can’t be a source directory, so now it is an error. Closes issue 2291.
  • In an abundance of caution, prevent forged SQLite journal files from deleting files they shouldn’t.

➡️  PyPI page: coverage 7.17.1. :arrow_right:  To install: python3 -m pip install coverage==7.17.1

7.17.0

Version 7.17.0 — 2026-10-22

  • Dropped support for Python 3.10.
  • Binary wheels are now provided for ...

    Description has been truncated

…1 updates

Bumps the minor-and-patch group with 21 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [httpx2](https://github.com/pydantic/httpx2) | `2.13.1` | `2.16.0` |
| [mistralai](https://github.com/mistralai/client-python) | `3.2.0` | `3.7.0` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.1.1` | `9.2.0` |
| [reuse](https://github.com/RichardLitt/standard-readme) | `6.2.0` | `6.3.0` |
| [mypy](https://github.com/python/mypy) | `2.4.0` | `2.4.1` |
| [ruff](https://github.com/astral-sh/ruff) | `0.17.0` | `0.17.4` |
| [hatchling](https://github.com/pypa/hatch) | `1.32.4` | `1.33.0` |
| [anyio](https://github.com/agronholm/anyio) | `4.15.1` | `4.16.0` |
| [ast-serialize](https://github.com/mypyc/ast_serialize) | `0.12.1` | `0.13.1` |
| [certifi](https://github.com/certifi/python-certifi) | `2026.7.22` | `2026.10.23` |
| [coverage](https://github.com/coveragepy/coveragepy) | `7.16.2` | `7.17.2` |
| [httpcore2](https://github.com/pydantic/httpx2) | `2.13.1` | `2.16.0` |
| [jiter](https://github.com/pydantic/jiter) | `0.17.0` | `0.19.0` |
| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.1.0` | `1.2.0` |
| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.45.1` | `1.45.2` |
| [pluggy](https://github.com/pytest-dev/pluggy) | `1.6.0` | `1.7.0` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.14.0` | `2.14.3` |
| [pydantic-core](https://github.com/pydantic/pydantic) | `2.50.0` | `2.50.4` |
| [tomlkit](https://github.com/python-poetry/tomlkit) | `0.15.1` | `0.15.2` |
| [truststore](https://github.com/sethmlarson/truststore) | `0.10.4` | `0.10.5` |
| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.4` | `0.4.5` |



Updates `httpx2` from 2.13.1 to 2.16.0
- [Release notes](https://github.com/pydantic/httpx2/releases)
- [Changelog](https://github.com/pydantic/httpx2/blob/main/src/httpx2/CHANGELOG.md)
- [Commits](pydantic/httpx2@v2.13.1...v2.16.0)

Updates `mistralai` from 3.2.0 to 3.7.0
- [Release notes](https://github.com/mistralai/client-python/releases)
- [Changelog](https://github.com/mistralai/client-python/blob/main/RELEASES.md)
- [Commits](mistralai/client-python@v3.2.0...v3.7.0)

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 `reuse` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/RichardLitt/standard-readme/releases)
- [Commits](https://github.com/RichardLitt/standard-readme/commits)

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

Updates `ruff` from 0.17.0 to 0.17.4
- [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.17.0...0.17.4)

Updates `hatchling` from 1.32.4 to 1.33.0
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](pypa/hatch@hatchling-v1.32.4...hatchling-v1.33.0)

Updates `anyio` from 4.15.1 to 4.16.0
- [Release notes](https://github.com/agronholm/anyio/releases)
- [Commits](agronholm/anyio@4.15.1...4.16.0)

Updates `ast-serialize` from 0.12.1 to 0.13.1
- [Commits](mypyc/ast_serialize@v0.12.1...v0.13.1)

Updates `certifi` from 2026.7.22 to 2026.10.23
- [Commits](certifi/python-certifi@2026.07.22...2026.10.23)

Updates `coverage` from 7.16.2 to 7.17.2
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](coveragepy/coveragepy@7.16.2...7.17.2)

Updates `httpcore2` from 2.13.1 to 2.16.0
- [Release notes](https://github.com/pydantic/httpx2/releases)
- [Commits](pydantic/httpx2@v2.13.1...v2.16.0)

Updates `jiter` from 0.17.0 to 0.19.0
- [Release notes](https://github.com/pydantic/jiter/releases)
- [Commits](pydantic/jiter@v0.17.0...v0.19.0)

Updates `mypy-extensions` from 1.1.0 to 1.2.0
- [Commits](python/mypy_extensions@1.1.0...1.2.0)

Updates `opentelemetry-api` from 1.45.1 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.45.1...v1.45.2)

Updates `pluggy` from 1.6.0 to 1.7.0
- [Changelog](https://github.com/pytest-dev/pluggy/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pluggy@1.6.0...1.7.0)

Updates `pydantic` from 2.14.0 to 2.14.3
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](pydantic/pydantic@v2.14.0...v2.14.3)

Updates `pydantic-core` from 2.50.0 to 2.50.4
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](pydantic/pydantic@core-v2.50.0...core-v2.50.4)

Updates `tomlkit` from 0.15.1 to 0.15.2
- [Release notes](https://github.com/python-poetry/tomlkit/releases)
- [Changelog](https://github.com/python-poetry/tomlkit/blob/master/CHANGELOG.md)
- [Commits](python-poetry/tomlkit@0.15.1...0.15.2)

Updates `truststore` from 0.10.4 to 0.10.5
- [Release notes](https://github.com/sethmlarson/truststore/releases)
- [Changelog](https://github.com/sethmlarson/truststore/blob/main/CHANGELOG.md)
- [Commits](sethmlarson/truststore@v0.10.4...v0.10.5)

Updates `typing-inspection` from 0.4.4 to 0.4.5
- [Release notes](https://github.com/pydantic/typing-inspection/releases)
- [Changelog](https://github.com/pydantic/typing-inspection/blob/main/HISTORY.md)
- [Commits](pydantic/typing-inspection@v0.4.4...v0.4.5)

---
updated-dependencies:
- dependency-name: httpx2
  dependency-version: 2.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: mistralai
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: pytest
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: reuse
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: mypy
  dependency-version: 2.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: ruff
  dependency-version: 0.17.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: hatchling
  dependency-version: 1.33.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: anyio
  dependency-version: 4.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: ast-serialize
  dependency-version: 0.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: certifi
  dependency-version: 2026.10.23
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: coverage
  dependency-version: 7.17.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: httpcore2
  dependency-version: 2.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: jiter
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: mypy-extensions
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: opentelemetry-api
  dependency-version: 1.45.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: pluggy
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: pydantic
  dependency-version: 2.14.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: pydantic-core
  dependency-version: 2.50.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: tomlkit
  dependency-version: 0.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: truststore
  dependency-version: 0.10.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: typing-inspection
  dependency-version: 0.4.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from khanukov as a code owner November 9, 2026 17:20
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Nov 9, 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:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants