Warn when frozen defined twice for dataclasses by @mochi22 in #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 in #10121
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | minor | `==2.8.2` -> `==2.9.0` |
---
### 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 has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC40NS4wIiwidXBkYXRlZEluVmVyIjoiMzguNDUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
==2.8.2->==2.9.0Release Notes
pydantic/pydantic (pydantic)
v2.9.0Compare Source
GitHub release
The code released in v2.9.0 is practically identical to that of v2.9.0b2.
What's Changed
Packaging
rufftov0.5.0andpyrighttov1.1.369by @sydney-runkle in #9801pydantic-extra-typestov2.9.0by @sydney-runkle in #9832pdm v2.18.1by @Viicos in #10138v1version stub tov1.10.18by @sydney-runkle in #10214pydantic-coretov2.23.2by @sydney-runkle in #10311New Features
ZoneInfoby @Youssefares in #9896Config.val_json_bytesby @josh-newman in #9770complexnumber by @changhc in #9654annotated_types.Notby @aditkumar72 in #10210WithJsonSchemato inject$refs w/httporhttpslinks by @dAIsySHEng1 in #9863PathLiketypes by @nix010 in #9764strorcallablediscriminators to select the correct serializer by @sydney-runkle in in pydantic/pydantic-core#1397Changes
dicttypejson_schema_extraby @sydney-runkle in #9792patternfor incompatible types by @sydney-runkle in #10158'allOf'JSON schema workarounds by @dpeachey in #10029typed_dict_clsdata fromCoreMetadataby @sydney-runkle in #10180Examplesclass by @Viicos in #10181initial_metadatafrom internal metadata construct by @sydney-runkle in #10194re.Pattern.searchinstead ofre.Pattern.matchfor consistency withrustbehavior by @tinez in pydantic/pydantic-core#1368pydantic-coreserialization warning by @BoxyUwU in pydantic/pydantic-core#1377pydantic-core, changemetadatatype hint in core schemas fromAny->Dict[str, Any] | Noneby @sydney-runkle in pydantic/pydantic-core#1411selfisn't returned from model validator by @sydney-runkle in #10255Performance
BaseModelby @sydney-runkle in #10013Minor Internal Improvements
multiple_of_validator()by 31% inpydantic/_internal/_validators.pyby @misrasaurabh1 in #9839ModelPrivateAttr.__set_name__()by 18% inpydantic/fields.pyby @misrasaurabh1 in #9841dataclass()by 7% inpydantic/dataclasses.pyby @misrasaurabh1 in #9843_field_name_for_signatureby 37% inpydantic/_internal/_signature.pyby @misrasaurabh1 in #9951GenerateSchema._unpack_refs_defsby 26% inpydantic/_internal/_generate_schema.pyby @misrasaurabh1 in #9949apply_each_item_validatorsby 100% inpydantic/_internal/_generate_schema.pyby @misrasaurabh1 in #9950ConfigWrapper.core_configby 28% inpydantic/_internal/_config.pyby @misrasaurabh1 in #9953Fixes
use_enum_valuesonLiteraltypes by @kwint in #9787BaseModel/RootModelinheritance by @dmontagu in #9913strtype annotation withAnyin validator factories in documentation on validators by @maximilianfellhuber in #9885ComputedFieldInfo.wrapped_propertypointer when a property setter is assigned by @tlambert03 in #9892main.IncEnxby @tlambert03 in #9924type[Annotated[...]]by @Viicos in #9932mypyplugin: handle frozen fields on a per-field basis by @dmontagu in #9935invalid-annotated-typeerror code by @sydney-runkle in #9948uuid,url, andiptypes by @sydney-runkle in #9975dateschemas to_generate_schema.pyby @sydney-runkle in #9976decimal.Decimalvalidation to_generate_schema.pyby @sydney-runkle in #9977_std_types_schema.pyby @sydney-runkle in #9959GenerateSchema.match_typeoptions by @sydney-runkle in #9961dataclassignoringdefault_factorypassed in Annotated by @kc0506 in #9971Sequenceignoringdiscriminatorby @kc0506 in #9980IPvAnyAddressandIPvAnyInterfaceby @haoyun in #9990mypyplugin forfrom_ormcheck requiring from_attributes=True config by @radekwlsk in #9938strict=Trueto__init__inmypyplugin by @kc0506 in #9998dequeannotations by @sydney-runkle in #10018__pydantic_extra__annotation in specific circumstances by @Viicos in #10070frozenenforcement fordataclassesby @sydney-runkle in #10066__get_pydantic_core_schema__signature by @Viicos in #10075is_annotatedconsistently by @Viicos in #10095PydanticDeprecatedSince26typo by @kc0506 in #10101pyrighttests, refactor model decorators signatures by @Viicos in #10092ipserialization logic by @sydney-runkle in #10112dataclassesby @mochi22 in #10082when_usedset to'json-unless-none'and the default value isNoneby @Viicos in #10121ImportStringspecial cases by @sydney-runkle in #10137__prefixed annotations by @sydney-runkle in #10136nullableschemas withserializationschema available during JSON Schema generation by @Viicos in #10132BaseModelannotations by @kc0506 in #10110PrivateAttrwithAnnotatedby @Viicos in #10157numbertype for literal and enum schemas by @Viicos in #10172MappingandMutableMappingannotations to use mapping schema instead of dict schema by @sydney-runkle in #10020field_serializerwith computed field when using*by @nix010 in pydantic/pydantic-core#1349Unionserializer before inference by @sydney-runkle in pydantic/pydantic-core#1398floatserialization behavior instrictmode by @sydney-runkle in pydantic/pydantic-core#1400exactnessinto Decimal validation logic to improve union validation behavior by @sydney-runkle in in pydantic/pydantic-core#1405pytest.warns()by @mgorny in #10241ModelMetaclassby @Viicos in #10242__init__by @Viicos in #10264BigIntserialization forintsubclasses by @kxx317 in pydantic/pydantic-core#1417infoby @sydney-runkle in #10277__pydantic_complete__is set when rebuildingdataclassesby @Viicos in #10291schema_generatorconfig value inTypeAdapterby @sydney-runkle in #10300New Contributors
pydanticpydantic-coreConfiguration
📅 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.
This PR has been generated by Renovate Bot.