-
Notifications
You must be signed in to change notification settings - Fork 243
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding tagged union serializer 🚀 #1397
Conversation
first pass, nothing working yet -- tagged union serializer still very much a wip, but wanted to checkpoint another checkpoint cleaning
CodSpeed Performance ReportMerging #1397 will not alter performanceComparing Summary
|
I'd love some feedback on my |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looking solid, a few thoughts / questions!
Was wondering: will this require any additional changes in from typing import Literal, Union
from pydantic import BaseModel, Field, ValidationError
class Cat(BaseModel):
pet_type: Literal['cat']
meows: int
class Dog(BaseModel):
pet_type: Literal['dog']
barks: float
class Model(BaseModel):
pet: Union[Cat, Dog] = Field(..., discriminator='pet_type')
assert Model.model_validate({"pet": {"pet_type": "dog", barks: 1.0}}).model_dump() == {"pet": {"pet_type": "dog", barks: 1.0}} |
Good question - the above will work out of the box @Viicos! 🚀 |
I think this error is fine with the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with one final step...
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `2.8.2` -> `2.9.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.8.2/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.8.2/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.9.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v290-2024-09-05) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.8.2...v2.9.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.9.0) The code released in v2.9.0 is practically identical to that of v2.9.0b2. ##### What's Changed ##### Packaging - Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9801](https://github.com/pydantic/pydantic/pull/9801) - Bump `pydantic-extra-types` to `v2.9.0` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9832](https://github.com/pydantic/pydantic/pull/9832) - Support compatibility with `pdm v2.18.1` by [@​Viicos](https://github.com/Viicos) in [#​10138](https://github.com/pydantic/pydantic/pull/10138) - Bump `v1` version stub to `v1.10.18` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10214](https://github.com/pydantic/pydantic/pull/10214) - Bump `pydantic-core` to `v2.23.2` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10311](https://github.com/pydantic/pydantic/pull/10311) ##### New Features - Add support for `ZoneInfo` by [@​Youssefares](https://github.com/Youssefares) in [#​9896](https://github.com/pydantic/pydantic/pull/9896) - Add `Config.val_json_bytes` by [@​josh-newman](https://github.com/josh-newman) in [#​9770](https://github.com/pydantic/pydantic/pull/9770) - Add DSN for Snowflake by [@​aditkumar72](https://github.com/aditkumar72) in [#​10128](https://github.com/pydantic/pydantic/pull/10128) - Support `complex` number by [@​changhc](https://github.com/changhc) in [#​9654](https://github.com/pydantic/pydantic/pull/9654) - Add support for `annotated_types.Not` by [@​aditkumar72](https://github.com/aditkumar72) in [#​10210](https://github.com/pydantic/pydantic/pull/10210) - Allow `WithJsonSchema` to inject `$ref`s w/ `http` or `https` links by [@​dAIsySHEng1](https://github.com/dAIsySHEng1) in [#​9863](https://github.com/pydantic/pydantic/pull/9863) - Allow validators to customize validation JSON schema by [@​Viicos](https://github.com/Viicos) in [#​10094](https://github.com/pydantic/pydantic/pull/10094) - Support parametrized `PathLike` types by [@​nix010](https://github.com/nix010) in [#​9764](https://github.com/pydantic/pydantic/pull/9764) - Add tagged union serializer that attempts to use `str` or `callable` discriminators to select the correct serializer by [@​sydney-runkle](https://github.com/sydney-runkle) in in [pydantic/pydantic-core#1397](https://github.com/pydantic/pydantic-core/pull/1397) ##### Changes - Breaking Change: Merge `dict` type `json_schema_extra` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9792](https://github.com/pydantic/pydantic/pull/9792) - For more info (how to replicate old behavior) on this change, see [here](https://docs.pydantic.dev/dev/concepts/json_schema/#merging-json_schema_extra) - Refactor annotation injection for known (often generic) types by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9979](https://github.com/pydantic/pydantic/pull/9979) - Move annotation compatibility errors to validation phase by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9999](https://github.com/pydantic/pydantic/pull/9999) - Improve runtime errors for string constraints like `pattern` for incompatible types by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10158](https://github.com/pydantic/pydantic/pull/10158) - Remove `'allOf'` JSON schema workarounds by [@​dpeachey](https://github.com/dpeachey) in [#​10029](https://github.com/pydantic/pydantic/pull/10029) - Remove `typed_dict_cls` data from `CoreMetadata` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10180](https://github.com/pydantic/pydantic/pull/10180) - Deprecate passing a dict to the `Examples` class by [@​Viicos](https://github.com/Viicos) in [#​10181](https://github.com/pydantic/pydantic/pull/10181) - Remove `initial_metadata` from internal metadata construct by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10194](https://github.com/pydantic/pydantic/pull/10194) - Use `re.Pattern.search` instead of `re.Pattern.match` for consistency with `rust` behavior by [@​tinez](https://github.com/tinez) in [pydantic/pydantic-core#1368](https://github.com/pydantic/pydantic-core/pull/1368) - Show value of wrongly typed data in `pydantic-core` serialization warning by [@​BoxyUwU](https://github.com/BoxyUwU) in [pydantic/pydantic-core#1377](https://github.com/pydantic/pydantic-core/pull/1377) - Breaking Change: in `pydantic-core`, change `metadata` type hint in core schemas from `Any` -> `Dict[str, Any] | None` by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1411](https://github.com/pydantic/pydantic-core/pull/1411) - Raise helpful warning when `self` isn't returned from model validator by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10255](https://github.com/pydantic/pydantic/pull/10255) ##### Performance - Initial start at improving import times for modules, using caching primarily by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10009](https://github.com/pydantic/pydantic/pull/10009) - Using cached internal import for `BaseModel` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10013](https://github.com/pydantic/pydantic/pull/10013) - Simplify internal generics logic - remove generator overhead by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10059](https://github.com/pydantic/pydantic/pull/10059) - Remove default module globals from types namespace by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10123](https://github.com/pydantic/pydantic/pull/10123) - Performance boost: skip caching parent namespaces in most cases by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10113](https://github.com/pydantic/pydantic/pull/10113) - Update ns stack with already copied ns by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10267](https://github.com/pydantic/pydantic/pull/10267) ##### Minor Internal Improvements - ⚡️ Speed up `multiple_of_validator()` by 31% in `pydantic/_internal/_validators.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9839](https://github.com/pydantic/pydantic/pull/9839) - ⚡️ Speed up `ModelPrivateAttr.__set_name__()` by 18% in `pydantic/fields.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9841](https://github.com/pydantic/pydantic/pull/9841) - ⚡️ Speed up `dataclass()` by 7% in `pydantic/dataclasses.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9843](https://github.com/pydantic/pydantic/pull/9843) - ⚡️ Speed up function `_field_name_for_signature` by 37% in `pydantic/_internal/_signature.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9951](https://github.com/pydantic/pydantic/pull/9951) - ⚡️ Speed up method `GenerateSchema._unpack_refs_defs` by 26% in `pydantic/_internal/_generate_schema.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9949](https://github.com/pydantic/pydantic/pull/9949) - ⚡️ Speed up function `apply_each_item_validators` by 100% in `pydantic/_internal/_generate_schema.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9950](https://github.com/pydantic/pydantic/pull/9950) - ⚡️ Speed up method `ConfigWrapper.core_config` by 28% in `pydantic/_internal/_config.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9953](https://github.com/pydantic/pydantic/pull/9953) ##### Fixes - Respect `use_enum_values` on `Literal` types by [@​kwint](https://github.com/kwint) in [#​9787](https://github.com/pydantic/pydantic/pull/9787) - Prevent type error for exotic `BaseModel/RootModel` inheritance by [@​dmontagu](https://github.com/dmontagu) in [#​9913](https://github.com/pydantic/pydantic/pull/9913) - Fix typing issue with field_validator-decorated methods by [@​dmontagu](https://github.com/dmontagu) in [#​9914](https://github.com/pydantic/pydantic/pull/9914) - Replace `str` type annotation with `Any` in validator factories in documentation on validators by [@​maximilianfellhuber](https://github.com/maximilianfellhuber) in [#​9885](https://github.com/pydantic/pydantic/pull/9885) - Fix `ComputedFieldInfo.wrapped_property` pointer when a property setter is assigned by [@​tlambert03](https://github.com/tlambert03) in [#​9892](https://github.com/pydantic/pydantic/pull/9892) - Fix recursive typing of `main.IncEnx` by [@​tlambert03](https://github.com/tlambert03) in [#​9924](https://github.com/pydantic/pydantic/pull/9924) - Allow usage of `type[Annotated[...]]` by [@​Viicos](https://github.com/Viicos) in [#​9932](https://github.com/pydantic/pydantic/pull/9932) - `mypy` plugin: handle frozen fields on a per-field basis by [@​dmontagu](https://github.com/dmontagu) in [#​9935](https://github.com/pydantic/pydantic/pull/9935) - Fix typo in `invalid-annotated-type` error code by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9948](https://github.com/pydantic/pydantic/pull/9948) - Simplify schema generation for `uuid`, `url`, and `ip` types by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9975](https://github.com/pydantic/pydantic/pull/9975) - Move `date` schemas to `_generate_schema.py` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9976](https://github.com/pydantic/pydantic/pull/9976) - Move `decimal.Decimal` validation to `_generate_schema.py` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9977](https://github.com/pydantic/pydantic/pull/9977) - Simplify IP address schema in `_std_types_schema.py` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9959](https://github.com/pydantic/pydantic/pull/9959) - Fix type annotations for some potentially generic `GenerateSchema.match_type` options by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9961](https://github.com/pydantic/pydantic/pull/9961) - Add class name to "has conflict" warnings by [@​msabramo](https://github.com/msabramo) in [#​9964](https://github.com/pydantic/pydantic/pull/9964) - Fix `dataclass` ignoring `default_factory` passed in Annotated by [@​kc0506](https://github.com/kc0506) in [#​9971](https://github.com/pydantic/pydantic/pull/9971) - Fix `Sequence` ignoring `discriminator` by [@​kc0506](https://github.com/kc0506) in [#​9980](https://github.com/pydantic/pydantic/pull/9980) - Fix typing for `IPvAnyAddress` and `IPvAnyInterface` by [@​haoyun](https://github.com/haoyun) in [#​9990](https://github.com/pydantic/pydantic/pull/9990) - Fix false positives on v1 models in `mypy` plugin for `from_orm` check requiring from_attributes=True config by [@​radekwlsk](https://github.com/radekwlsk) in [#​9938](https://github.com/pydantic/pydantic/pull/9938) - Apply `strict=True` to `__init__` in `mypy` plugin by [@​kc0506](https://github.com/kc0506) in [#​9998](https://github.com/pydantic/pydantic/pull/9998) - Refactor application of `deque` annotations by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10018](https://github.com/pydantic/pydantic/pull/10018) - Raise a better user error when failing to evaluate a forward reference by [@​Viicos](https://github.com/Viicos) in [#​10030](https://github.com/pydantic/pydantic/pull/10030) - Fix evaluation of `__pydantic_extra__` annotation in specific circumstances by [@​Viicos](https://github.com/Viicos) in [#​10070](https://github.com/pydantic/pydantic/pull/10070) - Fix `frozen` enforcement for `dataclasses` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10066](https://github.com/pydantic/pydantic/pull/10066) - Remove logic to handle unused `__get_pydantic_core_schema__` signature by [@​Viicos](https://github.com/Viicos) in [#​10075](https://github.com/pydantic/pydantic/pull/10075) - Use `is_annotated` consistently by [@​Viicos](https://github.com/Viicos) in [#​10095](https://github.com/pydantic/pydantic/pull/10095) - Fix `PydanticDeprecatedSince26` typo by [@​kc0506](https://github.com/kc0506) in [#​10101](https://github.com/pydantic/pydantic/pull/10101) - Improve `pyright` tests, refactor model decorators signatures by [@​Viicos](https://github.com/Viicos) in [#​10092](https://github.com/pydantic/pydantic/pull/10092) - Fix `ip` serialization logic by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10112](https://github.com/pydantic/pydantic/pull/10112) - Warn when frozen defined twice for `dataclasses` by [@​mochi22](https://github.com/mochi22) in [#​10082](https://github.com/pydantic/pydantic/pull/10082) - Do not compute JSON Schema default when plain serializers are used with `when_used` set to `'json-unless-none'` and the default value is `None` by [@​Viicos](https://github.com/Viicos) in [#​10121](https://github.com/pydantic/pydantic/pull/10121) - Fix `ImportString` special cases by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10137](https://github.com/pydantic/pydantic/pull/10137) - Blacklist default globals to support exotic user code with `__` prefixed annotations by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10136](https://github.com/pydantic/pydantic/pull/10136) - Handle `nullable` schemas with `serialization` schema available during JSON Schema generation by [@​Viicos](https://github.com/Viicos) in [#​10132](https://github.com/pydantic/pydantic/pull/10132) - Reorganize `BaseModel` annotations by [@​kc0506](https://github.com/kc0506) in [#​10110](https://github.com/pydantic/pydantic/pull/10110) - Fix core schema simplification when serialization schemas are involved in specific scenarios by [@​Viicos](https://github.com/Viicos) in [#​10155](https://github.com/pydantic/pydantic/pull/10155) - Add support for stringified annotations when using `PrivateAttr` with `Annotated` by [@​Viicos](https://github.com/Viicos) in [#​10157](https://github.com/pydantic/pydantic/pull/10157) - Fix JSON Schema `number` type for literal and enum schemas by [@​Viicos](https://github.com/Viicos) in [#​10172](https://github.com/pydantic/pydantic/pull/10172) - Fix JSON Schema generation of fields with plain validators in serialization mode by [@​Viicos](https://github.com/Viicos) in [#​10167](https://github.com/pydantic/pydantic/pull/10167) - Fix invalid JSON Schemas being generated for functions in certain scenarios by [@​Viicos](https://github.com/Viicos) in [#​10188](https://github.com/pydantic/pydantic/pull/10188) - Make sure generated JSON Schemas are valid in tests by [@​Viicos](https://github.com/Viicos) in [#​10182](https://github.com/pydantic/pydantic/pull/10182) - Fix key error with custom serializer by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10200](https://github.com/pydantic/pydantic/pull/10200) - Add 'wss' for allowed schemes in NatsDsn by [@​swelborn](https://github.com/swelborn) in [#​10224](https://github.com/pydantic/pydantic/pull/10224) - Fix `Mapping` and `MutableMapping` annotations to use mapping schema instead of dict schema by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10020](https://github.com/pydantic/pydantic/pull/10020) - Fix JSON Schema generation for constrained dates by [@​Viicos](https://github.com/Viicos) in [#​10185](https://github.com/pydantic/pydantic/pull/10185) - Fix discriminated union bug regression when using enums by [@​kfreezen](https://github.com/kfreezen) in [pydantic/pydantic-core#1286](https://github.com/pydantic/pydantic-core/pull/1286) - Fix `field_serializer` with computed field when using `*` by [@​nix010](https://github.com/nix010) in [pydantic/pydantic-core#1349](https://github.com/pydantic/pydantic-core/pull/1349) - Try each option in `Union` serializer before inference by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1398](https://github.com/pydantic/pydantic-core/pull/1398) - Fix `float` serialization behavior in `strict` mode by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1400](https://github.com/pydantic/pydantic-core/pull/1400) - Introduce `exactness` into Decimal validation logic to improve union validation behavior by [@​sydney-runkle](https://github.com/sydney-runkle) in in [pydantic/pydantic-core#1405](https://github.com/pydantic/pydantic-core/pull/1405) - Fix new warnings assertions to use `pytest.warns()` by [@​mgorny](https://github.com/mgorny) in [#​10241](https://github.com/pydantic/pydantic/pull/10241) - Fix a crash when cleaning the namespace in `ModelMetaclass` by [@​Viicos](https://github.com/Viicos) in [#​10242](https://github.com/pydantic/pydantic/pull/10242) - Fix parent namespace issue with model rebuilds by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10257](https://github.com/pydantic/pydantic/pull/10257) - Remove defaults filter for namespace by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10261](https://github.com/pydantic/pydantic/pull/10261) - Use identity instead of equality after validating model in `__init__` by [@​Viicos](https://github.com/Viicos) in [#​10264](https://github.com/pydantic/pydantic/pull/10264) - Support `BigInt` serialization for `int` subclasses by [@​kxx317](https://github.com/kxx317) in [pydantic/pydantic-core#1417](https://github.com/pydantic/pydantic-core/pull/1417) - Support signature for wrap validators without `info` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10277](https://github.com/pydantic/pydantic/pull/10277) - Ensure `__pydantic_complete__` is set when rebuilding `dataclasses` by [@​Viicos](https://github.com/Viicos) in [#​10291](https://github.com/pydantic/pydantic/pull/10291) - Respect `schema_generator` config value in `TypeAdapter` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10300](https://github.com/pydantic/pydantic/pull/10300) ##### New Contributors ##### `pydantic` - [@​kwint](https://github.com/kwint) made their first contribution in [#​9787](https://github.com/pydantic/pydantic/pull/9787) - [@​seekinginfiniteloop](https://github.com/seekinginfiniteloop) made their first contribution in [#​9822](https://github.com/pydantic/pydantic/pull/9822) - [@​a-alexander](https://github.com/a-alexander) made their first contribution in [#​9848](https://github.com/pydantic/pydantic/pull/9848) - [@​maximilianfellhuber](https://github.com/maximilianfellhuber) made their first contribution in [#​9885](https://github.com/pydantic/pydantic/pull/9885) - [@​karmaBonfire](https://github.com/karmaBonfire) made their first contribution in [#​9945](https://github.com/pydantic/pydantic/pull/9945) - [@​s-rigaud](https://github.com/s-rigaud) made their first contribution in [#​9958](https://github.com/pydantic/pydantic/pull/9958) - [@​msabramo](https://github.com/msabramo) made their first contribution in [#​9964](https://github.com/pydantic/pydantic/pull/9964) - [@​DimaCybr](https://github.com/DimaCybr) made their first contribution in [#​9972](https://github.com/pydantic/pydantic/pull/9972) - [@​kc0506](https://github.com/kc0506) made their first contribution in [#​9971](https://github.com/pydantic/pydantic/pull/9971) - [@​haoyun](https://github.com/haoyun) made their first contribution in [#​9990](https://github.com/pydantic/pydantic/pull/9990) - [@​radekwlsk](https://github.com/radekwlsk) made their first contribution in [#​9938](https://github.com/pydantic/pydantic/pull/9938) - [@​dpeachey](https://github.com/dpeachey) made their first contribution in [#​10029](https://github.com/pydantic/pydantic/pull/10029) - [@​BoxyUwU](https://github.com/BoxyUwU) made their first contribution in [#​10085](https://github.com/pydantic/pydantic/pull/10085) - [@​mochi22](https://github.com/mochi22) made their first contribution in [#​10082](https://github.com/pydantic/pydantic/pull/10082) - [@​aditkumar72](https://github.com/aditkumar72) made their first contribution in [#​10128](https://github.com/pydantic/pydantic/pull/10128) - [@​changhc](https://github.com/changhc) made their first contribution in [#​9654](https://github.com/pydantic/pydantic/pull/9654) - [@​insumanth](https://github.com/insumanth) made their first contribution in [#​10229](https://github.com/pydantic/pydantic/pull/10229) - [@​AdolfoVillalobos](https://github.com/AdolfoVillalobos) made their first contribution in [#​10240](https://github.com/pydantic/pydantic/pull/10240) - [@​bllchmbrs](https://github.com/bllchmbrs) made their first contribution in [#​10270](https://github.com/pydantic/pydantic/pull/10270) ##### `pydantic-core` - [@​kfreezen](https://github.com/kfreezen) made their first contribution in [pydantic/pydantic-core#1286](https://github.com/pydantic/pydantic-core/pull/1286) - [@​tinez](https://github.com/tinez) made their first contribution in [pydantic/pydantic-core#1368](https://github.com/pydantic/pydantic-core/pull/1368) - [@​fft001](https://github.com/fft001) made their first contribution in [pydantic/pydantic-core#1362](https://github.com/pydantic/pydantic-core/pull/1362) - [@​nix010](https://github.com/nix010) made their first contribution in [pydantic/pydantic-core#1349](https://github.com/pydantic/pydantic-core/pull/1349) - [@​BoxyUwU](https://github.com/BoxyUwU) made their first contribution in [pydantic/pydantic-core#1379](https://github.com/pydantic/pydantic-core/pull/1379) - [@​candleindark](https://github.com/candleindark) made their first contribution in [pydantic/pydantic-core#1404](https://github.com/pydantic/pydantic-core/pull/1404) - [@​changhc](https://github.com/changhc) made their first contribution in [pydantic/pydantic-core#1331](https://github.com/pydantic/pydantic-core/pull/1331) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/spiraldb/ziggy-pydust). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@headlessui/react](https://github.com/tailwindlabs/headlessui) ([source](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react)) | [`2.1.3` -> `2.1.5`](https://renovatebot.com/diffs/npm/@headlessui%2freact/2.1.3/2.1.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@headlessui%2freact/2.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@headlessui%2freact/2.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@headlessui%2freact/2.1.3/2.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@headlessui%2freact/2.1.3/2.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) | [`0.5.8` -> `0.5.9`](https://renovatebot.com/diffs/npm/@tailwindcss%2fforms/0.5.8/0.5.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fforms/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fforms/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fforms/0.5.8/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fforms/0.5.8/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.16.3` -> `20.16.5`](https://renovatebot.com/diffs/npm/@types%2fnode/20.16.3/20.16.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.16.3/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.16.3/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [ai](https://sdk.vercel.ai/docs) ([source](https://github.com/vercel/ai)) | [`3.3.25` -> `3.3.30`](https://renovatebot.com/diffs/npm/ai/3.3.25/3.3.30) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ai/3.3.30?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ai/3.3.30?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ai/3.3.25/3.3.30?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ai/3.3.25/3.3.30?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [eslint-config-next](https://nextjs.org/docs/app/building-your-application/configuring/eslint#eslint-config) ([source](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)) | [`14.2.7` -> `14.2.8`](https://renovatebot.com/diffs/npm/eslint-config-next/14.2.7/14.2.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-next/14.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-next/14.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-next/14.2.7/14.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-next/14.2.7/14.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [guardrails-ai](https://www.guardrailsai.com/) | `0.5.6` -> `0.5.7` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/guardrails-ai/0.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/guardrails-ai/0.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/guardrails-ai/0.5.6/0.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/guardrails-ai/0.5.6/0.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [next](https://nextjs.org) ([source](https://github.com/vercel/next.js)) | [`14.2.7` -> `14.2.8`](https://renovatebot.com/diffs/npm/next/14.2.7/14.2.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/next/14.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/next/14.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/next/14.2.7/14.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/next/14.2.7/14.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [openai](https://github.com/openai/openai-python) | `1.43.0` -> `1.44.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/openai/1.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/openai/1.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/openai/1.43.0/1.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/openai/1.43.0/1.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [openai](https://github.com/openai/openai-node) | [`4.57.0` -> `4.58.1`](https://renovatebot.com/diffs/npm/openai/4.57.0/4.58.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.58.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.58.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.57.0/4.58.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.57.0/4.58.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [postcss](https://postcss.org/) ([source](https://github.com/postcss/postcss)) | [`8.4.44` -> `8.4.45`](https://renovatebot.com/diffs/npm/postcss/8.4.44/8.4.45) | [![age](https://developer.mend.io/api/mc/badges/age/npm/postcss/8.4.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss/8.4.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss/8.4.44/8.4.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss/8.4.44/8.4.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `2.8.2` -> `2.9.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic/2.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pydantic/2.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pydantic/2.8.2/2.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic/2.8.2/2.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [typescript](https://www.typescriptlang.org/) ([source](https://github.com/microsoft/TypeScript)) | [`5.5.4` -> `5.6.2`](https://renovatebot.com/diffs/npm/typescript/5.5.4/5.6.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.5.4/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.5.4/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>tailwindlabs/headlessui (@​headlessui/react)</summary> ### [`v2.1.5`](https://github.com/tailwindlabs/headlessui/blob/HEAD/packages/@​headlessui-react/CHANGELOG.md#215---2024-09-04) [Compare Source](https://github.com/tailwindlabs/headlessui/compare/@headlessui/[email protected]...@headlessui/[email protected]) ##### Fixed - Fix transition bug on Firefox, triggered by clicking the `PopoverButton` in rapid succession ([#​3452](https://github.com/tailwindlabs/headlessui/pull/3452)) ### [`v2.1.4`](https://github.com/tailwindlabs/headlessui/blob/HEAD/packages/@​headlessui-react/CHANGELOG.md#214---2024-09-03) [Compare Source](https://github.com/tailwindlabs/headlessui/compare/@headlessui/[email protected]...@headlessui/[email protected]) ##### Fixed - Fix components not closing properly when using the `transition` prop ([#​3448](https://github.com/tailwindlabs/headlessui/pull/3448)) </details> <details> <summary>tailwindlabs/tailwindcss-forms (@​tailwindcss/forms)</summary> ### [`v0.5.9`](https://github.com/tailwindlabs/tailwindcss-forms/blob/HEAD/CHANGELOG.md#059---2024-09-05) [Compare Source](https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.8...v0.5.9) ##### Fixed - Fallback to static chevron color if theme is using variables ([#​167](https://github.com/tailwindlabs/tailwindcss-forms/pull/167)) </details> <details> <summary>vercel/ai (ai)</summary> ### [`v3.3.30`](https://github.com/vercel/ai/releases/tag/ai%403.3.30) [Compare Source](https://github.com/vercel/ai/compare/[email protected]@3.3.30) ##### Patch Changes - [`6ee1f8e`](https://github.com/vercel/ai/commit/6ee1f8e): feat (ai/core): add toDataStream to streamText result ### [`v3.3.29`](https://github.com/vercel/ai/releases/tag/ai%403.3.29) [Compare Source](https://github.com/vercel/ai/compare/[email protected]@3.3.29) ##### Patch Changes - [`1e3dfd2`](https://github.com/vercel/ai/commit/1e3dfd2): feat (ai/core): enhance pipeToData/TextStreamResponse methods ### [`v3.3.28`](https://github.com/vercel/ai/releases/tag/ai%403.3.28) [Compare Source](https://github.com/vercel/ai/compare/[email protected]@3.3.28) ##### Patch Changes - [`db61c53`](https://github.com/vercel/ai/commit/db61c53): feat (ai/core): middleware support ### [`v3.3.27`](https://github.com/vercel/ai/releases/tag/ai%403.3.27) [Compare Source](https://github.com/vercel/ai/compare/[email protected]@3.3.27) ##### Patch Changes - [`03313cd`](https://github.com/vercel/ai/commit/03313cd): feat (ai): expose response id, response model, response timestamp in telemetry and api - [`3be7c1c`](https://github.com/vercel/ai/commit/3be7c1c): fix (provider/anthropic): support prompt caching on assistant messages - Updated dependencies \[[`03313cd`](https://github.com/vercel/ai/commit/03313cd)] - Updated dependencies \[[`3be7c1c`](https://github.com/vercel/ai/commit/3be7c1c)] - [@​ai-sdk/provider-utils](https://github.com/ai-sdk/provider-utils)[@​1](https://github.com/1).0.18 - [@​ai-sdk/provider](https://github.com/ai-sdk/provider)[@​0](https://github.com/0).0.23 - [@​ai-sdk/react](https://github.com/ai-sdk/react)[@​0](https://github.com/0).0.55 - [@​ai-sdk/solid](https://github.com/ai-sdk/solid)[@​0](https://github.com/0).0.44 - [@​ai-sdk/svelte](https://github.com/ai-sdk/svelte)[@​0](https://github.com/0).0.46 - [@​ai-sdk/ui-utils](https://github.com/ai-sdk/ui-utils)[@​0](https://github.com/0).0.41 - [@​ai-sdk/vue](https://github.com/ai-sdk/vue)[@​0](https://github.com/0).0.46 ### [`v3.3.26`](https://github.com/vercel/ai/releases/tag/ai%403.3.26) [Compare Source](https://github.com/vercel/ai/compare/[email protected]@3.3.26) ##### Patch Changes - Updated dependencies \[[`4ab883f`](https://github.com/vercel/ai/commit/4ab883f)] - [@​ai-sdk/react](https://github.com/ai-sdk/react)[@​0](https://github.com/0).0.54 </details> <details> <summary>vercel/next.js (eslint-config-next)</summary> ### [`v14.2.8`](https://github.com/vercel/next.js/compare/v14.2.7...v14.2.8) [Compare Source](https://github.com/vercel/next.js/compare/v14.2.7...v14.2.8) </details> <details> <summary>vercel/next.js (next)</summary> ### [`v14.2.8`](https://github.com/vercel/next.js/compare/v14.2.7...v14.2.8) [Compare Source](https://github.com/vercel/next.js/compare/v14.2.7...v14.2.8) </details> <details> <summary>openai/openai-python (openai)</summary> ### [`v1.44.0`](https://github.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1440-2024-09-06) [Compare Source](https://github.com/openai/openai-python/compare/v1.43.1...v1.44.0) Full Changelog: [v1.43.1...v1.44.0](https://github.com/openai/openai-python/compare/v1.43.1...v1.44.0) ##### Features - **vector store:** improve chunking strategy type names ([#​1690](https://github.com/openai/openai-python/issues/1690)) ([e82cd85](https://github.com/openai/openai-python/commit/e82cd85ac4962e36cb3b139c503069b56918688f)) ### [`v1.43.1`](https://github.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1431-2024-09-05) [Compare Source](https://github.com/openai/openai-python/compare/v1.43.0...v1.43.1) Full Changelog: [v1.43.0...v1.43.1](https://github.com/openai/openai-python/compare/v1.43.0...v1.43.1) ##### Chores - pyproject.toml formatting changes ([#​1687](https://github.com/openai/openai-python/issues/1687)) ([3387ede](https://github.com/openai/openai-python/commit/3387ede0b896788bf1197378b01941c75bd6e179)) </details> <details> <summary>openai/openai-node (openai)</summary> ### [`v4.58.1`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4581-2024-09-06) [Compare Source](https://github.com/openai/openai-node/compare/v4.58.0...v4.58.1) Full Changelog: [v4.58.0...v4.58.1](https://github.com/openai/openai-node/compare/v4.58.0...v4.58.1) ##### Chores - **docs:** update browser support information ([#​1045](https://github.com/openai/openai-node/issues/1045)) ([d326cc5](https://github.com/openai/openai-node/commit/d326cc54a77c450672fbf07d736cec80a9ba72fb)) ### [`v4.58.0`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4580-2024-09-05) [Compare Source](https://github.com/openai/openai-node/compare/v4.57.3...v4.58.0) Full Changelog: [v4.57.3...v4.58.0](https://github.com/openai/openai-node/compare/v4.57.3...v4.58.0) ##### Features - **vector store:** improve chunking strategy type names ([#​1041](https://github.com/openai/openai-node/issues/1041)) ([471cec3](https://github.com/openai/openai-node/commit/471cec3228886253f07c13a362827a31e9ec7b63)) ##### Bug Fixes - **uploads:** avoid making redundant memory copies ([#​1043](https://github.com/openai/openai-node/issues/1043)) ([271297b](https://github.com/openai/openai-node/commit/271297bd32393d4c5663023adf82f8fb19dc3d25)) ### [`v4.57.3`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4573-2024-09-04) [Compare Source](https://github.com/openai/openai-node/compare/v4.57.2...v4.57.3) Full Changelog: [v4.57.2...v4.57.3](https://github.com/openai/openai-node/compare/v4.57.2...v4.57.3) ##### Bug Fixes - **helpers/zod:** avoid import issue in certain environments ([#​1039](https://github.com/openai/openai-node/issues/1039)) ([e238daa](https://github.com/openai/openai-node/commit/e238daa7c12f3fb13369f58b9d405365f5efcc8f)) ##### Chores - **internal:** minor bump qs version ([#​1037](https://github.com/openai/openai-node/issues/1037)) ([8ec218e](https://github.com/openai/openai-node/commit/8ec218e9efb657927b3c0346822a96872aeaf137)) ### [`v4.57.2`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4572-2024-09-04) [Compare Source](https://github.com/openai/openai-node/compare/v4.57.1...v4.57.2) Full Changelog: [v4.57.1...v4.57.2](https://github.com/openai/openai-node/compare/v4.57.1...v4.57.2) ##### Chores - **internal:** dependency updates ([#​1035](https://github.com/openai/openai-node/issues/1035)) ([e815fb6](https://github.com/openai/openai-node/commit/e815fb6dee75219563d3a7776774ba1c2984560e)) ### [`v4.57.1`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4571-2024-09-03) [Compare Source](https://github.com/openai/openai-node/compare/v4.57.0...v4.57.1) Full Changelog: [v4.57.0...v4.57.1](https://github.com/openai/openai-node/compare/v4.57.0...v4.57.1) ##### Bug Fixes - **assistants:** correctly accumulate tool calls when streaming ([#​1031](https://github.com/openai/openai-node/issues/1031)) ([d935ad3](https://github.com/openai/openai-node/commit/d935ad3fa37b2701f4c9f6e433ada6074280a871)) - **client:** correct File construction from node-fetch Responses ([#​1029](https://github.com/openai/openai-node/issues/1029)) ([22ebdc2](https://github.com/openai/openai-node/commit/22ebdc2ca7d98e0f266110c4cf827e53a0a22026)) - runTools without stream should not emit user message events ([#​1005](https://github.com/openai/openai-node/issues/1005)) ([22ded4d](https://github.com/openai/openai-node/commit/22ded4d549a157482a8de2faf65e92c5be07fa95)) ##### Chores - **internal/tests:** workaround bug in recent types/node release ([3c7bdfd](https://github.com/openai/openai-node/commit/3c7bdfdb373bff77db0e3fecd5d49ddfa4284cd9)) </details> <details> <summary>postcss/postcss (postcss)</summary> ### [`v8.4.45`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8445) [Compare Source](https://github.com/postcss/postcss/compare/8.4.44...8.4.45) - Removed unnecessary fix which could lead to infinite loop. </details> <details> <summary>pydantic/pydantic (pydantic)</summary> ### [`v2.9.1`](https://github.com/pydantic/pydantic/releases/tag/v2.9.1): (2024-09-09) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.9.0...v2.9.1) #### What's Changed ##### Fixes - Fix Predicate issue in v2.9.0 by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10321](https://github.com/pydantic/pydantic/pull/10321) - Fixing `annotated-types` bound to `>=0.6.0` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10327](https://github.com/pydantic/pydantic/pull/10327) - Turn `tzdata` install requirement into optional `timezone` dependency by [@​jakob-keller](https://github.com/jakob-keller) in [#​10331](https://github.com/pydantic/pydantic/pull/10331) - Fix `IncExc` type alias definition by [@​Viicos](https://github.com/Viicos) in [#​10339](https://github.com/pydantic/pydantic/pull/10339) - Use correct types namespace when building namedtuple core schemas by [@​Viicos](https://github.com/Viicos) in [#​10337](https://github.com/pydantic/pydantic/pull/10337) - Fix evaluation of stringified annotations during namespace inspection by [@​Viicos](https://github.com/Viicos) in [#​10347](https://github.com/pydantic/pydantic/pull/10347) - Fix tagged union serialization with alias generators by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1442](https://github.com/pydantic/pydantic-core/pull/1442) **Full Changelog**: pydantic/pydantic@v2.9.0...v2.9.1 ### [`v2.9.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v290-2024-09-05) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.8.2...v2.9.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.9.0) The code released in v2.9.0 is practically identical to that of v2.9.0b2. ##### What's Changed ##### Packaging - Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9801](https://github.com/pydantic/pydantic/pull/9801) - Bump `pydantic-extra-types` to `v2.9.0` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9832](https://github.com/pydantic/pydantic/pull/9832) - Support compatibility with `pdm v2.18.1` by [@​Viicos](https://github.com/Viicos) in [#​10138](https://github.com/pydantic/pydantic/pull/10138) - Bump `v1` version stub to `v1.10.18` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10214](https://github.com/pydantic/pydantic/pull/10214) - Bump `pydantic-core` to `v2.23.2` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10311](https://github.com/pydantic/pydantic/pull/10311) ##### New Features - Add support for `ZoneInfo` by [@​Youssefares](https://github.com/Youssefares) in [#​9896](https://github.com/pydantic/pydantic/pull/9896) - Add `Config.val_json_bytes` by [@​josh-newman](https://github.com/josh-newman) in [#​9770](https://github.com/pydantic/pydantic/pull/9770) - Add DSN for Snowflake by [@​aditkumar72](https://github.com/aditkumar72) in [#​10128](https://github.com/pydantic/pydantic/pull/10128) - Support `complex` number by [@​changhc](https://github.com/changhc) in [#​9654](https://github.com/pydantic/pydantic/pull/9654) - Add support for `annotated_types.Not` by [@​aditkumar72](https://github.com/aditkumar72) in [#​10210](https://github.com/pydantic/pydantic/pull/10210) - Allow `WithJsonSchema` to inject `$ref`s w/ `http` or `https` links by [@​dAIsySHEng1](https://github.com/dAIsySHEng1) in [#​9863](https://github.com/pydantic/pydantic/pull/9863) - Allow validators to customize validation JSON schema by [@​Viicos](https://github.com/Viicos) in [#​10094](https://github.com/pydantic/pydantic/pull/10094) - Support parametrized `PathLike` types by [@​nix010](https://github.com/nix010) in [#​9764](https://github.com/pydantic/pydantic/pull/9764) - Add tagged union serializer that attempts to use `str` or `callable` discriminators to select the correct serializer by [@​sydney-runkle](https://github.com/sydney-runkle) in in [pydantic/pydantic-core#1397](https://github.com/pydantic/pydantic-core/pull/1397) ##### Changes - Breaking Change: Merge `dict` type `json_schema_extra` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9792](https://github.com/pydantic/pydantic/pull/9792) - For more info (how to replicate old behavior) on this change, see [here](https://docs.pydantic.dev/dev/concepts/json_schema/#merging-json_schema_extra) - Refactor annotation injection for known (often generic) types by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9979](https://github.com/pydantic/pydantic/pull/9979) - Move annotation compatibility errors to validation phase by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9999](https://github.com/pydantic/pydantic/pull/9999) - Improve runtime errors for string constraints like `pattern` for incompatible types by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10158](https://github.com/pydantic/pydantic/pull/10158) - Remove `'allOf'` JSON schema workarounds by [@​dpeachey](https://github.com/dpeachey) in [#​10029](https://github.com/pydantic/pydantic/pull/10029) - Remove `typed_dict_cls` data from `CoreMetadata` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10180](https://github.com/pydantic/pydantic/pull/10180) - Deprecate passing a dict to the `Examples` class by [@​Viicos](https://github.com/Viicos) in [#​10181](https://github.com/pydantic/pydantic/pull/10181) - Remove `initial_metadata` from internal metadata construct by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10194](https://github.com/pydantic/pydantic/pull/10194) - Use `re.Pattern.search` instead of `re.Pattern.match` for consistency with `rust` behavior by [@​tinez](https://github.com/tinez) in [pydantic/pydantic-core#1368](https://github.com/pydantic/pydantic-core/pull/1368) - Show value of wrongly typed data in `pydantic-core` serialization warning by [@​BoxyUwU](https://github.com/BoxyUwU) in [pydantic/pydantic-core#1377](https://github.com/pydantic/pydantic-core/pull/1377) - Breaking Change: in `pydantic-core`, change `metadata` type hint in core schemas from `Any` -> `Dict[str, Any] | None` by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1411](https://github.com/pydantic/pydantic-core/pull/1411) - Raise helpful warning when `self` isn't returned from model validator by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10255](https://github.com/pydantic/pydantic/pull/10255) ##### Performance - Initial start at improving import times for modules, using caching primarily by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10009](https://github.com/pydantic/pydantic/pull/10009) - Using cached internal import for `BaseModel` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10013](https://github.com/pydantic/pydantic/pull/10013) - Simplify internal generics logic - remove generator overhead by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10059](https://github.com/pydantic/pydantic/pull/10059) - Remove default module globals from types namespace by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10123](https://github.com/pydantic/pydantic/pull/10123) - Performance boost: skip caching parent namespaces in most cases by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10113](https://github.com/pydantic/pydantic/pull/10113) - Update ns stack with already copied ns by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10267](https://github.com/pydantic/pydantic/pull/10267) ##### Minor Internal Improvements - ⚡️ Speed up `multiple_of_validator()` by 31% in `pydantic/_internal/_validators.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9839](https://github.com/pydantic/pydantic/pull/9839) - ⚡️ Speed up `ModelPrivateAttr.__set_name__()` by 18% in `pydantic/fields.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9841](https://github.com/pydantic/pydantic/pull/9841) - ⚡️ Speed up `dataclass()` by 7% in `pydantic/dataclasses.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9843](https://github.com/pydantic/pydantic/pull/9843) - ⚡️ Speed up function `_field_name_for_signature` by 37% in `pydantic/_internal/_signature.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9951](https://github.com/pydantic/pydantic/pull/9951) - ⚡️ Speed up method `GenerateSchema._unpack_refs_defs` by 26% in `pydantic/_internal/_generate_schema.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9949](https://github.com/pydantic/pydantic/pull/9949) - ⚡️ Speed up function `apply_each_item_validators` by 100% in `pydantic/_internal/_generate_schema.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9950](https://github.com/pydantic/pydantic/pull/9950) - ⚡️ Speed up method `ConfigWrapper.core_config` by 28% in `pydantic/_internal/_config.py` by [@​misrasaurabh1](https://github.com/misrasaurabh1) in [#​9953](https://github.com/pydantic/pydantic/pull/9953) ##### Fixes - Respect `use_enum_values` on `Literal` types by [@​kwint](https://github.com/kwint) in [#​9787](https://github.com/pydantic/pydantic/pull/9787) - Prevent type error for exotic `BaseModel/RootModel` inheritance by [@​dmontagu](https://github.com/dmontagu) in [#​9913](https://github.com/pydantic/pydantic/pull/9913) - Fix typing issue with field_validator-decorated methods by [@​dmontagu](https://github.com/dmontagu) in [#​9914](https://github.com/pydantic/pydantic/pull/9914) - Replace `str` type annotation with `Any` in validator factories in documentation on validators by [@​maximilianfellhuber](https://github.com/maximilianfellhuber) in [#​9885](https://github.com/pydantic/pydantic/pull/9885) - Fix `ComputedFieldInfo.wrapped_property` pointer when a property setter is assigned by [@​tlambert03](https://github.com/tlambert03) in [#​9892](https://github.com/pydantic/pydantic/pull/9892) - Fix recursive typing of `main.IncEnx` by [@​tlambert03](https://github.com/tlambert03) in [#​9924](https://github.com/pydantic/pydantic/pull/9924) - Allow usage of `type[Annotated[...]]` by [@​Viicos](https://github.com/Viicos) in [#​9932](https://github.com/pydantic/pydantic/pull/9932) - `mypy` plugin: handle frozen fields on a per-field basis by [@​dmontagu](https://github.com/dmontagu) in [#​9935](https://github.com/pydantic/pydantic/pull/9935) - Fix typo in `invalid-annotated-type` error code by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9948](https://github.com/pydantic/pydantic/pull/9948) - Simplify schema generation for `uuid`, `url`, and `ip` types by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9975](https://github.com/pydantic/pydantic/pull/9975) - Move `date` schemas to `_generate_schema.py` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9976](https://github.com/pydantic/pydantic/pull/9976) - Move `decimal.Decimal` validation to `_generate_schema.py` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9977](https://github.com/pydantic/pydantic/pull/9977) - Simplify IP address schema in `_std_types_schema.py` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9959](https://github.com/pydantic/pydantic/pull/9959) - Fix type annotations for some potentially generic `GenerateSchema.match_type` options by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​9961](https://github.com/pydantic/pydantic/pull/9961) - Add class name to "has conflict" warnings by [@​msabramo](https://github.com/msabramo) in [#​9964](https://github.com/pydantic/pydantic/pull/9964) - Fix `dataclass` ignoring `default_factory` passed in Annotated by [@​kc0506](https://github.com/kc0506) in [#​9971](https://github.com/pydantic/pydantic/pull/9971) - Fix `Sequence` ignoring `discriminator` by [@​kc0506](https://github.com/kc0506) in [#​9980](https://github.com/pydantic/pydantic/pull/9980) - Fix typing for `IPvAnyAddress` and `IPvAnyInterface` by [@​haoyun](https://github.com/haoyun) in [#​9990](https://github.com/pydantic/pydantic/pull/9990) - Fix false positives on v1 models in `mypy` plugin for `from_orm` check requiring from_attributes=True config by [@​radekwlsk](https://github.com/radekwlsk) in [#​9938](https://github.com/pydantic/pydantic/pull/9938) - Apply `strict=True` to `__init__` in `mypy` plugin by [@​kc0506](https://github.com/kc0506) in [#​9998](https://github.com/pydantic/pydantic/pull/9998) - Refactor application of `deque` annotations by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10018](https://github.com/pydantic/pydantic/pull/10018) - Raise a better user error when failing to evaluate a forward reference by [@​Viicos](https://github.com/Viicos) in [#​10030](https://github.com/pydantic/pydantic/pull/10030) - Fix evaluation of `__pydantic_extra__` annotation in specific circumstances by [@​Viicos](https://github.com/Viicos) in [#​10070](https://github.com/pydantic/pydantic/pull/10070) - Fix `frozen` enforcement for `dataclasses` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10066](https://github.com/pydantic/pydantic/pull/10066) - Remove logic to handle unused `__get_pydantic_core_schema__` signature by [@​Viicos](https://github.com/Viicos) in [#​10075](https://github.com/pydantic/pydantic/pull/10075) - Use `is_annotated` consistently by [@​Viicos](https://github.com/Viicos) in [#​10095](https://github.com/pydantic/pydantic/pull/10095) - Fix `PydanticDeprecatedSince26` typo by [@​kc0506](https://github.com/kc0506) in [#​10101](https://github.com/pydantic/pydantic/pull/10101) - Improve `pyright` tests, refactor model decorators signatures by [@​Viicos](https://github.com/Viicos) in [#​10092](https://github.com/pydantic/pydantic/pull/10092) - Fix `ip` serialization logic by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10112](https://github.com/pydantic/pydantic/pull/10112) - Warn when frozen defined twice for `dataclasses` by [@​mochi22](https://github.com/mochi22) in [#​10082](https://github.com/pydantic/pydantic/pull/10082) - Do not compute JSON Schema default when plain serializers are used with `when_used` set to `'json-unless-none'` and the default value is `None` by [@​Viicos](https://github.com/Viicos) in [#​10121](https://github.com/pydantic/pydantic/pull/10121) - Fix `ImportString` special cases by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10137](https://github.com/pydantic/pydantic/pull/10137) - Blacklist default globals to support exotic user code with `__` prefixed annotations by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10136](https://github.com/pydantic/pydantic/pull/10136) - Handle `nullable` schemas with `serialization` schema available during JSON Schema generation by [@​Viicos](https://github.com/Viicos) in [#​10132](https://github.com/pydantic/pydantic/pull/10132) - Reorganize `BaseModel` annotations by [@​kc0506](https://github.com/kc0506) in [#​10110](https://github.com/pydantic/pydantic/pull/10110) - Fix core schema simplification when serialization schemas are involved in specific scenarios by [@​Viicos](https://github.com/Viicos) in [#​10155](https://github.com/pydantic/pydantic/pull/10155) - Add support for stringified annotations when using `PrivateAttr` with `Annotated` by [@​Viicos](https://github.com/Viicos) in [#​10157](https://github.com/pydantic/pydantic/pull/10157) - Fix JSON Schema `number` type for literal and enum schemas by [@​Viicos](https://github.com/Viicos) in [#​10172](https://github.com/pydantic/pydantic/pull/10172) - Fix JSON Schema generation of fields with plain validators in serialization mode by [@​Viicos](https://github.com/Viicos) in [#​10167](https://github.com/pydantic/pydantic/pull/10167) - Fix invalid JSON Schemas being generated for functions in certain scenarios by [@​Viicos](https://github.com/Viicos) in [#​10188](https://github.com/pydantic/pydantic/pull/10188) - Make sure generated JSON Schemas are valid in tests by [@​Viicos](https://github.com/Viicos) in [#​10182](https://github.com/pydantic/pydantic/pull/10182) - Fix key error with custom serializer by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10200](https://github.com/pydantic/pydantic/pull/10200) - Add 'wss' for allowed schemes in NatsDsn by [@​swelborn](https://github.com/swelborn) in [#​10224](https://github.com/pydantic/pydantic/pull/10224) - Fix `Mapping` and `MutableMapping` annotations to use mapping schema instead of dict schema by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10020](https://github.com/pydantic/pydantic/pull/10020) - Fix JSON Schema generation for constrained dates by [@​Viicos](https://github.com/Viicos) in [#​10185](https://github.com/pydantic/pydantic/pull/10185) - Fix discriminated union bug regression when using enums by [@​kfreezen](https://github.com/kfreezen) in [pydantic/pydantic-core#1286](https://github.com/pydantic/pydantic-core/pull/1286) - Fix `field_serializer` with computed field when using `*` by [@​nix010](https://github.com/nix010) in [pydantic/pydantic-core#1349](https://github.com/pydantic/pydantic-core/pull/1349) - Try each option in `Union` serializer before inference by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1398](https://github.com/pydantic/pydantic-core/pull/1398) - Fix `float` serialization behavior in `strict` mode by [@​sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1400](https://github.com/pydantic/pydantic-core/pull/1400) - Introduce `exactness` into Decimal validation logic to improve union validation behavior by [@​sydney-runkle](https://github.com/sydney-runkle) in in [pydantic/pydantic-core#1405](https://github.com/pydantic/pydantic-core/pull/1405) - Fix new warnings assertions to use `pytest.warns()` by [@​mgorny](https://github.com/mgorny) in [#​10241](https://github.com/pydantic/pydantic/pull/10241) - Fix a crash when cleaning the namespace in `ModelMetaclass` by [@​Viicos](https://github.com/Viicos) in [#​10242](https://github.com/pydantic/pydantic/pull/10242) - Fix parent namespace issue with model rebuilds by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10257](https://github.com/pydantic/pydantic/pull/10257) - Remove defaults filter for namespace by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10261](https://github.com/pydantic/pydantic/pull/10261) - Use identity instead of equality after validating model in `__init__` by [@​Viicos](https://github.com/Viicos) in [#​10264](https://github.com/pydantic/pydantic/pull/10264) - Support `BigInt` serialization for `int` subclasses by [@​kxx317](https://github.com/kxx317) in [pydantic/pydantic-core#1417](https://github.com/pydantic/pydantic-core/pull/1417) - Support signature for wrap validators without `info` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10277](https://github.com/pydantic/pydantic/pull/10277) - Ensure `__pydantic_complete__` is set when rebuilding `dataclasses` by [@​Viicos](https://github.com/Viicos) in [#​10291](https://github.com/pydantic/pydantic/pull/10291) - Respect `schema_generator` config value in `TypeAdapter` by [@​sydney-runkle](https://github.com/sydney-runkle) in [#​10300](https://github.com/pydantic/pydantic/pull/10300) ##### New Contributors ##### `pydantic` - [@​kwint](https://github.com/kwint) made their first contribution in [#​9787](https://github.com/pydantic/pydantic/pull/9787) - [@​seekinginfiniteloop](https://github.com/seekinginfiniteloop) made their first contribution in [#​9822](https://github.com/pydantic/pydantic/pull/9822) - [@​a-alexander](https://github.com/a-alexander) made their first contribution in [#​9848](https://github.com/pydantic/pydantic/pull/9848) - [@​maximilianfellhuber](https://github.com/maximilianfellhuber) made their first contribution in [#​9885](https://github.com/pydantic/pydantic/pull/9885) - [@​karmaBonfire](https://github.com/karmaBonfire) made their first contribution in [#​9945](https://github.com/pydantic/pydantic/pull/9945) - [@​s-rigaud](https://github.com/s-rigaud) made their first contribution in [#​9958](https://github.com/pydantic/pydantic/pull/9958) - [@​msabramo](https://github.com/msabramo) made their first contribution in [#​9964](https://github.com/pydantic/pydantic/pull/9964) - [@​DimaCybr](https://github.com/DimaCybr) made their first contribution in [#​9972](https://github.com/pydantic/pydantic/pull/9972) - [@​kc0506](https://github.com/kc0506) made their first contribution in [#​9971](https://github.com/pydantic/pydantic/pull/9971) - [@​haoyun](https://github.com/haoyun) made their first contribution in [#​9990](https://github.com/pydantic/pydantic/pull/9990) - [@​radekwlsk](https://github.com/radekwlsk) made their first contribution in [#​9938](https://github.com/pydantic/pydantic/pull/9938) - [@​dpeachey](https://github.com/dpeachey) made their first contribution in [#​10029](https://github.com/pydantic/pydantic/pull/10029) - [@​BoxyUwU](https://github.com/BoxyUwU) made their first contribution in [#​10085](https://github.com/pydantic/pydantic/pull/10085) - [@​mochi22](https://github.com/mochi22) made their first contribution in [#​10082](https://github.com/pydantic/pydantic/pull/10082) - [@​aditkumar72](https://github.com/aditkumar72) made their first contribution in [#​10128](https://github.com/pydantic/pydantic/pull/10128) - [@​changhc](https://github.com/changhc) made their first contribution in [#​9654](https://github.com/pydantic/pydantic/pull/9654) - [@​insumanth](https://github.com/insumanth) made their first contribution in [#​10229](https://github.com/pydantic/pydantic/pull/10229) - [@​AdolfoVillalobos](https://github.com/AdolfoVillalobos) made their first contribution in [#​10240](https://github.com/pydantic/pydantic/pull/10240) - [@​bllchmbrs](https://github.com/bllchmbrs) made their first contribution in [#​10270](https://github.com/pydantic/pydantic/pull/10270) ##### `pydantic-core` - [@​kfreezen](https://github.com/kfreezen) made their first contribution in [pydantic/pydantic-core#1286](https://github.com/pydantic/pydantic-core/pull/1286) - [@​tinez](https://github.com/tinez) made their first contribution in [pydantic/pydantic-core#1368](https://github.com/pydantic/pydantic-core/pull/1368) - [@​fft001](https://github.com/fft001) made their first contribution in [pydantic/pydantic-core#1362](https://github.com/pydantic/pydantic-core/pull/1362) - [@​nix010](https://github.com/nix010) made their first contribution in [pydantic/pydantic-core#1349](https://github.com/pydantic/pydantic-core/pull/1349) - [@​BoxyUwU](https://github.com/BoxyUwU) made their first contribution in [pydantic/pydantic-core#1379](https://github.com/pydantic/pydantic-core/pull/1379) - [@​candleindark](https://github.com/candleindark) made their first contribution in [pydantic/pydantic-core#1404](https://github.com/pydantic/pydantic-core/pull/1404) - [@​changhc](https://github.com/changhc) made their first contribution in [pydantic/pydantic-core#1331](https://github.com/pydantic/pydantic-core/pull/1331) </details> <details> <summary>microsoft/TypeScript (typescript)</summary> ### [`v5.6.2`](https://github.com/microsoft/TypeScript/compare/v5.5.4...a7e3374f13327483fbe94e32806d65785b0b6cda) [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.6.2) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone America/Chicago, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/autoblocksai/autoblocks-examples). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Implementing a tagged union serializer to unify patterns for union validation and serialization.
Similar to the validation phase, we attempt to check the discriminator value for the data being serialized. If we find it, we select the serializer corresponding to said tag. In most cases, if we have trouble with this, we fall back to standard union serialization in order to preserve backwards compatibility. This is consistent with our general serialization approach, which is to first try with a designated serializer, then just fallback to inference.
I could see a case for adding support for an explicit serialization discriminator at some point, and this is a good step in the direction of supporting that on the core side of things.
A few notes:
SelfSchema
member of theDiscriminator
enum because its usage was terminated with 5efeaf9Discriminator
structure to a common directory, as it's used across validators and serializers