Skip to content
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

Update pydantic to 2.9.0 #566

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Sep 5, 2024

This PR updates pydantic from 1.10.8 to 2.9.0.

Changelog

2.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 in [9801](https://github.com/pydantic/pydantic/pull/9801)
* Bump `pydantic-extra-types` to `v2.9.0` by sydney-runkle in [9832](https://github.com/pydantic/pydantic/pull/9832)
* Support compatibility with `pdm v2.18.1` by Viicos in [10138](https://github.com/pydantic/pydantic/pull/10138)
* Bump `v1` version stub to `v1.10.18` by sydney-runkle in [10214](https://github.com/pydantic/pydantic/pull/10214)
* Bump `pydantic-core` to `v2.23.2` by sydney-runkle in [10311](https://github.com/pydantic/pydantic/pull/10311)

New Features

* Add support for `ZoneInfo` by Youssefares in [9896](https://github.com/pydantic/pydantic/pull/9896)
* Add `Config.val_json_bytes` by josh-newman in [9770](https://github.com/pydantic/pydantic/pull/9770)
* Add DSN for Snowflake by aditkumar72 in [10128](https://github.com/pydantic/pydantic/pull/10128)
* Support `complex` number by changhc in [9654](https://github.com/pydantic/pydantic/pull/9654)
* Add support for `annotated_types.Not` by aditkumar72 in [10210](https://github.com/pydantic/pydantic/pull/10210)
* Allow `WithJsonSchema` to inject `$ref`s w/ `http` or `https` links by dAIsySHEng1 in [9863](https://github.com/pydantic/pydantic/pull/9863)
* Allow validators to customize validation JSON schema by Viicos in [10094](https://github.com/pydantic/pydantic/pull/10094)
* Support parametrized `PathLike` types by 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 in in [pydantic/pydantic-core1397](https://github.com/pydantic/pydantic-core/pull/1397)

Changes

* Breaking Change: Merge `dict` type `json_schema_extra` by 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 in [9979](https://github.com/pydantic/pydantic/pull/9979)
* Move annotation compatibility errors to validation phase by 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 in [10158](https://github.com/pydantic/pydantic/pull/10158)
* Remove `'allOf'` JSON schema workarounds by dpeachey in [10029](https://github.com/pydantic/pydantic/pull/10029)
* Remove `typed_dict_cls` data from `CoreMetadata` by sydney-runkle in [10180](https://github.com/pydantic/pydantic/pull/10180)
* Deprecate passing a dict to the `Examples` class by Viicos in [10181](https://github.com/pydantic/pydantic/pull/10181)
* Remove `initial_metadata` from internal metadata construct by 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 in [pydantic/pydantic-core1368](https://github.com/pydantic/pydantic-core/pull/1368)
* Show value of wrongly typed data in `pydantic-core` serialization warning by BoxyUwU in [pydantic/pydantic-core1377](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 in [pydantic/pydantic-core1411](https://github.com/pydantic/pydantic-core/pull/1411)
* Raise helpful warning when `self` isn't returned from model validator by 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 in [10009](https://github.com/pydantic/pydantic/pull/10009)
* Using cached internal import for `BaseModel` by sydney-runkle in [10013](https://github.com/pydantic/pydantic/pull/10013)
* Simplify internal generics logic - remove generator overhead by sydney-runkle in [10059](https://github.com/pydantic/pydantic/pull/10059)
* Remove default module globals from types namespace by sydney-runkle in [10123](https://github.com/pydantic/pydantic/pull/10123)
* Performance boost: skip caching parent namespaces in most cases by sydney-runkle in [10113](https://github.com/pydantic/pydantic/pull/10113)
* Update ns stack with already copied ns by 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 in [9839](https://github.com/pydantic/pydantic/pull/9839)
* ⚡️ Speed up `ModelPrivateAttr.__set_name__()` by 18% in `pydantic/fields.py` by misrasaurabh1 in [9841](https://github.com/pydantic/pydantic/pull/9841)
* ⚡️ Speed up `dataclass()` by 7% in `pydantic/dataclasses.py` by 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 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 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 in [9950](https://github.com/pydantic/pydantic/pull/9950)
* ⚡️ Speed up method `ConfigWrapper.core_config` by 28% in `pydantic/_internal/_config.py` by misrasaurabh1 in [9953](https://github.com/pydantic/pydantic/pull/9953)

Fixes

* Respect `use_enum_values` on `Literal` types by kwint in [9787](https://github.com/pydantic/pydantic/pull/9787)
* Prevent type error for exotic `BaseModel/RootModel` inheritance by dmontagu in [9913](https://github.com/pydantic/pydantic/pull/9913)
* Fix typing issue with field_validator-decorated methods by 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 in [9885](https://github.com/pydantic/pydantic/pull/9885)
* Fix `ComputedFieldInfo.wrapped_property` pointer when a property setter is assigned by tlambert03 in [9892](https://github.com/pydantic/pydantic/pull/9892)
* Fix recursive typing of `main.IncEnx` by tlambert03 in [9924](https://github.com/pydantic/pydantic/pull/9924)
* Allow usage of `type[Annotated[...]]` by Viicos in [9932](https://github.com/pydantic/pydantic/pull/9932)
* `mypy` plugin: handle frozen fields on a per-field basis by dmontagu in [9935](https://github.com/pydantic/pydantic/pull/9935)
* Fix typo in `invalid-annotated-type` error code by sydney-runkle in [9948](https://github.com/pydantic/pydantic/pull/9948)
* Simplify schema generation for `uuid`, `url`, and `ip` types by sydney-runkle in [9975](https://github.com/pydantic/pydantic/pull/9975)
* Move `date` schemas to `_generate_schema.py` by sydney-runkle in [9976](https://github.com/pydantic/pydantic/pull/9976)
* Move `decimal.Decimal` validation to `_generate_schema.py` by sydney-runkle in [9977](https://github.com/pydantic/pydantic/pull/9977)
* Simplify IP address schema in `_std_types_schema.py` by 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 in [9961](https://github.com/pydantic/pydantic/pull/9961)
* Add class name to "has conflict" warnings by msabramo in [9964](https://github.com/pydantic/pydantic/pull/9964)
* Fix `dataclass` ignoring `default_factory` passed in Annotated by kc0506 in [9971](https://github.com/pydantic/pydantic/pull/9971)
* Fix `Sequence` ignoring `discriminator` by kc0506 in [9980](https://github.com/pydantic/pydantic/pull/9980)
* Fix typing for `IPvAnyAddress` and `IPvAnyInterface` by 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 in [9938](https://github.com/pydantic/pydantic/pull/9938)
* Apply `strict=True` to `__init__` in `mypy` plugin by kc0506 in [9998](https://github.com/pydantic/pydantic/pull/9998)
* Refactor application of `deque` annotations by 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 in [10030](https://github.com/pydantic/pydantic/pull/10030)
* Fix evaluation of `__pydantic_extra__` annotation in specific circumstances by Viicos in [10070](https://github.com/pydantic/pydantic/pull/10070)
* Fix `frozen` enforcement for `dataclasses` by sydney-runkle in [10066](https://github.com/pydantic/pydantic/pull/10066)
* Remove logic to handle unused `__get_pydantic_core_schema__` signature by Viicos in [10075](https://github.com/pydantic/pydantic/pull/10075)
* Use `is_annotated` consistently by Viicos in [10095](https://github.com/pydantic/pydantic/pull/10095)
* Fix `PydanticDeprecatedSince26` typo by kc0506 in [10101](https://github.com/pydantic/pydantic/pull/10101)
* Improve `pyright` tests, refactor model decorators signatures by Viicos in [10092](https://github.com/pydantic/pydantic/pull/10092)
* Fix `ip` serialization logic by sydney-runkle in [10112](https://github.com/pydantic/pydantic/pull/10112)
* Warn when frozen defined twice for `dataclasses` by 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 in [10121](https://github.com/pydantic/pydantic/pull/10121)
* Fix `ImportString` special cases by 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 in [10136](https://github.com/pydantic/pydantic/pull/10136)
* Handle `nullable` schemas with `serialization` schema available during JSON Schema generation by Viicos in [10132](https://github.com/pydantic/pydantic/pull/10132)
* Reorganize `BaseModel` annotations by kc0506 in [10110](https://github.com/pydantic/pydantic/pull/10110)
* Fix core schema simplification when serialization schemas are involved in specific scenarios by Viicos in [10155](https://github.com/pydantic/pydantic/pull/10155)
* Add support for stringified annotations when using `PrivateAttr` with `Annotated` by Viicos in [10157](https://github.com/pydantic/pydantic/pull/10157)
* Fix JSON Schema `number` type for literal and enum schemas by Viicos in [10172](https://github.com/pydantic/pydantic/pull/10172)
* Fix JSON Schema generation of fields with plain validators in serialization mode by Viicos in [10167](https://github.com/pydantic/pydantic/pull/10167)
* Fix invalid JSON Schemas being generated for functions in certain scenarios by Viicos in [10188](https://github.com/pydantic/pydantic/pull/10188)
* Make sure generated JSON Schemas are valid in tests by Viicos in [10182](https://github.com/pydantic/pydantic/pull/10182)
* Fix key error with custom serializer by sydney-runkle in [10200](https://github.com/pydantic/pydantic/pull/10200)
* Add 'wss' for allowed schemes in NatsDsn by 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 in [10020](https://github.com/pydantic/pydantic/pull/10020)
* Fix JSON Schema generation for constrained dates by Viicos in [10185](https://github.com/pydantic/pydantic/pull/10185)
* Fix discriminated union bug regression when using enums by kfreezen in [pydantic/pydantic-core1286](https://github.com/pydantic/pydantic-core/pull/1286)
* Fix `field_serializer` with computed field when using `*` by nix010 in [pydantic/pydantic-core1349](https://github.com/pydantic/pydantic-core/pull/1349)
* Try each option in `Union` serializer before inference by sydney-runkle in [pydantic/pydantic-core1398](https://github.com/pydantic/pydantic-core/pull/1398)
* Fix `float` serialization behavior in `strict` mode by sydney-runkle in [pydantic/pydantic-core1400](https://github.com/pydantic/pydantic-core/pull/1400)
* Introduce `exactness` into Decimal validation logic to improve union validation behavior by sydney-runkle in in [pydantic/pydantic-core1405](https://github.com/pydantic/pydantic-core/pull/1405)
* Fix new warnings assertions to use `pytest.warns()` by mgorny in [10241](https://github.com/pydantic/pydantic/pull/10241)
* Fix a crash when cleaning the namespace in `ModelMetaclass` by Viicos in [10242](https://github.com/pydantic/pydantic/pull/10242)
* Fix parent namespace issue with model rebuilds by sydney-runkle in [10257](https://github.com/pydantic/pydantic/pull/10257)
* Remove defaults filter for namespace by sydney-runkle in [10261](https://github.com/pydantic/pydantic/pull/10261)
* Use identity instead of equality after validating model in `__init__` by Viicos in [10264](https://github.com/pydantic/pydantic/pull/10264)
* Support `BigInt` serialization for `int` subclasses by kxx317 in [pydantic/pydantic-core1417](https://github.com/pydantic/pydantic-core/pull/1417)
* Support signature for wrap validators without `info` by sydney-runkle in [10277](https://github.com/pydantic/pydantic/pull/10277)
* Ensure `__pydantic_complete__` is set when rebuilding `dataclasses` by Viicos in [10291](https://github.com/pydantic/pydantic/pull/10291)
* Respect `schema_generator` config value in `TypeAdapter` by sydney-runkle in [10300](https://github.com/pydantic/pydantic/pull/10300)

New Contributors

`pydantic`

* kwint made their first contribution in [9787](https://github.com/pydantic/pydantic/pull/9787)
* seekinginfiniteloop made their first contribution in [9822](https://github.com/pydantic/pydantic/pull/9822)
* a-alexander made their first contribution in [9848](https://github.com/pydantic/pydantic/pull/9848)
* maximilianfellhuber made their first contribution in [9885](https://github.com/pydantic/pydantic/pull/9885)
* karmaBonfire made their first contribution in [9945](https://github.com/pydantic/pydantic/pull/9945)
* s-rigaud made their first contribution in [9958](https://github.com/pydantic/pydantic/pull/9958)
* msabramo made their first contribution in [9964](https://github.com/pydantic/pydantic/pull/9964)
* DimaCybr made their first contribution in [9972](https://github.com/pydantic/pydantic/pull/9972)
* kc0506 made their first contribution in [9971](https://github.com/pydantic/pydantic/pull/9971)
* haoyun made their first contribution in [9990](https://github.com/pydantic/pydantic/pull/9990)
* radekwlsk made their first contribution in [9938](https://github.com/pydantic/pydantic/pull/9938)
* dpeachey made their first contribution in [10029](https://github.com/pydantic/pydantic/pull/10029)
* BoxyUwU made their first contribution in [10085](https://github.com/pydantic/pydantic/pull/10085)
* mochi22 made their first contribution in [10082](https://github.com/pydantic/pydantic/pull/10082)
* aditkumar72 made their first contribution in [10128](https://github.com/pydantic/pydantic/pull/10128)
* changhc made their first contribution in [9654](https://github.com/pydantic/pydantic/pull/9654)
* insumanth made their first contribution in [10229](https://github.com/pydantic/pydantic/pull/10229)
* AdolfoVillalobos made their first contribution in [10240](https://github.com/pydantic/pydantic/pull/10240)
* bllchmbrs made their first contribution in [10270](https://github.com/pydantic/pydantic/pull/10270)

`pydantic-core`

* kfreezen made their first contribution in [pydantic/pydantic-core1286](https://github.com/pydantic/pydantic-core/pull/1286)
* tinez made their first contribution in [pydantic/pydantic-core1368](https://github.com/pydantic/pydantic-core/pull/1368)
* fft001 made their first contribution in [pydantic/pydantic-core1362](https://github.com/pydantic/pydantic-core/pull/1362)
* nix010 made their first contribution in [pydantic/pydantic-core1349](https://github.com/pydantic/pydantic-core/pull/1349)
* BoxyUwU made their first contribution in [pydantic/pydantic-core1379](https://github.com/pydantic/pydantic-core/pull/1379)
* candleindark made their first contribution in [pydantic/pydantic-core1404](https://github.com/pydantic/pydantic-core/pull/1404)
* changhc made their first contribution in [pydantic/pydantic-core1331](https://github.com/pydantic/pydantic-core/pull/1331)

2.9.0b2

Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.9.0b2) for details.

2.9.0b1

Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.9.0b1) for details.

2.8.2

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.8.2)

What's Changed

Fixes

* Fix issue with assertion caused by pluggable schema validator by dmontagu in [9838](https://github.com/pydantic/pydantic/pull/9838)

2.8.1

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.8.1)

What's Changed

Packaging
* Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by sydney-runkle in [9801](https://github.com/pydantic/pydantic/pull/9801)
* Bump `pydantic-core` to `v2.20.1`, `pydantic-extra-types` to `v2.9.0` by sydney-runkle in [9832](https://github.com/pydantic/pydantic/pull/9832)

Fixes
* Fix breaking change in `to_snake` from v2.7 -> v2.8 by sydney-runkle in [9812](https://github.com/pydantic/pydantic/pull/9812)
* Fix list constraint json schema application by sydney-runkle in [9818](https://github.com/pydantic/pydantic/pull/9818)
* Support time duration more than 23 by nix010 in [pydantic/speedate64](https://github.com/pydantic/speedate/pull/64)
* Fix millisecond fraction being handled with the wrong scale by davidhewitt in [pydantic/speedate65](https://github.com/pydantic/speedate/pull/65)
* Handle negative fractional durations correctly by sydney-runkle in [pydantic/speedate71](https://github.com/pydantic/speedate/pull/71)

2.8.0

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.8.0)

The code released in v2.8.0 is functionally identical to that of v2.8.0b1.

What's Changed

Packaging

* Update citation version automatically with new releases by sydney-runkle in [9673](https://github.com/pydantic/pydantic/pull/9673)
* Bump pyright to `v1.1.367` and add type checking tests for pipeline API by adriangb in [9674](https://github.com/pydantic/pydantic/pull/9674)
* Update `pydantic.v1` stub to `v1.10.17` by sydney-runkle in [9707](https://github.com/pydantic/pydantic/pull/9707)
* General package updates to prep for `v2.8.0b1` by sydney-runkle in [9741](https://github.com/pydantic/pydantic/pull/9741)
* Bump `pydantic-core` to `v2.20.0` by sydney-runkle in [9745](https://github.com/pydantic/pydantic/pull/9745)
* Add support for Python 3.13 by sydney-runkle in [9743](https://github.com/pydantic/pydantic/pull/9743)
* Update `pdm` version used for `pdm.lock` to v2.16.1 by sydney-runkle in [9761](https://github.com/pydantic/pydantic/pull/9761)
* Update to `ruff` `v0.4.8` by Viicos in [9585](https://github.com/pydantic/pydantic/pull/9585)

New Features

* Experimental: support `defer_build` for `TypeAdapter` by MarkusSintonen in [8939](https://github.com/pydantic/pydantic/pull/8939)
* Implement `deprecated` field in json schema by NeevCohen in [9298](https://github.com/pydantic/pydantic/pull/9298)
* Experimental: Add pipeline API by adriangb in [9459](https://github.com/pydantic/pydantic/pull/9459)
* Add support for programmatic title generation by NeevCohen in [9183](https://github.com/pydantic/pydantic/pull/9183)
* Implement `fail_fast` feature by uriyyo in [9708](https://github.com/pydantic/pydantic/pull/9708)
* Add `ser_json_inf_nan='strings'` mode to produce valid JSON by josh-newman in [pydantic/pydantic-core1307](https://github.com/pydantic/pydantic-core/pull/1307)

Changes

* Add warning when "alias" is set in ignored `Annotated` field by nix010 in [9170](https://github.com/pydantic/pydantic/pull/9170)
* Support serialization of some serializable defaults in JSON schema by sydney-runkle in [9624](https://github.com/pydantic/pydantic/pull/9624)
* Relax type specification for `__validators__` values in `create_model` by sydney-runkle in [9697](https://github.com/pydantic/pydantic/pull/9697)
* **Breaking Change:** Improve `smart` union matching logic by sydney-runkle in [pydantic/pydantic-core1322](https://github.com/pydantic/pydantic-core/pull/1322)
You can read more about our `smart` union matching logic [here](https://docs.pydantic.dev/dev/concepts/unions/#smart-mode). In some cases, if the old behavior
is desired, you can switch to `left-to-right` mode and change the order of your `Union` members.

Performance

Internal Improvements

* ⚡️ Speed up `_display_error_loc()` by 25% in `pydantic/v1/error_wrappers.py` by misrasaurabh1 in [9653](https://github.com/pydantic/pydantic/pull/9653)
* ⚡️ Speed up `_get_all_json_refs()` by 34% in `pydantic/json_schema.py` by misrasaurabh1 in [9650](https://github.com/pydantic/pydantic/pull/9650)
* ⚡️ Speed up `is_pydantic_dataclass()` by 41% in `pydantic/dataclasses.py` by misrasaurabh1 in [9652](https://github.com/pydantic/pydantic/pull/9652)
* ⚡️ Speed up `to_snake()` by 27% in `pydantic/alias_generators.py` by misrasaurabh1 in [9747](https://github.com/pydantic/pydantic/pull/9747)
* ⚡️ Speed up `unwrap_wrapped_function()` by 93% in `pydantic/_internal/_decorators.py` by misrasaurabh1 in [9727](https://github.com/pydantic/pydantic/pull/9727)

Fixes

* Replace `__spec__.parent` with `__package__` by hramezani in [9331](https://github.com/pydantic/pydantic/pull/9331)
* Fix Outputted Model JSON Schema for `Sequence` type by anesmemisevic in [9303](https://github.com/pydantic/pydantic/pull/9303)
* Fix typing of `_frame_depth` by Viicos in [9353](https://github.com/pydantic/pydantic/pull/9353)
* Make `ImportString` json schema compatible by amitschang in [9344](https://github.com/pydantic/pydantic/pull/9344)
* Hide private attributes (`PrivateAttr`) from `__init__` signature in type checkers by idan22moral in [9293](https://github.com/pydantic/pydantic/pull/9293)
* Make detection of `TypeVar` defaults robust to the CPython `PEP-696` implementation by AlexWaygood in [9426](https://github.com/pydantic/pydantic/pull/9426)
* Fix usage of `PlainSerializer` with builtin types by Viicos in [9450](https://github.com/pydantic/pydantic/pull/9450)
* Add more robust custom validation examples by ChrisPappalardo in [9468](https://github.com/pydantic/pydantic/pull/9468)
* Fix ignored `strict` specification for `StringConstraint(strict=False)` by vbmendes in [9476](https://github.com/pydantic/pydantic/pull/9476)
* **Breaking Change:** Use PEP 570 syntax by Viicos in [9479](https://github.com/pydantic/pydantic/pull/9479)
* Use `Self` where possible by Viicos in [9479](https://github.com/pydantic/pydantic/pull/9479)
* Do not alter `RootModel.model_construct` signature in the `mypy` plugin by Viicos in [9480](https://github.com/pydantic/pydantic/pull/9480)
* Fixed type hint of `validation_context` by OhioDschungel6 in [9508](https://github.com/pydantic/pydantic/pull/9508)
* Support context being passed to TypeAdapter's `dump_json`/`dump_python` by alexcouper in [9495](https://github.com/pydantic/pydantic/pull/9495)
* Updates type signature for `Field()` constructor by bjmc in [9484](https://github.com/pydantic/pydantic/pull/9484)
* Improve builtin alias generators by sydney-runkle in [9561](https://github.com/pydantic/pydantic/pull/9561)
* Fix typing of `TypeAdapter` by Viicos in [9570](https://github.com/pydantic/pydantic/pull/9570)
* Add fallback default value for private fields in `__setstate__` of BaseModel by anhpham1509 in [9584](https://github.com/pydantic/pydantic/pull/9584)
* Support `PEP 746` by adriangb in [9587](https://github.com/pydantic/pydantic/pull/9587)
* Allow validator and serializer functions to have default values by Viicos in [9478](https://github.com/pydantic/pydantic/pull/9478)
* Fix bug with mypy plugin's handling of covariant `TypeVar` fields by dmontagu in [9606](https://github.com/pydantic/pydantic/pull/9606)
* Fix multiple annotation / constraint application logic by sydney-runkle in [9623](https://github.com/pydantic/pydantic/pull/9623)
* Respect `regex` flags in validation and json schema by sydney-runkle in [9591](https://github.com/pydantic/pydantic/pull/9591)
* Fix type hint on `IpvAnyAddress` by sydney-runkle in [9640](https://github.com/pydantic/pydantic/pull/9640)
* Allow a field specifier on `__pydantic_extra__` by dmontagu in [9659](https://github.com/pydantic/pydantic/pull/9659)
* Use normalized case for file path comparison by sydney-runkle in [9737](https://github.com/pydantic/pydantic/pull/9737)
* Modify constraint application logic to allow field constraints on `Optional[Decimal]` by lazyhope in [9754](https://github.com/pydantic/pydantic/pull/9754)
* `validate_call` type params fix by sydney-runkle in [9760](https://github.com/pydantic/pydantic/pull/9760)
* Check all warnings returned by pytest.warns() by s-t-e-v-e-n-k in [9702](https://github.com/pydantic/pydantic/pull/9702)
* Reuse `re.Pattern` object in regex patterns to allow for regex flags by sydney-runkle in [pydantic/pydantic-core1318](https://github.com/pydantic/pydantic-core/pull/1318)

New Contributors

* idan22moral made their first contribution in [9294](https://github.com/pydantic/pydantic/pull/9294)
* anesmemisevic made their first contribution in [9303](https://github.com/pydantic/pydantic/pull/9303)
* max-muoto made their first contribution in [9338](https://github.com/pydantic/pydantic/pull/9338)
* amitschang made their first contribution in [9344](https://github.com/pydantic/pydantic/pull/9344)
* paulmartin91 made their first contribution in [9410](https://github.com/pydantic/pydantic/pull/9410)
* OhioDschungel6 made their first contribution in [9405](https://github.com/pydantic/pydantic/pull/9405)
* AlexWaygood made their first contribution in [9426](https://github.com/pydantic/pydantic/pull/9426)
* kinuax made their first contribution in [9433](https://github.com/pydantic/pydantic/pull/9433)
* antoni-jamiolkowski made their first contribution in [9431](https://github.com/pydantic/pydantic/pull/9431)
* candleindark made their first contribution in [9448](https://github.com/pydantic/pydantic/pull/9448)
* nix010 made their first contribution in [9170](https://github.com/pydantic/pydantic/pull/9170)
* tomy0000000 made their first contribution in [9457](https://github.com/pydantic/pydantic/pull/9457)
* vbmendes made their first contribution in [9470](https://github.com/pydantic/pydantic/pull/9470)
* micheleAlberto made their first contribution in [9471](https://github.com/pydantic/pydantic/pull/9471)
* ChrisPappalardo made their first contribution in [9468](https://github.com/pydantic/pydantic/pull/9468)
* blueTurtz made their first contribution in [9475](https://github.com/pydantic/pydantic/pull/9475)
* WinterBlue16 made their first contribution in [9477](https://github.com/pydantic/pydantic/pull/9477)
* bittner made their first contribution in [9500](https://github.com/pydantic/pydantic/pull/9500)
* alexcouper made their first contribution in [9495](https://github.com/pydantic/pydantic/pull/9495)
* bjmc made their first contribution in [9484](https://github.com/pydantic/pydantic/pull/9484)
* pjvv made their first contribution in [9529](https://github.com/pydantic/pydantic/pull/9529)
* nedbat made their first contribution in [9530](https://github.com/pydantic/pydantic/pull/9530)
* gunnellEvan made their first contribution in [9469](https://github.com/pydantic/pydantic/pull/9469)
* jaymbans made their first contribution in [9531](https://github.com/pydantic/pydantic/pull/9531)
* MarcBresson made their first contribution in [9534](https://github.com/pydantic/pydantic/pull/9534)
* anhpham1509 made their first contribution in [9584](https://github.com/pydantic/pydantic/pull/9584)
* K-dash made their first contribution in [9595](https://github.com/pydantic/pydantic/pull/9595)
* s-t-e-v-e-n-k made their first contribution in [9527](https://github.com/pydantic/pydantic/pull/9527)
* airwoodix made their first contribution in [9506](https://github.com/pydantic/pydantic/pull/9506)
* misrasaurabh1 made their first contribution in [9653](https://github.com/pydantic/pydantic/pull/9653)
* AlessandroMiola made their first contribution in [9740](https://github.com/pydantic/pydantic/pull/9740)
* mylapallilavanyaa made their first contribution in [9746](https://github.com/pydantic/pydantic/pull/9746)
* lazyhope made their first contribution in [9754](https://github.com/pydantic/pydantic/pull/9754)
* YassinNouh21 made their first contribution in [9759](https://github.com/pydantic/pydantic/pull/9759)

2.8.0b1

Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.8.0b1) for details.

2.7.4

[Github release](https://github.com/pydantic/pydantic/releases/tag/v2.7.4)

What's Changed

Packaging

* Bump `pydantic.v1` to `v1.10.16` reference by sydney-runkle in [9639](https://github.com/pydantic/pydantic/pull/9639)

Fixes

* Specify `recursive_guard` as kwarg in `FutureRef._evaluate` by vfazio in [9612](https://github.com/pydantic/pydantic/pull/9612)

2.7.3

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.3)

What's Changed

Packaging

* Bump `pydantic-core` to `v2.18.4` by sydney-runkle in [9550](https://github.com/pydantic/pydantic/pull/9550)

Fixes

* Fix u style unicode strings in python samuelcolvin in [pydantic/jiter110](https://github.com/pydantic/jiter/pull/110)

2.7.2

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.2)

What's Changed

Packaging

* Bump `pydantic-core` to `v2.18.3` by sydney-runkle in [9515](https://github.com/pydantic/pydantic/pull/9515)

Fixes

* Replace `__spec__.parent` with `__package__` by hramezani in [9331](https://github.com/pydantic/pydantic/pull/9331)
* Fix validation of `int`s with leading unary minus by RajatRajdeep in [pydantic/pydantic-core1291](https://github.com/pydantic/pydantic-core/pull/1291)
* Fix `str` subclass validation for enums by sydney-runkle in [pydantic/pydantic-core1273](https://github.com/pydantic/pydantic-core/pull/1273)
* Support `BigInt`s in `Literal`s and `Enum`s by samuelcolvin in [pydantic/pydantic-core1297](https://github.com/pydantic/pydantic-core/pull/1297)
* Fix: uuid - allow `str` subclass as input by davidhewitt in [pydantic/pydantic-core1296](https://github.com/pydantic/pydantic-core/pull/1296)

2.7.1

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.1)

What's Changed

Packaging

* Bump `pydantic-core` to `v2.18.2` by sydney-runkle in [9307](https://github.com/pydantic/pydantic/pull/9307)

New Features

* Ftp and Websocket connection strings support by CherrySuryp in [9205](https://github.com/pydantic/pydantic/pull/9205)

Changes

* Use field description for RootModel schema description when there is `…` by LouisGobert in [9214](https://github.com/pydantic/pydantic/pull/9214)

Fixes

* Fix `validation_alias` behavior with `model_construct` for `AliasChoices` and `AliasPath` by sydney-runkle in [9223](https://github.com/pydantic/pydantic/pull/9223)
* Revert `typing.Literal` and import it outside the TYPE_CHECKING block by frost-nzcr4 in [9232](https://github.com/pydantic/pydantic/pull/9232)
* Fix `Secret` serialization schema, applicable for unions by sydney-runkle in [9240](https://github.com/pydantic/pydantic/pull/9240)
* Fix `strict` application to `function-after` with `use_enum_values` by sydney-runkle in [9279](https://github.com/pydantic/pydantic/pull/9279)
* Address case where `model_construct` on a class which defines `model_post_init` fails with `AttributeError` by babygrimes in [9168](https://github.com/pydantic/pydantic/pull/9168)
* Fix `model_json_schema` with config types by NeevCohen in [9287](https://github.com/pydantic/pydantic/pull/9287)
* Support multiple zeros as an `int` by samuelcolvin in [pydantic/pydantic-core1269](https://github.com/pydantic/pydantic-core/pull/1269)
* Fix validation of `int`s with leading unary plus by cknv in [pydantic/pydantic-core1272](https://github.com/pydantic/pydantic-core/pull/1272)
* Fix interaction between `extra != 'ignore'` and `from_attributes=True` by davidhewitt in [pydantic/pydantic-core1276](https://github.com/pydantic/pydantic-core/pull/1276)
* Handle error from `Enum`'s `missing` function as `ValidationError` by sydney-runkle in [pydantic/pydantic-core1274](https://github.com/pydantic/pydantic-core/pull/1754)
* Fix memory leak with `Iterable` validation by davidhewitt in [pydantic/pydantic-core1271](https://github.com/pydantic/pydantic-core/pull/1751)

New Contributors

* zzstoatzz made their first contribution in [9219](https://github.com/pydantic/pydantic/pull/9219)
* frost-nzcr4 made their first contribution in [9232](https://github.com/pydantic/pydantic/pull/9232)
* CherrySuryp made their first contribution in [9205](https://github.com/pydantic/pydantic/pull/9205)
* vagenas made their first contribution in [9268](https://github.com/pydantic/pydantic/pull/9268)
* ollz272 made their first contribution in [9262](https://github.com/pydantic/pydantic/pull/9262)
* babygrimes made their first contribution in [9168](https://github.com/pydantic/pydantic/pull/9168)
* swelborn made their first contribution in [9296](https://github.com/pydantic/pydantic/pull/9296)
* kf-novi made their first contribution in [9236](https://github.com/pydantic/pydantic/pull/9236)
* lgeiger made their first contribution in [9288](https://github.com/pydantic/pydantic/pull/9288)

2.7.0

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.0)

The code released in v2.7.0 is practically identical to that of v2.7.0b1.

What's Changed

Packaging

* Reorganize `pyproject.toml` sections by Viicos in [8899](https://github.com/pydantic/pydantic/pull/8899)
* Bump `pydantic-core` to `v2.18.1` by sydney-runkle in [9211](https://github.com/pydantic/pydantic/pull/9211)
* Adopt `jiter` `v0.2.0` by samuelcolvin in [pydantic/pydantic-core1250](https://github.com/pydantic/pydantic-core/pull/1250)

New Features

* Extract attribute docstrings from `FieldInfo.description` by Viicos in [6563](https://github.com/pydantic/pydantic/pull/6563)
* Add a `with_config` decorator to comply with typing spec by Viicos in [8611](https://github.com/pydantic/pydantic/pull/8611)
* Allow an optional separator splitting the value and unit of the result of `ByteSize.human_readable` by jks15satoshi in [8706](https://github.com/pydantic/pydantic/pull/8706)
* Add generic `Secret` base type by conradogarciaberrotaran in [8519](https://github.com/pydantic/pydantic/pull/8519)
* Make use of `Sphinx` inventories for cross references in docs by Viicos in [8682](https://github.com/pydantic/pydantic/pull/8682)
* Add environment variable to disable plugins by geospackle in [8767](https://github.com/pydantic/pydantic/pull/8767)
* Add support for `deprecated` fields by Viicos in [8237](https://github.com/pydantic/pydantic/pull/8237)
* Allow `field_serializer('*')` by ornariece in [9001](https://github.com/pydantic/pydantic/pull/9001)
* Handle a case when `model_config` is defined as a model property by alexeyt101 in [9004](https://github.com/pydantic/pydantic/pull/9004)
* Update `create_model()` to support `typing.Annotated` as input by wannieman98 in [8947](https://github.com/pydantic/pydantic/pull/8947)
* Add `ClickhouseDsn` support by solidguy7 in [9062](https://github.com/pydantic/pydantic/pull/9062)
* Add support for `re.Pattern[str]` to `pattern` field by jag-k in [9053](https://github.com/pydantic/pydantic/pull/9053)
* Support for `serialize_as_any` runtime setting by sydney-runkle in [8830](https://github.com/pydantic/pydantic/pull/8830)
* Add support for `typing.Self` by Youssefares in [9023](https://github.com/pydantic/pydantic/pull/9023)
* Ability to pass `context` to serialization by ornariece in [8965](https://github.com/pydantic/pydantic/pull/8965)
* Add feedback widget to docs with flarelytics integration by sydney-runkle in [9129](https://github.com/pydantic/pydantic/pull/9129)
* Support for parsing partial JSON strings in Python by samuelcolvin in [pydantic/jiter66](https://github.com/pydantic/jiter/pull/66)

2.7.0b1

Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.0b1) for details.

2.6.4

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.4)

What's Changed

Fixes

* Fix usage of `AliasGenerator` with `computed_field` decorator by sydney-runkle in [8806](https://github.com/pydantic/pydantic/pull/8806)
* Fix nested discriminated union schema gen, pt 2 by sydney-runkle in [8932](https://github.com/pydantic/pydantic/pull/8932)
* Fix bug with no_strict_optional=True caused by API deferral by dmontagu in [8826](https://github.com/pydantic/pydantic/pull/8826)

2.6.3

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.3)

What's Changed

Packaging

* Update `pydantic-settings` version in the docs by hramezani in [8906](https://github.com/pydantic/pydantic/pull/8906)

Fixes

* Fix discriminated union schema gen bug by sydney-runkle in [8904](https://github.com/pydantic/pydantic/pull/8904)

2.6.2

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.2)

What's Changed

Packaging

* Upgrade to `pydantic-core` 2.16.3 by sydney-runkle in [8879](https://github.com/pydantic/pydantic/pull/8879)

Fixes

* 'YYYY-MM-DD' date string coerced to datetime shouldn't infer timezone by sydney-runkle in [pydantic/pydantic-core1193](https://github.com/pydantic/pydantic-core/pull/1193)

2.6.1

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.1)

What's Changed

Packaging

* Upgrade to `pydantic-core` 2.16.2 by sydney-runkle in [8717](https://github.com/pydantic/pydantic/pull/8717)

Fixes

* Fix bug with `mypy` plugin and `no_strict_optional = True` by dmontagu in [8666](https://github.com/pydantic/pydantic/pull/8666)
* Fix `ByteSize` error `type` change by sydney-runkle in [8681](https://github.com/pydantic/pydantic/pull/8681)
* Fix inheriting `Field` annotations in dataclasses by sydney-runkle in [8679](https://github.com/pydantic/pydantic/pull/8679)
* Fix regression in core schema generation for indirect definition references by dmontagu in [8702](https://github.com/pydantic/pydantic/pull/8702)
* Fix unsupported types bug with `PlainValidator` by sydney-runkle in [8710](https://github.com/pydantic/pydantic/pull/8710)
* Reverting problematic fix from 2.6 release, fixing schema building bug by sydney-runkle in [8718](https://github.com/pydantic/pydantic/pull/8718)
* Fix warning for tuple of wrong size in `Union` by davidhewitt in [pydantic/pydantic-core1174](https://github.com/pydantic/pydantic-core/pull/1174)
* Fix `computed_field` JSON serializer `exclude_none` behavior by sydney-runkle in [pydantic/pydantic-core1187](https://github.com/pydantic/pydantic-core/pull/1187)

2.6.0

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0)

The code released in v2.6.0 is practically identical to that of v2.6.0b1.

What's Changed

Packaging

* Check for `email-validator` version >= 2.0 by commonism in [6033](https://github.com/pydantic/pydantic/pull/6033)
* Upgrade `ruff`` target version to Python 3.8 by Elkiwa in [8341](https://github.com/pydantic/pydantic/pull/8341)
* Update to `pydantic-extra-types==2.4.1` by yezz123 in [8478](https://github.com/pydantic/pydantic/pull/8478)
* Update to `pyright==1.1.345` by Viicos in [8453](https://github.com/pydantic/pydantic/pull/8453)
* Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1)

New Features

* Add `NatsDsn` by ekeew in [6874](https://github.com/pydantic/pydantic/pull/6874)
* Add `ConfigDict.ser_json_inf_nan` by davidhewitt in [8159](https://github.com/pydantic/pydantic/pull/8159)
* Add `types.OnErrorOmit` by adriangb in [8222](https://github.com/pydantic/pydantic/pull/8222)
* Support `AliasGenerator` usage by sydney-runkle in [8282](https://github.com/pydantic/pydantic/pull/8282)
* Add Pydantic People Page to docs by sydney-runkle in [8345](https://github.com/pydantic/pydantic/pull/8345)
* Support `yyyy-MM-DD` datetime parsing by sydney-runkle in [8404](https://github.com/pydantic/pydantic/pull/8404)
* Added bits conversions to the `ByteSize` class 8415 by luca-matei in [8507](https://github.com/pydantic/pydantic/pull/8507)
* Enable json schema creation with type `ByteSize` by geospackle in [8537](https://github.com/pydantic/pydantic/pull/8537)
* Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by alexmojaki in [8209](https://github.com/pydantic/pydantic/pull/8209)
* Add support for `dataclass` fields `init` by dmontagu in [8552](https://github.com/pydantic/pydantic/pull/8552)
* Implement pickling for `ValidationError` by davidhewitt in [pydantic/pydantic-core1119](https://github.com/pydantic/pydantic-core/pull/1119)
* Add unified tuple validator that can handle "variadic" tuples via PEP-646 by dmontagu in [pydantic/pydantic-core865](https://github.com/pydantic/pydantic-core/pull/865)

Changes

* Drop Python3.7 support by hramezani in [7188](https://github.com/pydantic/pydantic/pull/7188)
* Drop Python 3.7, and PyPy 3.7 and 3.8 by davidhewitt in [pydantic/pydantic-core1129](https://github.com/pydantic/pydantic-core/pull/1129)
* Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by ariebovenberg in [8072](https://github.com/pydantic/pydantic/pull/8072)
* Make `validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by alexmojaki in [8268](https://github.com/pydantic/pydantic/pull/8268)
* Exclude `BaseModel` docstring from JSON schema description by sydney-runkle in [8352](https://github.com/pydantic/pydantic/pull/8352)
* Introducing `classproperty` decorator for `model_computed_fields` by Jocelyn-Gas in [8437](https://github.com/pydantic/pydantic/pull/8437)
* Explicitly raise an error if field names clashes with types by Viicos in [8243](https://github.com/pydantic/pydantic/pull/8243)
* Use stricter serializer for unions of simple types by alexdrydew [pydantic/pydantic-core1132](https://github.com/pydantic/pydantic-core/pull/1132)

Performance

* Add Codspeed profiling Actions workflow  by lambertsbennett in [8054](https://github.com/pydantic/pydantic/pull/8054)
* Improve `int` extraction by samuelcolvin in [pydantic/pydantic-core1155](https://github.com/pydantic/pydantic-core/pull/1155)
* Improve performance of recursion guard by samuelcolvin in [pydantic/pydantic-core1156](https://github.com/pydantic/pydantic-core/pull/1156)
* `dataclass` serialization speedups by samuelcolvin in [pydantic/pydantic-core1162](https://github.com/pydantic/pydantic-core/pull/1162)
* Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by samuelcolvin in [pydantic/jiter55](https://github.com/pydantic/jiter/pull/55)
* use hashbrown to speedup python string caching by davidhewitt in [pydantic/jiter51](https://github.com/pydantic/jiter/pull/51)
* Replace `Peak` with more efficient `Peek` by davidhewitt in [pydantic/jiter48](https://github.com/pydantic/jiter/pull/48)

Fixes

* Move `getattr` warning in deprecated `BaseConfig` by tlambert03 in [7183](https://github.com/pydantic/pydantic/pull/7183)
* Only hash `model_fields`, not whole `__dict__` by alexmojaki in [7786](https://github.com/pydantic/pydantic/pull/7786)
* Fix mishandling of unions while freezing types in the `mypy` plugin by dmontagu in [7411](https://github.com/pydantic/pydantic/pull/7411)
* Fix `mypy` error on untyped `ClassVar` by vincent-hachin-wmx in [8138](https://github.com/pydantic/pydantic/pull/8138)
* Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by QuentinSoubeyranAqemia in [7825](https://github.com/pydantic/pydantic/pull/7825)
* Update `strict` docstring in `model_validate` method. by LukeTonin in [8223](https://github.com/pydantic/pydantic/pull/8223)
* Fix overload position of `computed_field` by Viicos in [8227](https://github.com/pydantic/pydantic/pull/8227)
* Fix custom type type casting used in multiple attributes by ianhfc in [8066](https://github.com/pydantic/pydantic/pull/8066)
* Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by jusexton in [8249](https://github.com/pydantic/pydantic/pull/8249)
* Fix issue `unittest.mock` deprecation warnings  by ibleedicare in [8262](https://github.com/pydantic/pydantic/pull/8262)
* Added tests for the case `JsonValue` contains subclassed primitive values by jusexton in [8286](https://github.com/pydantic/pydantic/pull/8286)
* Fix `mypy` error on free before validator (classmethod) by sydney-runkle in [8285](https://github.com/pydantic/pydantic/pull/8285)
* Fix `to_snake` conversion by jevins09 in [8316](https://github.com/pydantic/pydantic/pull/8316)
* Fix type annotation of `ModelMetaclass.__prepare__` by slanzmich in [8305](https://github.com/pydantic/pydantic/pull/8305)
* Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by sydney-runkle in [8365](https://github.com/pydantic/pydantic/pull/8365)
* Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by dmontagu in [8389](https://github.com/pydantic/pydantic/pull/8389)
* Fix type annotation in pydantic people script by shenxiangzhuang in [8402](https://github.com/pydantic/pydantic/pull/8402)
* Add support for field `alias` in `dataclass` signature by NeevCohen in [8387](https://github.com/pydantic/pydantic/pull/8387)
* Fix bug with schema generation with `Field(...)` in a forward ref by dmontagu in [8494](https://github.com/pydantic/pydantic/pull/8494)
* Fix ordering of keys in `__dict__` with `model_construct` call by sydney-runkle in [8500](https://github.com/pydantic/pydantic/pull/8500)
* Fix module `path_type` creation when globals does not contain `__name__` by hramezani in [8470](https://github.com/pydantic/pydantic/pull/8470)
* Fix for namespace issue with dataclasses with `from __future__ import annotations` by sydney-runkle in [8513](https://github.com/pydantic/pydantic/pull/8513)
* Fix: make function validator types positional-only by pmmmwh in [8479](https://github.com/pydantic/pydantic/pull/8479)
* Fix usage of `deprecated` by Viicos in [8294](https://github.com/pydantic/pydantic/pull/8294)
* Add more support for private attributes in `model_construct` call by sydney-runkle in [8525](https://github.com/pydantic/pydantic/pull/8525)
* Use a stack for the types namespace by dmontagu in [8378](https://github.com/pydantic/pydantic/pull/8378)
* Fix schema-building bug with `TypeAliasType` for types with refs by dmontagu in [8526](https://github.com/pydantic/pydantic/pull/8526)
* Support `pydantic.Field(repr=False)` in dataclasses by tigeryy2 in [8511](https://github.com/pydantic/pydantic/pull/8511)
* Override `dataclass_transform` behavior for `RootModel` by Viicos in [8163](https://github.com/pydantic/pydantic/pull/8163)
* Refactor signature generation for simplicity by sydney-runkle in [8572](https://github.com/pydantic/pydantic/pull/8572)
* Fix ordering bug of PlainValidator annotation by Anvil in [8567](https://github.com/pydantic/pydantic/pull/8567)
* Fix `exclude_none` for json serialization of `computed_field`s by sydney-runkle in [pydantic/pydantic-core1098](https://github.com/pydantic/pydantic-core/pull/1098)
* Support yyyy-MM-DD string for datetimes by sydney-runkle in [pydantic/pydantic-core1124](https://github.com/pydantic/pydantic-core/pull/1124)
* Tweak ordering of definitions in generated schemas by StrawHatDrag0n in [8583](https://github.com/pydantic/pydantic/pull/8583)


New Contributors

`pydantic`
* ekeew made their first contribution in [6874](https://github.com/pydantic/pydantic/pull/6874)
* lambertsbennett made their first contribution in [8054](https://github.com/pydantic/pydantic/pull/8054)
* vincent-hachin-wmx made their first contribution in [8138](https://github.com/pydantic/pydantic/pull/8138)
* QuentinSoubeyranAqemia made their first contribution in [7825](https://github.com/pydantic/pydantic/pull/7825)
* ariebovenberg made their first contribution in [8072](https://github.com/pydantic/pydantic/pull/8072)
* LukeTonin made their first contribution in [8223](https://github.com/pydantic/pydantic/pull/8223)
* denisart made their first contribution in [8231](https://github.com/pydantic/pydantic/pull/8231)
* ianhfc made their first contribution in [8066](https://github.com/pydantic/pydantic/pull/8066)
* eonu made their first contribution in [8255](https://github.com/pydantic/pydantic/pull/8255)
* amandahla made their first contribution in [8263](https://github.com/pydantic/pydantic/pull/8263)
* ibleedicare made their first contribution in [8262](https://github.com/pydantic/pydantic/pull/8262)
* jevins09 made their first contribution in [8316](https://github.com/pydantic/pydantic/pull/8316)
* cuu508 made their first contribution in [8322](https://github.com/pydantic/pydantic/pull/8322)
* slanzmich made their first contribution in [8305](https://github.com/pydantic/pydantic/pull/8305)
* jensenbox made their first contribution in [8331](https://github.com/pydantic/pydantic/pull/8331)
* szepeviktor made their first contribution in [8356](https://github.com/pydantic/pydantic/pull/8356)
* Elkiwa made their first contribution in [8341](https://github.com/pydantic/pydantic/pull/8341)
* parhamfh made their first contribution in [8395](https://github.com/pydantic/pydantic/pull/8395)
* shenxiangzhuang made their first contribution in [8402](https://github.com/pydantic/pydantic/pull/8402)
* NeevCohen made their first contribution in [8387](https://github.com/pydantic/pydantic/pull/8387)
* zby made their first contribution in [8497](https://github.com/pydantic/pydantic/pull/8497)
* patelnets made their first contribution in [8491](https://github.com/pydantic/pydantic/pull/8491)
* edwardwli made their first contribution in [8503](https://github.com/pydantic/pydantic/pull/8503)
* luca-matei made their first contribution in [8507](https://github.com/pydantic/pydantic/pull/8507)
* Jocelyn-Gas made their first contribution in [8437](https://github.com/pydantic/pydantic/pull/8437)
* bL34cHig0 made their first contribution in [8501](https://github.com/pydantic/pydantic/pull/8501)
* tigeryy2 made their first contribution in [8511](https://github.com/pydantic/pydantic/pull/8511)
* geospackle made their first contribution in [8537](https://github.com/pydantic/pydantic/pull/8537)
* Anvil made their first contribution in [8567](https://github.com/pydantic/pydantic/pull/8567)
* hungtsetse made their first contribution in [8546](https://github.com/pydantic/pydantic/pull/8546)
* StrawHatDrag0n made their first contribution in [8583](https://github.com/pydantic/pydantic/pull/8583)

`pydantic-core`
* mariuswinger made their first contribution in [pydantic/pydantic-core1087](https://github.com/pydantic/pydantic-core/pull/1087)
* adamchainz made their first contribution in [pydantic/pydantic-core1090](https://github.com/pydantic/pydantic-core/pull/1090)
* akx made their first contribution in [pydantic/pydantic-core1123](https://github.com/pydantic/pydantic-core/pull/1123)

2.6.0b1

Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0b1) for details.

2.5.3

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.3)

What's Changed

Packaging

* uprev `pydantic-core` to 2.14.6

Fixes

* Fix memory leak with recursive definitions creating reference cycles by davidhewitt in [pydantic/pydantic-core1125](https://github.com/pydantic/pydantic-core/pull/1125)

2.5.2

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.2)

What's Changed

Packaging

* uprev `pydantic-core` to 2.14.5

New Features

* Add `ConfigDict.ser_json_inf_nan` by davidhewitt in [8159](https://github.com/pydantic/pydantic/pull/8159)

Fixes

* Fix validation of `Literal` from JSON keys when used as `dict` key by sydney-runkle in [pydantic/pydantic-core1075](https://github.com/pydantic/pydantic-core/pull/1075)
* Fix bug re `custom_init` on members of `Union` by sydney-runkle in [pydantic/pydantic-core1076](https://github.com/pydantic/pydantic-core/pull/1076)
* Fix `JsonValue` `bool` serialization by sydney-runkle in [8190](https://github.com/pydantic/pydantic/pull/8159)
* Fix handling of unhashable inputs with `Literal` in `Union`s by sydney-runkle in [pydantic/pydantic-core1089](https://github.com/pydantic/pydantic-core/pull/1089)

2.5.1

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.1)

What's Changed

Packaging

* uprev pydantic-core to 2.14.3 by samuelcolvin in [8120](https://github.com/pydantic/pydantic/pull/8120)

Fixes

* Fix package description limit by dmontagu in [8097](https://github.com/pydantic/pydantic/pull/8097)
* Fix `ValidateCallWrapper` error when creating a model which has a validate_call wrapped field annotation by sydney-runkle in [8110](https://github.com/pydantic/pydantic/pull/8110)

2.5.0

[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.0)

The code released in v2.5.0 is functionally identical to that of v2.5.0b1.

What's Changed

Packaging

* Update pydantic-core from 2.10.1 to 2.14.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.10.1...v2.14.1)
* Update to `pyright==1.1.335` by Viicos in [8075](https://github.com/pydantic/pydantic/pull/8075)

New Features

* Allow plugins to catch non `ValidationError` errors by adriangb in [7806](https://github.com/pydantic/pydantic/pull/7806)
* Support `__doc__` argument in `create_model()` by chris-spann in [7863](https://github.com/pydantic/pydantic/pull/7863)
* Expose `regex_engine` flag - meaning you can use with the Rust or Python regex libraries in constraints by utkini in [7768](https://github.com/pydantic/pydantic/pull/7768)
* Save return type generated from type annotation in `ComputedFieldInfo` by alexmojaki in [7889](https://github.com/pydantic/pydantic/pull/7889)
* Adopting `ruff` formatter by Luca-Blight in [7930](https://github.com/pydantic/pydantic/pull/7930)
* Added `validation_error_cause` to config by zakstucke in [7626](https://github.com/pydantic/pydantic/pull/7626)
* Make path of the item to validate available in plugin by hramezani in [7861](https://github.com/pydantic/pydantic/pull/7861)
* Add `CallableDiscriminator` and `Tag` by dmontagu in [7983](https://github.com/pydantic/pydantic/pull/7983)
* `CallableDiscriminator` renamed to `Discriminator` by dmontagu in [8047](https://github.com/pydantic/pydantic/pull/8047)
* Make union case tags affect union error messages by dmontagu in [8001](https://github.com/pydantic/pydantic/pull/8001)
* Add `examples` and `json_schema_extra` to `computed_field` by alexmojaki in [8013](https://github.com/pydantic/pydantic/pull/8013)
* Add `JsonValue` type by dmontagu in [7998](https://github.com/pydantic/pydantic/pull/7998)
* Allow `str` as argument to `Discriminator` by dmontagu in [8047](https://github.com/pydantic/pydantic/pull/8047)
* Add `SchemaSerializer.__reduce__` method to enable pickle serialization by edoakes in [pydantic/pydantic-core1006](https://github.com/pydantic/pydantic-core/pull/1006)

Changes

* **Significant Change:** replace `ultra_strict` with new smart union implementation, the way unions are validated has changed significantly to improve performance and correctness, we have worked hard to absolutely minimise the number of cases where behaviour has changed, see the PR for details - by davidhewitt in [pydantic/pydantic-core867](https://github.com/pydantic/pydantic-core/pull/867)
* Add support for instance method reassignment when `extra='allow'` by sydney-runkle in [7683](https://github.com/pydantic/pydantic/pull/7683)
* Support JSON schema generation for `Enum` types with no cases by sydney-runkle in [7927](https://github.com/pydantic/pydantic/pull/7927)
* Warn if a class inherits from `Generic` before `BaseModel` by alexmojaki in [7891](https://github.com/pydantic/pydantic/pull/7891)

Performance

* New custom JSON parser, `jiter` by samuelcolvin in [pydantic/pydantic-core974](https://github.com/pydantic/pydantic-core/pull/974)
* PGO build for MacOS M1 by samuelcolvin in [pydantic/pydantic-core1063](https://github.com/pydantic/pydantic-core/pull/1063)
* Use `__getattr__` for all package imports, improve import time by samuelcolvin in [7947](https://github.com/pydantic/pydantic/pull/7947)

Fixes

* Fix `mypy` issue with subclasses of `RootModel` by sydney-runkle in [7677](https://github.com/pydantic/pydantic/pull/7677)
* Properly rebuild the `FieldInfo` when a forward ref gets evaluated by dmontagu in [7698](https://github.com/pydantic/pydantic/pull/7698)
* Fix failure to load `SecretStr` from JSON (regression in v2.4) by sydney-runkle in [7729](https://github.com/pydantic/pydantic/pull/7729)
* Fix `defer_build` behavior with `TypeAdapter` by sydney-runkle in [7736](https://github.com/pydantic/pydantic/pull/7736)
* Improve compatibility with legacy `mypy` versions by dmontagu in [7742](https://github.com/pydantic/pydantic/pull/7742)
* Fix: update `TypeVar` handling when default is not set by pmmmwh in [7719](https://github.com/pydantic/pydantic/pull/7719)
* Support specification of `strict` on `Enum` type fields by sydney-runkle in [7761](https://github.com/pydantic/pydantic/pull/7761)
* Wrap `weakref.ref` instead of subclassing to fix `cloudpickle` serialization by edoakes in [7780](https://github.com/pydantic/pydantic/pull/7780)
* Keep values of private attributes set within `model_post_init` in subclasses by alexmojaki in [7775](https://github.com/pydantic/pydantic/pull/7775)
* Add more specific type for non-callable `json_schema_extra` by alexmojaki in [7803](https://github.com/pydantic/pydantic/pull/7803)
* Raise an error when deleting frozen (model) fields by alexmojaki in [7800](https://github.com/pydantic/pydantic/pull/7800)
* Fix schema sorting bug with default values by sydney-runkle in [7817](https://github.com/pydantic/pydantic/pull/7817)
* Use generated alias for aliases that are not specified otherwise by alexmojaki in [7802](https://github.com/pydantic/pydantic/pull/7802)
* Support `strict` specification for `UUID` types by sydney-runkle in [7865](https://github.com/pydantic/pydantic/pull/7865)
* JSON schema: fix extra parameter handling by me-and in [7810](https://github.com/pydantic/pydantic/pull/7810)
* Fix: support `pydantic.Field(kw_only=True)` with inherited dataclasses by PrettyWood in [7827](https://github.com/pydantic/pydantic/pull/7827)
* Support `validate_call` decorator for methods in classes with `__slots__` by sydney-runkle in [7883](https://github.com/pydantic/pydantic/pull/7883)
* Fix pydantic dataclass problem with `dataclasses.field` default by hramezani in [7898](https://github.com/pydantic/pydantic/pull/7898)
* Fix schema generation for generics with union type bounds by sydney-runkle in [7899](https://github.com/pydantic/pydantic/pull/7899)
* Fix version for `importlib_metadata` on python 3.7 by sydney-runkle in [7904](https://github.com/pydantic/pydantic/pull/7904)
* Support `|` operator (Union) in PydanticRecursiveRef by alexmojaki in [7892](https://github.com/pydantic/pydantic/pull/7892)
* Fix `display_as_type` for `TypeAliasType` in python 3.12 by dmontagu in [7929](https://github.com/pydantic/pydantic/pull/7929)
* Add support for `NotRequired` generics in `TypedDict` by sydney-runkle in [7932](https://github.com/pydantic/pydantic/pull/7932)
* Make generic `TypeAliasType` specifications produce different schema definitions by alexdrydew in [7893](https://github.com/pydantic/pydantic/pull/7893)
* Added fix for signature of inherited dataclass by howsunjow in [7925](https://github.com/pydantic/pydantic/pull/7925)
* Make the model name generation more robust in JSON schema by joakimnordling in [7881](https://github.com/pydantic/pydantic/pull/7881)
* Fix plurals in validation error messages (in tests) by Iipin in [7972](https://github.com/pydantic/pydantic/pull/7972)
* `PrivateAttr` is passed from `Annotated` default position by tabassco in [8004](https://github.com/pydantic/pydantic/pull/8004)
* Don't decode bytes (which may not be UTF8) when displaying SecretBytes by alexmojaki in [8012](https://github.com/pydantic/pydantic/pull/8012)
* Use `classmethod` instead of `classmethod[Any, Any, Any]` by Mr-Pepe in [7979](https://github.com/pydantic/pydantic/pull/7979)
* Clearer error on invalid Plugin by samuelcolvin in [8023](https://github.com/pydantic/pydantic/pull/8023)
* Correct pydantic dataclasses import by samuelcolvin in [8027](https://github.com/pydantic/pydantic/pull/8027)
* Fix misbehavior for models referencing redefined type aliases by dmontagu in [8050](https://github.com/pydantic/pydantic/pull/8050)
* Fix `Optional` field with `validate_default` only performing one field validation by sydney-runkle in [pydantic/pydantic-core1002](https://github.com/pydantic/pydantic-core/pull/1002)
* Fix `definition-ref` bug with `Dict` keys by sydney-runkle in [pydantic/pydantic-core1014](https://github.com/pydantic/pydantic-core/pull/1014)
* Fix bug allowing validation of `bool` types with `coerce_numbers_to_str=True` by sydney-runkle in [pydantic/pydantic-core1017](https://github.com/pydantic/pydantic-core/pull/1017)
* Don't accept `NaN` in float and decimal constraints by davidhewitt in [pydantic/pydantic-core1037](https://github.com/pydantic/pydantic-core/pull/1037)
* Add `lax_str` and `lax_int` support for enum values not inherited from str/int by michaelhly in [pydantic/pydantic-core1015](https://github.com/pydantic/pydantic-core/pull/1015)
* Support subclasses in lists in `Union` of `List` types by sydney-runkle in [pydantic/pydantic-core1039](https://github.com/pydantic/pydantic-core/pull/1039)
* Allow validation against `max_digits` and `decimals` to pass if normalized or non-normalized input is valid by sydney-runkle in [pydantic/pydantic-core1049](https://github.com/pydantic/pydantic-core/pull/1049)
* Fix: proper pluralization in `ValidationError` messages by Iipin in [pydantic/pydantic-core1050](https://github.com/pydantic/pydantic-core/pull/1050)
* Disallow the string `'-'` as `datetime` input by davidhewitt in [pydantic/speedate52](https://github.com/pydantic/speedate/pull/52) & [pydantic/pydantic-core#1060](https://github.com/pydantic/pydantic-core/pull/1060)
* Fix: NaN and Inf float serialization by davidhewitt in [pydantic/pydantic-core1062](https://github.com/pydantic/pydantic-core/pull/1062)
* Restore manylinux-compatible PGO builds by davidhewitt in [pydantic/pydantic-core1068](https://github.com/pydantic/pydantic-core/pull/1068)

New Contributors

`pydantic`
* schneebuzz made their first contribution in [7699](https://github.com/pydantic/pydantic/pull/7699)
* edoakes made their first contribution in [7780](https://github.com/pydantic/pydantic/pull/7780)
* alexmojaki made their first contribution in [7775](https://github.com/pydantic/pydantic/pull/7775)
* NickG123 made their first contribution in [7751](https://github.com/pydantic/pydantic/pull/7751)
* gowthamgts made their first contribution in [7830](https://github.com/pydantic/pydantic/pull/7830)
* jamesbraza made their first contribution in [7848](https://github.com/pydantic/pydantic/pull/7848)
* laundmo made their first contribution in [7850](https://github.com/pydantic/pydantic/pull/7850)
* rahmatnazali made their first contribution in 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant