Repository navigation
fix(deps): update all non-major dependencies - #25
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
from
October 5, 2026 22:24
19311ac to
099de91
Compare
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
2 times, most recently
from
October 8, 2026 17:42
5771dd4 to
9e12d2b
Compare
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
8 times, most recently
from
October 16, 2026 02:40
3da8434 to
5af786d
Compare
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
11 times, most recently
from
October 27, 2026 05:10
fbe5e1f to
e158029
Compare
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
5 times, most recently
from
November 1, 2026 21:21
15999db to
d5b116e
Compare
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
from
November 3, 2026 04:41
d5b116e to
0ed18ac
Compare
renovate
Bot
force-pushed
the
renovate/all-minor-patch
branch
from
November 3, 2026 11:32
0ed18ac to
47cf347
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
5fda3b9→6d4fd22>=4.15.1→>=4.16.0dbcb813→81c6f93>=4.6.2→>=4.7.0>=2.13.5→>=2.14.2>=2.15.0→>=2.16.2>=9.1.1→>=9.2.0>=1.4.0→>=1.4.1.post13.14→3.15>=3.14.7→>=3.15.23.14-slim→3.15-slim3.14-slim→3.15-slim>=0.16.9→>=0.17.3Release Notes
agronholm/anyio (anyio)
v4.16.0Compare Source
New features
BlockingPortal.call_async()for asynchronously calling into an event loop with optional abandonment on cancellation (#1342; PR by @davidbrochart)connect_unix()andcreate_unix_listener()(#1349; PR by @theunkn0wn1)Other changes
send()wait until the datagram has been passed to the operating system (#1294; PR by @graingert)Bug fixes
use_uvloop=Truefalls 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)get_current_task()on the asyncio backend raising an opaqueTypeError: cannot create weak reference to 'NoneType' objectinstead of a clear error when called from a callback scheduled vialoop.call_soon_threadsafe()(e.g. from withinfrom_thread.run_sync()), whereasyncio.current_task()is legitimatelyNone(#773; PR by @AmirF194)CancelScopeon the asyncio backend swallowing a nativeTask.cancel()that was delivered in the same event loop iteration as the scope's own cancellation (such as amove_on_after()deadline expiring), which left the host task with a pending cancellation request that never raisedCancelledError(#1214)aclose_forcefully()calls on asyncio socket streams returning before the underlying socket was closed (#1273; PR by @graingert)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)aclose()on asyncio TCP socket listeners not checkpointing, and leaking the listening socket if cancelled while another task was waiting inaccept()(#1289; PR by @graingert)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)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) whilesend()was waiting for the operating system to accept the data (#1289; PR by @graingert)SocketStream.send()on the asyncio backend handing its data to a paused transport after a previoussend()was cancelled (#1299; PR by @graingert)sleep()treating a negative delay (including-inf) inconsistently across backends (asyncio returned immediately; Trio raisedValueError) by raisingValueErroron all backends (#1306; PR by @BetterAndBetterII)create_tcp_listener()occasionally failing with a message likeCould not create 2 listeners with a consistent portwhen 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)AsyncFilenot shielding against cancellation while closing (#1314)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)ValueError, which silently disabled the timeout (fail_after(math.nan)returned instead of raisingTimeoutError);CancelScopenow rejects it on both backends (#1317; PR by @dylanpulver)FileReadStreamandFileWriteStreamleaving files open when cancelled during context manager exit, including unflushed writes (#1318; PR by @Kuang-xianxin)Condition.notify()andCondition.notify_all()failing when the underlying lock was acquired directly rather than through the condition (#1319; PR by @GruffElixir)__file__, such as PyOxidizer, raisingTypeErrorinstead of falling back to eager imports (#1322; PR by @skulitom)Semaphore(fast_acquire=True)losing its fast-acquire behavior when instantiated outside a running event loop (#1348; PR by @feiiiiii5)BlockingPortalProviderpermanently failing with anAttributeErroron every subsequent use if the first attempt to start its blocking portal failed (#1350; PR by @Yasser-Ameur)create_udp_socket()silently ignoring thelocal_portargument whenlocal_hostwas omitted, making the socket bind to a random ephemeral port instead of the requested one (#1351; PR by @januththedev)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)TypeErrorwhen subclassing an existingTypedAttributeSetsubclass, and this subclass contains type annotations (#1358; PR by @pasmud)Lock.locked()(andCondition.locked()) raisingNoEventLoopErrorwhen the lock was created outside a running event loop (#1362; PR by @00200200)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)create_connected_udp_socket()silently ignoringlocal_portwhenlocal_hostwas not given: the local address was left unset, so the OS picked an ephemeral port instead of the requested one (#1365; PR by @feiiiiii5)BlockingPortalProvidernot passing the exception raised in itswithblock on to thestart_blocking_portal()context manager it wraps (#1366; PR by @feiiiiii5)anyio.itertools.islice()not consuming the firststartitems whenstop <= start(#1372; PR by @Rodrigo-Palma)BufferedByteReceiveStream.receive_exactly()andreceive_until()returning buffered data after explicit closure instead of raisingClosedResourceError(#1378; PR by @kokotatan)send()lost an already-encrypted record; the stream now raisesBrokenResourceErroron further use instead (#1385; PR by @Kayvan-Zahiri)close()on memory object streams not waking up tasks blocked insend()orreceive()on the same stream (#1391)anyio.itertools.product()acquiring and consuming unused input iterables whenrepeat=0(#1394; PR by @sricharanreddycheruku)SpooledTemporaryFilerolling over to disk on writes whenmax_sizeis zero (the default) (#1397; PR by @fhgffy)SpooledTemporaryFile.rollover()losing buffered contents (#1404; PR by @adenzhou1350)TextSendStream.send()re-emitting the byte order mark on every item with BOM-emitting encodings (utf-16,utf-32,utf-8-sig), which made the peer decode a stray\ufeffin front of every message after the first (#1405; PR by @feiiiiii5)EndOfStream(#1409; PR by @00200200)BlockingPortalcrashing withInvalidStateErrorwhen a future it returned was cancelled just as the callable was completing (#1410; PR by @adenzhou1350)UNIXSocketStream.send_fds()silently truncating messages on short socket writes (#1422; PR by @AryanRG)CapacityLimiter.acquire_on_behalf_of()on asyncio releasing the wrong borrower when the acquiring task was cancelled during the cancel-shielded checkpoint that runs after a non-blocking acquisitionpre-commit/pre-commit (pre-commit)
v4.7.0Compare Source
==================
Fixes
language: nodehooks during commit with-aor inside a submodule.pydantic/pydantic (pydantic)
v2.14.2: 2026-10-29Compare Source
v2.14.2 (2026-10-29)
This release addresses 2 security issues, GHSA-qpmf-fgh3-ff25 and GHSA-3r8g-cqwr-jr29.
Packaging
PyFrozenDictby @Viicos in #14003pydantic-corewheels for PyPy 8.0 (pp80ABI) by @Viicos in #14083Performance
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:
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
TypedDictand dataclasses withextra=allowby @Viicos in #14090. Addresses GHSA-3r8g-cqwr-jr29.Fix unpickling of generic classes defined in separate module by @Viicos in #13994
Support explicit
by_aliasoverridingvalidate_by_aliasin validation JSON schemas by @Viicos in #13997Fix mypy plugin crash on deferred empty model by @ilevkivskyi in #14027
Fix infinite recursion when validating an invalid default with
PydanticUseDefaultby @Viicos in #14028Implement recursion guard for
validate_strings()by @Viicos in #14029Support named tuples in
Sequenceserialization by @Viicos in #14033Take
preserve_empty_pathinto account in URL types equality by @Viicos in #14035Fix pickling of
PydanticCustomErrorandValidationErrors containing custom errors by @Viicos in #14051Do not extract attribute docstrings from nested classes and functions by @Viicos in #14052
Fix forward annotations evaluation and type variables substitution when rebuilding parametrized generic models by @Viicos in #14054
Fix
Selfresolution in parametrized generics by @Viicos in #14065Check mapping
max_lengthconstraint during validation by @Viicos in #14092Fix deep copy of self-referential models by @Viicos in #14116
Full Changelog: pydantic/pydantic@v2.14.1...v2.14.2
v2.14.1Compare Source
GitHub release
The code released in v2.5.0 is functionally identical to that of v2.5.0b1.
What's Changed
Packaging
pyright==1.1.335by @Viicos in #8075New Features
ValidationErrorerrors by @adriangb in #7806__doc__argument increate_model()by @chris-spann in #7863regex_engineflag - meaning you can use with the Rust or Python regex libraries in constraints by @utkini in #7768ComputedFieldInfoby @alexmojaki in #7889ruffformatter by @Luca-Blight in #7930validation_error_causeto config by @zakstucke in #7626CallableDiscriminatorandTagby @dmontagu in #7983CallableDiscriminatorrenamed toDiscriminatorby @dmontagu in #8047examplesandjson_schema_extrato@computed_fieldby @alexmojaki in #8013JsonValuetype by @dmontagu in #7998stras argument toDiscriminatorby @dmontagu in #8047SchemaSerializer.__reduce__method to enable pickle serialization by @edoakes in pydantic/pydantic-core#1006Changes
ultra_strictwith new smart union implementation, the way unions are validated has changed significantly to improve performance and correctness, we have worked hard to absolutely minimise the number of cases where behaviour has changed, see the PR for details - by @davidhewitt in pydantic/pydantic-core#867extra='allow'by @sydney-runkle in #7683Enumtypes with no cases by @sydney-runkle in #7927GenericbeforeBaseModelby @alexmojaki in #7891Performance
jiterby @samuelcolvin in pydantic/pydantic-core#974__getattr__for all package imports, improve import time by @samuelcolvin in #7947Fixes
mypyissue with subclasses ofRootModelby @sydney-runkle in #7677FieldInfowhen a forward ref gets evaluated by @dmontagu in #7698SecretStrfrom JSON (regression in v2.4) by @sydney-runkle in #7729defer_buildbehavior withTypeAdapterby @sydney-runkle in #7736mypyversions by @dmontagu in #7742TypeVarhandling when default is not set by @pmmmwh in #7719strictonEnumtype fields by @sydney-runkle in #7761weakref.refinstead of subclassing to fixcloudpickleserialization by @edoakes in #7780model_post_initin subclasses by @alexmojaki in #7775json_schema_extraby @alexmojaki in #7803strictspecification forUUIDtypes by @sydney-runkle in #7865pydantic.Field(kw_only=True)with inherited dataclasses by @PrettyWood in #7827validate_calldecorator for methods in classes with__slots__by @sydney-runkle in #7883dataclasses.fielddefault by @hramezani in #7898importlib_metadataon python 3.7 by @sydney-runkle in #7904|operator (Union) in PydanticRecursiveRef by @alexmojaki in #7892display_as_typeforTypeAliasTypein python 3.12 by @dmontagu in #7929NotRequiredgenerics inTypedDictby @sydney-runkle in #7932TypeAliasTypespecifications produce different schema definitions by @alexdrydew in #7893PrivateAttris passed fromAnnotateddefault position by @tabassco in #8004classmethodinstead ofclassmethod[Any, Any, Any]by @Mr-Pepe in #7979Optionalfield withvalidate_defaultonly performing one field validation by @sydney-runkle in pydantic/pydantic-core#1002definition-refbug withDictkeys by @sydney-runkle in pydantic/pydantic-core#1014booltypes withcoerce_numbers_to_str=Trueby @sydney-runkle in pydantic/pydantic-core#1017NaNin float and decimal constraints by @davidhewitt in pydantic/pydantic-core#1037lax_strandlax_intsupport for enum values not inherited from str/int by @michaelhly in pydantic/pydantic-core#1015UnionofListtypes by @sydney-runkle in pydantic/pydantic-core#1039max_digitsanddecimalsto pass if normalized or non-normalized input is valid by @sydney-runkle in pydantic/pydantic-core#1049ValidationErrormessages by @Iipin in pydantic/pydantic-core#1050'-'asdatetimeinput by @davidhewitt in pydantic/speedate#52 & pydantic/pydantic-core#1060New Contributors
pydanticpydantic-corev2.14.0Compare Source
GitHub release
What's Changed
The highlights of the v2.14 release are available in the blog post.
Several minor changes (considered non-breaking changes according to our versioning policy)
are also included in this release. Make sure to look into them before upgrading.
This release drops support for Python 3.9 and adds support for Python 3.15.
New Features
multiple_ofconstraint infractionandtimedeltacore schemas by @Viicos in #13873__namespace__parameter tocreate_model()by @Viicos in #13895Changes
ordered-dictcore schema by @Viicos in #13796countercore schema by @Viicos in #13824model_configattribute by @Viicos in #13825NameEmailvalidation by @Viicos in #13897Fixes
string_sub_typeunused error code by @Viicos in #13821OverflowErrorduringByteSizevalidation by @Viicos in #13850multiple_ofconstraints to be positive by @Viicos in #13862TypeErrorgracefully during docstring extraction by @Viicos in #13874TypedDicts in JSON Schema by @Viicos in #13891ser_json_timedeltato all datetime types in serialization inference by @Viicos in #13892initandkw_only=FalsefromField()to stdlib dataclass fields by @Viicos in #13898ZoneInfovalidation by @Viicos in #13912Decimalvalidation by @Viicos in #13940Fractionvalidation by @Viicos in #13944New Contributors
pydantic/pydantic-settings (pydantic-settings)
v2.16.2Compare Source
v2.16.1Compare Source
Highlights
This patch release fixes two CLI regressions introduced in 2.16.0.
Bug fixes
CLI
CliPositionalArg[tuple[int, int]]andNamedTuples are single-valued again (#1069). Since 2.16.0 they were treated as variadic, so a CLI either refused to start with aSettingsErroror put the wrong argument into the tuple. Variable-length tuples (tuple[int, ...]and bareTuple) are still variadic.type ListOfDict = list[dict[str, int]], accepts a JSON list again (#1049). Since 2.16.0,--xx '[{"a":1},{"b":2}]'was merged into the single dict{"a": 1, "b": 2}and failed validation.All changes (including dependency bumps and internal maintenance)
What's Changed
Full Changelog: pydantic/pydantic-settings@v2.16.0...v2.16.1
v2.16.0Compare Source
Highlights
Breaking changes and behavior changes
tomlifallback is gone in favor of stdlibtomllib; thetomlextra is kept as an empty extra sopip install pydantic-settings[toml]keeps working.python-dotenv>=1.2.2is now required (#971) to pick up the fix for CVE-2026-28684.validate_by_alias=False(#1033). Env vars, secrets, CLI flags and defaults now use only field names, matching pydantic. An env var named after the alias is now ignored instead of raisingextra_forbidden, and the CLI exposes--applerather than--pomo.validation_aliastakes precedence overalias(#1038). When the two differ, values from JSON/YAML/TOML files and the CLI were silently ignored; they now load. CLI help lists thevalidation_aliasflag first, andCliApp.serializeemits it.case_sensitive=False, args after--and those captured byCliUnknownArgskeep their case (-Xmx4Gno longer becomes-xmx4g). Unrecognized options are now reported as typed (--NOPEinstead of--nope).json_file_encoding/yaml_file_encodingstill override it.nested_model_default_partial_update=True: the default is only dropped when the incoming value selects a different union member.New features
CliApp.runandvalidate_by_alias=Falsehandling; both are fixed.Settings.settings_cached()andSettings.settings_clear_cache()(#952). These give you a process-local singleton per settings class without hand-rollinglru_cachewrappers. Calling the class directly still builds a fresh instance.AWSSystemsManagerSettingsSource(#941). It recursively reads every parameter under anssm_path, with/mapping onto nested models. Install it with the newaws-systems-managerextra.env_file_depth(#940) lets a relativeenv_filebe found in parent directories, mirroringpyproject_toml_depth. This is useful when scripts run from a subdirectory of a monorepo. It defaults to0, which keeps the current behavior.CliVariadicArgfor named variadic options (#949, #958). It accepts--param a b cin addition to repeated--param a --param b. Required fields need at least one value.Bug fixes
CLI
CliApp.serializeoutput now round-trips throughCliApp.runfor enums, tuples, dates andDecimals (#988), explicitNonevalues (#981), empty containers (#1008),CliVariadicArgvalues (#976) and populatedCliUnknownArgsfields, which previously raisedIndexError(#992).--items []) now give an empty list instead of[''](#994).frozenset,MutableSequenceand other collection subtypes are now treated as repeatable/variadic options (#972), and so are named collection type aliases such asTypeAliasType('Addrs', list[IPvAnyAddress])(#1032).cli_exit_on_error=Falseis now honored inCliSubCommandparsers, which raiseSettingsErrorinstead of exiting ([#977](https://redirect.github.com/pydantic/pydantic-settings/