pydantic/pydantic (pydantic)
### [`v2.9.2`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v292-2024-09-17)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.9.1...v2.9.2)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.9.2)
##### What's Changed
##### Fixes
- Do not error when trying to evaluate annotations of private attributes by [@Viicos](https://redirect.github.com/Viicos) in [#10358](https://redirect.github.com/pydantic/pydantic/pull/10358)
- Adding notes on designing sound `Callable` discriminators by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10400](https://redirect.github.com/pydantic/pydantic/pull/10400)
- Fix serialization schema generation when using `PlainValidator` by [@Viicos](https://redirect.github.com/Viicos) in [#10427](https://redirect.github.com/pydantic/pydantic/pull/10427)
- Fix `Union` serialization warnings by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1449](https://redirect.github.com/pydantic/pydantic-core/pull/1449)
- Fix variance issue in `_IncEx` type alias, only allow `True` by [@Viicos](https://redirect.github.com/Viicos) in [#10414](https://redirect.github.com/pydantic/pydantic/pull/10414)
- Fix `ZoneInfo` validation with various invalid types by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10408](https://redirect.github.com/pydantic/pydantic/pull/10408)
### [`v2.9.1`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v291-2024-09-09)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.9.0...v2.9.1)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.9.1)
##### What's Changed
##### Fixes
- Fix Predicate issue in v2.9.0 by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10321](https://redirect.github.com/pydantic/pydantic/pull/10321)
- Fixing `annotated-types` bound to `>=0.6.0` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10327](https://redirect.github.com/pydantic/pydantic/pull/10327)
- Turn `tzdata` install requirement into optional `timezone` dependency by [@jakob-keller](https://redirect.github.com/jakob-keller) in [#10331](https://redirect.github.com/pydantic/pydantic/pull/10331)
- Fix `IncExc` type alias definition by [@Viicos](https://redirect.github.com/Viicos) in [#10339](https://redirect.github.com/pydantic/pydantic/pull/10339)
- Use correct types namespace when building namedtuple core schemas by [@Viicos](https://redirect.github.com/Viicos) in [#10337](https://redirect.github.com/pydantic/pydantic/pull/10337)
- Fix evaluation of stringified annotations during namespace inspection by [@Viicos](https://redirect.github.com/Viicos) in [#10347](https://redirect.github.com/pydantic/pydantic/pull/10347)
- Fix tagged union serialization with alias generators by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1442](https://redirect.github.com/pydantic/pydantic-core/pull/1442)
### [`v2.9.0`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v290-2024-09-05)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.8.2...v2.9.0)
[GitHub release](https://redirect.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://redirect.github.com/sydney-runkle) in [#9801](https://redirect.github.com/pydantic/pydantic/pull/9801)
- Bump `pydantic-extra-types` to `v2.9.0` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9832](https://redirect.github.com/pydantic/pydantic/pull/9832)
- Support compatibility with `pdm v2.18.1` by [@Viicos](https://redirect.github.com/Viicos) in [#10138](https://redirect.github.com/pydantic/pydantic/pull/10138)
- Bump `v1` version stub to `v1.10.18` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10214](https://redirect.github.com/pydantic/pydantic/pull/10214)
- Bump `pydantic-core` to `v2.23.2` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10311](https://redirect.github.com/pydantic/pydantic/pull/10311)
##### New Features
- Add support for `ZoneInfo` by [@Youssefares](https://redirect.github.com/Youssefares) in [#9896](https://redirect.github.com/pydantic/pydantic/pull/9896)
- Add `Config.val_json_bytes` by [@josh-newman](https://redirect.github.com/josh-newman) in [#9770](https://redirect.github.com/pydantic/pydantic/pull/9770)
- Add DSN for Snowflake by [@aditkumar72](https://redirect.github.com/aditkumar72) in [#10128](https://redirect.github.com/pydantic/pydantic/pull/10128)
- Support `complex` number by [@changhc](https://redirect.github.com/changhc) in [#9654](https://redirect.github.com/pydantic/pydantic/pull/9654)
- Add support for `annotated_types.Not` by [@aditkumar72](https://redirect.github.com/aditkumar72) in [#10210](https://redirect.github.com/pydantic/pydantic/pull/10210)
- Allow `WithJsonSchema` to inject `$ref`s w/ `http` or `https` links by [@dAIsySHEng1](https://redirect.github.com/dAIsySHEng1) in [#9863](https://redirect.github.com/pydantic/pydantic/pull/9863)
- Allow validators to customize validation JSON schema by [@Viicos](https://redirect.github.com/Viicos) in [#10094](https://redirect.github.com/pydantic/pydantic/pull/10094)
- Support parametrized `PathLike` types by [@nix010](https://redirect.github.com/nix010) in [#9764](https://redirect.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://redirect.github.com/sydney-runkle) in in [pydantic/pydantic-core#1397](https://redirect.github.com/pydantic/pydantic-core/pull/1397)
##### Changes
- Breaking Change: Merge `dict` type `json_schema_extra` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9792](https://redirect.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://redirect.github.com/sydney-runkle) in [#9979](https://redirect.github.com/pydantic/pydantic/pull/9979)
- Move annotation compatibility errors to validation phase by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9999](https://redirect.github.com/pydantic/pydantic/pull/9999)
- Improve runtime errors for string constraints like `pattern` for incompatible types by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10158](https://redirect.github.com/pydantic/pydantic/pull/10158)
- Remove `'allOf'` JSON schema workarounds by [@dpeachey](https://redirect.github.com/dpeachey) in [#10029](https://redirect.github.com/pydantic/pydantic/pull/10029)
- Remove `typed_dict_cls` data from `CoreMetadata` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10180](https://redirect.github.com/pydantic/pydantic/pull/10180)
- Deprecate passing a dict to the `Examples` class by [@Viicos](https://redirect.github.com/Viicos) in [#10181](https://redirect.github.com/pydantic/pydantic/pull/10181)
- Remove `initial_metadata` from internal metadata construct by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10194](https://redirect.github.com/pydantic/pydantic/pull/10194)
- Use `re.Pattern.search` instead of `re.Pattern.match` for consistency with `rust` behavior by [@tinez](https://redirect.github.com/tinez) in [pydantic/pydantic-core#1368](https://redirect.github.com/pydantic/pydantic-core/pull/1368)
- Show value of wrongly typed data in `pydantic-core` serialization warning by [@BoxyUwU](https://redirect.github.com/BoxyUwU) in [pydantic/pydantic-core#1377](https://redirect.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://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1411](https://redirect.github.com/pydantic/pydantic-core/pull/1411)
- Raise helpful warning when `self` isn't returned from model validator by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10255](https://redirect.github.com/pydantic/pydantic/pull/10255)
##### Performance
- Initial start at improving import times for modules, using caching primarily by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10009](https://redirect.github.com/pydantic/pydantic/pull/10009)
- Using cached internal import for `BaseModel` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10013](https://redirect.github.com/pydantic/pydantic/pull/10013)
- Simplify internal generics logic - remove generator overhead by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10059](https://redirect.github.com/pydantic/pydantic/pull/10059)
- Remove default module globals from types namespace by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10123](https://redirect.github.com/pydantic/pydantic/pull/10123)
- Performance boost: skip caching parent namespaces in most cases by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10113](https://redirect.github.com/pydantic/pydantic/pull/10113)
- Update ns stack with already copied ns by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10267](https://redirect.github.com/pydantic/pydantic/pull/10267)
##### Minor Internal Improvements
- ⚡️ Speed up `multiple_of_validator()` by 31% in `pydantic/_internal/_validators.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9839](https://redirect.github.com/pydantic/pydantic/pull/9839)
- ⚡️ Speed up `ModelPrivateAttr.__set_name__()` by 18% in `pydantic/fields.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9841](https://redirect.github.com/pydantic/pydantic/pull/9841)
- ⚡️ Speed up `dataclass()` by 7% in `pydantic/dataclasses.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9843](https://redirect.github.com/pydantic/pydantic/pull/9843)
- ⚡️ Speed up function `_field_name_for_signature` by 37% in `pydantic/_internal/_signature.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9951](https://redirect.github.com/pydantic/pydantic/pull/9951)
- ⚡️ Speed up method `GenerateSchema._unpack_refs_defs` by 26% in `pydantic/_internal/_generate_schema.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9949](https://redirect.github.com/pydantic/pydantic/pull/9949)
- ⚡️ Speed up function `apply_each_item_validators` by 100% in `pydantic/_internal/_generate_schema.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9950](https://redirect.github.com/pydantic/pydantic/pull/9950)
- ⚡️ Speed up method `ConfigWrapper.core_config` by 28% in `pydantic/_internal/_config.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9953](https://redirect.github.com/pydantic/pydantic/pull/9953)
##### Fixes
- Respect `use_enum_values` on `Literal` types by [@kwint](https://redirect.github.com/kwint) in [#9787](https://redirect.github.com/pydantic/pydantic/pull/9787)
- Prevent type error for exotic `BaseModel/RootModel` inheritance by [@dmontagu](https://redirect.github.com/dmontagu) in [#9913](https://redirect.github.com/pydantic/pydantic/pull/9913)
- Fix typing issue with field_validator-decorated methods by [@dmontagu](https://redirect.github.com/dmontagu) in [#9914](https://redirect.github.com/pydantic/pydantic/pull/9914)
- Replace `str` type annotation with `Any` in validator factories in documentation on validators by [@maximilianfellhuber](https://redirect.github.com/maximilianfellhuber) in [#9885](https://redirect.github.com/pydantic/pydantic/pull/9885)
- Fix `ComputedFieldInfo.wrapped_property` pointer when a property setter is assigned by [@tlambert03](https://redirect.github.com/tlambert03) in [#9892](https://redirect.github.com/pydantic/pydantic/pull/9892)
- Fix recursive typing of `main.IncEnx` by [@tlambert03](https://redirect.github.com/tlambert03) in [#9924](https://redirect.github.com/pydantic/pydantic/pull/9924)
- Allow usage of `type[Annotated[...]]` by [@Viicos](https://redirect.github.com/Viicos) in [#9932](https://redirect.github.com/pydantic/pydantic/pull/9932)
- `mypy` plugin: handle frozen fields on a per-field basis by [@dmontagu](https://redirect.github.com/dmontagu) in [#9935](https://redirect.github.com/pydantic/pydantic/pull/9935)
- Fix typo in `invalid-annotated-type` error code by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9948](https://redirect.github.com/pydantic/pydantic/pull/9948)
- Simplify schema generation for `uuid`, `url`, and `ip` types by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9975](https://redirect.github.com/pydantic/pydantic/pull/9975)
- Move `date` schemas to `_generate_schema.py` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9976](https://redirect.github.com/pydantic/pydantic/pull/9976)
- Move `decimal.Decimal` validation to `_generate_schema.py` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9977](https://redirect.github.com/pydantic/pydantic/pull/9977)
- Simplify IP address schema in `_std_types_schema.py` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9959](https://redirect.github.com/pydantic/pydantic/pull/9959)
- Fix type annotations for some potentially generic `GenerateSchema.match_type` options by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9961](https://redirect.github.com/pydantic/pydantic/pull/9961)
- Add class name to "has conflict" warnings by [@msabramo](https://redirect.github.com/msabramo) in [#9964](https://redirect.github.com/pydantic/pydantic/pull/9964)
- Fix `dataclass` ignoring `default_factory` passed in Annotated by [@kc0506](https://redirect.github.com/kc0506) in [#9971](https://redirect.github.com/pydantic/pydantic/pull/9971)
- Fix `Sequence` ignoring `discriminator` by [@kc0506](https://redirect.github.com/kc0506) in [#9980](https://redirect.github.com/pydantic/pydantic/pull/9980)
- Fix typing for `IPvAnyAddress` and `IPvAnyInterface` by [@haoyun](https://redirect.github.com/haoyun) in [#9990](https://redirect.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://redirect.github.com/radekwlsk) in [#9938](https://redirect.github.com/pydantic/pydantic/pull/9938)
- Apply `strict=True` to `__init__` in `mypy` plugin by [@kc0506](https://redirect.github.com/kc0506) in [#9998](https://redirect.github.com/pydantic/pydantic/pull/9998)
- Refactor application of `deque` annotations by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10018](https://redirect.github.com/pydantic/pydantic/pull/10018)
- Raise a better user error when failing to evaluate a forward reference by [@Viicos](https://redirect.github.com/Viicos) in [#10030](https://redirect.github.com/pydantic/pydantic/pull/10030)
- Fix evaluation of `__pydantic_extra__` annotation in specific circumstances by [@Viicos](https://redirect.github.com/Viicos) in [#10070](https://redirect.github.com/pydantic/pydantic/pull/10070)
- Fix `frozen` enforcement for `dataclasses` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10066](https://redirect.github.com/pydantic/pydantic/pull/10066)
- Remove logic to handle unused `__get_pydantic_core_schema__` signature by [@Viicos](https://redirect.github.com/Viicos) in [#10075](https://redirect.github.com/pydantic/pydantic/pull/10075)
- Use `is_annotated` consistently by [@Viicos](https://redirect.github.com/Viicos) in [#10095](https://redirect.github.com/pydantic/pydantic/pull/10095)
- Fix `PydanticDeprecatedSince26` typo by [@kc0506](https://redirect.github.com/kc0506) in [#10101](https://redirect.github.com/pydantic/pydantic/pull/10101)
- Improve `pyright` tests, refactor model decorators signatures by [@Viicos](https://redirect.github.com/Viicos) in [#10092](https://redirect.github.com/pydantic/pydantic/pull/10092)
- Fix `ip` serialization logic by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10112](https://redirect.github.com/pydantic/pydantic/pull/10112)
- Warn when frozen defined twice for `dataclasses` by [@mochi22](https://redirect.github.com/mochi22) in [#10082](https://redirect.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://redirect.github.com/Viicos) in [#10121](https://redirect.github.com/pydantic/pydantic/pull/10121)
- Fix `ImportString` special cases by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10137](https://redirect.github.com/pydantic/pydantic/pull/10137)
- Blacklist default globals to support exotic user code with `__` prefixed annotations by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10136](https://redirect.github.com/pydantic/pydantic/pull/10136)
- Handle `nullable` schemas with `serialization` schema available during JSON Schema generation by [@Viicos](https://redirect.github.com/Viicos) in [#10132](https://redirect.github.com/pydantic/pydantic/pull/10132)
- Reorganize `BaseModel` annotations by [@kc0506](https://redirect.github.com/kc0506) in [#10110](https://redirect.github.com/pydantic/pydantic/pull/10110)
- Fix core schema simplification when serialization schemas are involved in specific scenarios by [@Viicos](https://redirect.github.com/Viicos) in [#10155](https://redirect.github.com/pydantic/pydantic/pull/10155)
- Add support for stringified annotations when using `PrivateAttr` with `Annotated` by [@Viicos](https://redirect.github.com/Viicos) in [#10157](https://redirect.github.com/pydantic/pydantic/pull/10157)
- Fix JSON Schema `number` type for literal and enum schemas by [@Viicos](https://redirect.github.com/Viicos) in [#10172](https://redirect.github.com/pydantic/pydantic/pull/10172)
- Fix JSON Schema generation of fields with plain validators in serialization mode by [@Viicos](https://redirect.github.com/Viicos) in [#10167](https://redirect.github.com/pydantic/pydantic/pull/10167)
- Fix invalid JSON Schemas being generated for functions in certain scenarios by [@Viicos](https://redirect.github.com/Viicos) in [#10188](https://redirect.github.com/pydantic/pydantic/pull/10188)
- Make sure generated JSON Schemas are valid in tests by [@Viicos](https://redirect.github.com/Viicos) in [#10182](https://redirect.github.com/pydantic/pydantic/pull/10182)
- Fix key error with custom serializer by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10200](https://redirect.github.com/pydantic/pydantic/pull/10200)
- Add 'wss' for allowed schemes in NatsDsn by [@swelborn](https://redirect.github.com/swelborn) in [#10224](https://redirect.github.com/pydantic/pydantic/pull/10224)
- Fix `Mapping` and `MutableMapping` annotations to use mapping schema instead of dict schema by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10020](https://redirect.github.com/pydantic/pydantic/pull/10020)
- Fix JSON Schema generation for constrained dates by [@Viicos](https://redirect.github.com/Viicos) in [#10185](https://redirect.github.com/pydantic/pydantic/pull/10185)
- Fix discriminated union bug regression when using enums by [@kfreezen](https://redirect.github.com/kfreezen) in [pydantic/pydantic-core#1286](https://redirect.github.com/pydantic/pydantic-core/pull/1286)
- Fix `field_serializer` with computed field when using `*` by [@nix010](https://redirect.github.com/nix010) in [pydantic/pydantic-core#1349](https://redirect.github.com/pydantic/pydantic-core/pull/1349)
- Try each option in `Union` serializer before inference by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1398](https://redirect.github.com/pydantic/pydantic-core/pull/1398)
- Fix `float` serialization behavior in `strict` mode by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1400](https://redirect.github.com/pydantic/pydantic-core/pull/1400)
- Introduce `exactness` into Decimal validation logic to improve union validation behavior by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in in [pydantic/pydantic-core#1405](https://redirect.github.com/pydantic/pydantic-core/pull/1405)
- Fix new warnings assertions to use `pytest.warns()` by [@mgorny](https://redirect.github.com/mgorny) in [#10241](https://redirect.github.com/pydantic/pydantic/pull/10241)
- Fix a crash when cleaning the namespace in `ModelMetaclass` by [@Viicos](https://redirect.github.com/Viicos) in [#10242](https://redirect.github.com/pydantic/pydantic/pull/10242)
- Fix parent namespace issue with model rebuilds by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10257](https://redirect.github.com/pydantic/pydantic/pull/10257)
- Remove defaults filter for namespace by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10261](https://redirect.github.com/pydantic/pydantic/pull/10261)
- Use identity instead of equality after validating model in `__init__` by [@Viicos](https://redirect.github.com/Viicos) in [#10264](https://redirect.github.com/pydantic/pydantic/pull/10264)
- Support `BigInt` serialization for `int` subclasses by [@kxx317](https://redirect.github.com/kxx317) in [pydantic/pydantic-core#1417](https://redirect.github.com/pydantic/pydantic-core/pull/1417)
- Support signature for wrap validators without `info` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10277](https://redirect.github.com/pydantic/pydantic/pull/10277)
- Ensure `__pydantic_complete__` is set when rebuilding `dataclasses` by [@Viicos](https://redirect.github.com/Viicos) in [#10291](https://redirect.github.com/pydantic/pydantic/pull/10291)
- Respect `schema_generator` config value in `TypeAdapter` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10300](https://redirect.github.com/pydantic/pydantic/pull/10300)
##### New Contributors
##### `pydantic`
- [@kwint](https://redirect.github.com/kwint) made their first contribution in [#9787](https://redirect.github.com/pydantic/pydantic/pull/9787)
- [@seekinginfiniteloop](https://redirect.github.com/seekinginfiniteloop) made their first contribution in [#9822](https://redirect.github.com/pydantic/pydantic/pull/9822)
- [@a-alexander](https://redirect.github.com/a-alexander) made their first contribution in [#9848](https://redirect.github.com/pydantic/pydantic/pull/9848)
- [@maximilianfellhuber](https://redirect.github.com/maximilianfellhuber) made their first contribution in [#9885](https://redirect.github.com/pydantic/pydantic/pull/9885)
- [@karmaBonfire](https://redirect.github.com/karmaBonfire) made their first contribution in [#9945](https://redirect.github.com/pydantic/pydantic/pull/9945)
- [@s-rigaud](https://redirect.github.com/s-rigaud) made their first contribution in [#9958](https://redirect.github.com/pydantic/pydantic/pull/9958)
- [@msabramo](https://redirect.github.com/msabramo) made their first contribution in [#9964](https://redirect.github.com/pydantic/pydantic/pull/9964)
- [@DimaCybr](https://redirect.github.com/DimaCybr) made their first contribution in [#9972](https://redirect.github.com/pydantic/pydantic/pull/9972)
- [@kc0506](https://redirect.github.com/kc0506) made their first contribution in [#9971](https://redirect.github.com/pydantic/pydantic/pull/9971)
- [@haoyun](https://redirect.github.com/haoyun) made their first contribution in [#9990](https://redirect.github.com/pydantic/pydantic/pull/9990)
- [@radekwlsk](https://redirect.github.com/radekwlsk) made their first contribution in [#9938](https://redirect.github.com/pydantic/pydantic/pull/9938)
- [@dpeachey](https://redirect.github.com/dpeachey) made their first contribution in [#10029](https://redirect.github.com/pydantic/pydantic/pull/10029)
- [@BoxyUwU](https://redirect.github.com/BoxyUwU) made their first contribution in [#10085](https://redirect.github.com/pydantic/pydantic/pull/10085)
- [@mochi22](https://redirect.github.com/mochi22) made their first contribution in [#10082](https://redirect.github.com/pydantic/pydantic/pull/10082)
- [@aditkumar72](https://redirect.github.com/aditkumar72) made their first contribution in [#10128](https://redirect.github.com/pydantic/pydantic/pull/10128)
- [@changhc](https://redirect.github.com/changhc) made their first contribution in [#9654](https://redirect.github.com/pydantic/pydantic/pull/9654)
- [@insumanth](https://redirect.github.com/insumanth) made their first contribution in [#10229](https://redirect.github.com/pydantic/pydantic/pull/10229)
- [@AdolfoVillalobos](https://redirect.github.com/AdolfoVillalobos) made their first contribution in [#10240](https://redirect.github.com/pydantic/pydantic/pull/10240)
- [@bllchmbrs](https://redirect.github.com/bllchmbrs) made their first contribution in [#10270](https://redirect.github.com/pydantic/pydantic/pull/10270)
##### `pydantic-core`
- [@kfreezen](https://redirect.github.com/kfreezen) made their first contribution in [pydantic/pydantic-core#1286](https://redirect.github.com/pydantic/pydantic-core/pull/1286)
- [@tinez](https://redirect.github.com/tinez) made their first contribution in [pydantic/pydantic-core#1368](https://redirect.github.com/pydantic/pydantic-core/pull/1368)
- [@fft001](https://redirect.github.com/fft001) made their first contribution in [pydantic/pydantic-core#1362](https://redirect.github.com/pydantic/pydantic-core/pull/1362)
- [@nix010](https://redirect.github.com/nix010) made their first contribution in [pydantic/pydantic-core#1349](https://redirect.github.com/pydantic/pydantic-core/pull/1349)
- [@BoxyUwU](https://redirect.github.com/BoxyUwU) made their first contribution in [pydantic/pydantic-core#1379](https://redirect.github.com/pydantic/pydantic-core/pull/1379)
- [@candleindark](https://redirect.github.com/candleindark) made their first contribution in [pydantic/pydantic-core#1404](https://redirect.github.com/pydantic/pydantic-core/pull/1404)
- [@changhc](https://redirect.github.com/changhc) made their first contribution in [pydantic/pydantic-core#1331](https://redirect.github.com/pydantic/pydantic-core/pull/1331)
### [`v2.8.2`](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.8.2): (2024-07-03)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.8.1...v2.8.2)
#### What's Changed
##### Fixes
- Fix issue with assertion caused by pluggable schema validator by [@dmontagu](https://redirect.github.com/dmontagu) in [#9838](https://redirect.github.com/pydantic/pydantic/pull/9838)
**Full Changelog**: https://github.com/pydantic/pydantic/compare/v2.8.1...v2.8.2
### [`v2.8.1`](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.8.1): (2024-07-03)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.8.0...v2.8.1)
#### What's Changed
##### Packaging
- Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [https://github.com/pydantic/pydantic/pull/9801](https://redirect.github.com/pydantic/pydantic/pull/9801)
- Bump `pydantic-core` to `v2.20.1`, `pydantic-extra-types` to `v2.9.0` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [https://github.com/pydantic/pydantic/pull/9832](https://redirect.github.com/pydantic/pydantic/pull/9832)
##### Fixes
- Fix breaking change in `to_snake` from v2.7 -> v2.8 by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [https://github.com/pydantic/pydantic/pull/9812](https://redirect.github.com/pydantic/pydantic/pull/9812)
- Fix list constraint json schema application by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [https://github.com/pydantic/pydantic/pull/9818](https://redirect.github.com/pydantic/pydantic/pull/9818)
- Fix issue with assertion caused by pluggable schema validator by [@dmontagu](https://redirect.github.com/dmontagu) in [https://github.com/pydantic/pydantic/pull/9838](https://redirect.github.com/pydantic/pydantic/pull/9838)
#### New Contributors
- [@kwint](https://redirect.github.com/kwint) made their first contribution in [https://github.com/pydantic/pydantic/pull/9787](https://redirect.github.com/pydantic/pydantic/pull/9787)
- [@seekinginfiniteloop](https://redirect.github.com/seekinginfiniteloop) made their first contribution in [https://github.com/pydantic/pydantic/pull/9822](https://redirect.github.com/pydantic/pydantic/pull/9822)
**Full Changelog**: https://github.com/pydantic/pydantic/compare/v2.8.0...v2.8.1
### [`v2.8.0`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v280-2024-07-01)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.4...v2.8.0)
[GitHub release](https://redirect.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](https://redirect.github.com/sydney-runkle) in [#9673](https://redirect.github.com/pydantic/pydantic/pull/9673)
- Bump pyright to `v1.1.367` and add type checking tests for pipeline API by [@adriangb](https://redirect.github.com/adriangb) in [#9674](https://redirect.github.com/pydantic/pydantic/pull/9674)
- Update `pydantic.v1` stub to `v1.10.17` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9707](https://redirect.github.com/pydantic/pydantic/pull/9707)
- General package updates to prep for `v2.8.0b1` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9741](https://redirect.github.com/pydantic/pydantic/pull/9741)
- Bump `pydantic-core` to `v2.20.0` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9745](https://redirect.github.com/pydantic/pydantic/pull/9745)
- Add support for Python 3.13 by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9743](https://redirect.github.com/pydantic/pydantic/pull/9743)
- Update `pdm` version used for `pdm.lock` to v2.16.1 by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9761](https://redirect.github.com/pydantic/pydantic/pull/9761)
- Update to `ruff` `v0.4.8` by [@Viicos](https://redirect.github.com/Viicos) in [#9585](https://redirect.github.com/pydantic/pydantic/pull/9585)
##### New Features
- Experimental: support `defer_build` for `TypeAdapter` by [@MarkusSintonen](https://redirect.github.com/MarkusSintonen) in [#8939](https://redirect.github.com/pydantic/pydantic/pull/8939)
- Implement `deprecated` field in json schema by [@NeevCohen](https://redirect.github.com/NeevCohen) in [#9298](https://redirect.github.com/pydantic/pydantic/pull/9298)
- Experimental: Add pipeline API by [@adriangb](https://redirect.github.com/adriangb) in [#9459](https://redirect.github.com/pydantic/pydantic/pull/9459)
- Add support for programmatic title generation by [@NeevCohen](https://redirect.github.com/NeevCohen) in [#9183](https://redirect.github.com/pydantic/pydantic/pull/9183)
- Implement `fail_fast` feature by [@uriyyo](https://redirect.github.com/uriyyo) in [#9708](https://redirect.github.com/pydantic/pydantic/pull/9708)
- Add `ser_json_inf_nan='strings'` mode to produce valid JSON by [@josh-newman](https://redirect.github.com/josh-newman) in [pydantic/pydantic-core#1307](https://redirect.github.com/pydantic/pydantic-core/pull/1307)
##### Changes
- Add warning when "alias" is set in ignored `Annotated` field by [@nix010](https://redirect.github.com/nix010) in [#9170](https://redirect.github.com/pydantic/pydantic/pull/9170)
- Support serialization of some serializable defaults in JSON schema by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9624](https://redirect.github.com/pydantic/pydantic/pull/9624)
- Relax type specification for `__validators__` values in `create_model` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9697](https://redirect.github.com/pydantic/pydantic/pull/9697)
- **Breaking Change:** Improve `smart` union matching logic by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1322](https://redirect.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](https://redirect.github.com/misrasaurabh1) in [#9653](https://redirect.github.com/pydantic/pydantic/pull/9653)
- ⚡️ Speed up `_get_all_json_refs()` by 34% in `pydantic/json_schema.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9650](https://redirect.github.com/pydantic/pydantic/pull/9650)
- ⚡️ Speed up `is_pydantic_dataclass()` by 41% in `pydantic/dataclasses.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9652](https://redirect.github.com/pydantic/pydantic/pull/9652)
- ⚡️ Speed up `to_snake()` by 27% in `pydantic/alias_generators.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9747](https://redirect.github.com/pydantic/pydantic/pull/9747)
- ⚡️ Speed up `unwrap_wrapped_function()` by 93% in `pydantic/_internal/_decorators.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9727](https://redirect.github.com/pydantic/pydantic/pull/9727)
##### Fixes
- Replace `__spec__.parent` with `__package__` by [@hramezani](https://redirect.github.com/hramezani) in [#9331](https://redirect.github.com/pydantic/pydantic/pull/9331)
- Fix Outputted Model JSON Schema for `Sequence` type by [@anesmemisevic](https://redirect.github.com/anesmemisevic) in [#9303](https://redirect.github.com/pydantic/pydantic/pull/9303)
- Fix typing of `_frame_depth` by [@Viicos](https://redirect.github.com/Viicos) in [#9353](https://redirect.github.com/pydantic/pydantic/pull/9353)
- Make `ImportString` json schema compatible by [@amitschang](https://redirect.github.com/amitschang) in [#9344](https://redirect.github.com/pydantic/pydantic/pull/9344)
- Hide private attributes (`PrivateAttr`) from `__init__` signature in type checkers by [@idan22moral](https://redirect.github.com/idan22moral) in [#9293](https://redirect.github.com/pydantic/pydantic/pull/9293)
- Make detection of `TypeVar` defaults robust to the CPython `PEP-696` implementation by [@AlexWaygood](https://redirect.github.com/AlexWaygood) in [#9426](https://redirect.github.com/pydantic/pydantic/pull/9426)
- Fix usage of `PlainSerializer` with builtin types by [@Viicos](https://redirect.github.com/Viicos) in [#9450](https://redirect.github.com/pydantic/pydantic/pull/9450)
- Add more robust custom validation examples by [@ChrisPappalardo](https://redirect.github.com/ChrisPappalardo) in [#9468](https://redirect.github.com/pydantic/pydantic/pull/9468)
- Fix ignored `strict` specification for `StringConstraint(strict=False)` by [@vbmendes](https://redirect.github.com/vbmendes) in [#9476](https://redirect.github.com/pydantic/pydantic/pull/9476)
- Use `Self` where possible by [@Viicos](https://redirect.github.com/Viicos) in [#9479](https://redirect.github.com/pydantic/pydantic/pull/9479)
- Do not alter `RootModel.model_construct` signature in the `mypy` plugin by [@Viicos](https://redirect.github.com/Viicos) in [#9480](https://redirect.github.com/pydantic/pydantic/pull/9480)
- Fixed type hint of `validation_context` by [@OhioDschungel6](https://redirect.github.com/OhioDschungel6) in [#9508](https://redirect.github.com/pydantic/pydantic/pull/9508)
- Support context being passed to TypeAdapter's `dump_json`/`dump_python` by [@alexcouper](https://redirect.github.com/alexcouper) in [#9495](https://redirect.github.com/pydantic/pydantic/pull/9495)
- Updates type signature for `Field()` constructor by [@bjmc](https://redirect.github.com/bjmc) in [#9484](https://redirect.github.com/pydantic/pydantic/pull/9484)
- Improve builtin alias generators by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9561](https://redirect.github.com/pydantic/pydantic/pull/9561)
- Fix typing of `TypeAdapter` by [@Viicos](https://redirect.github.com/Viicos) in [#9570](https://redirect.github.com/pydantic/pydantic/pull/9570)
- Add fallback default value for private fields in `__setstate__` of BaseModel by [@anhpham1509](https://redirect.github.com/anhpham1509) in [#9584](https://redirect.github.com/pydantic/pydantic/pull/9584)
- Support `PEP 746` by [@adriangb](https://redirect.github.com/adriangb) in [#9587](https://redirect.github.com/pydantic/pydantic/pull/9587)
- Allow validator and serializer functions to have default values by [@Viicos](https://redirect.github.com/Viicos) in [#9478](https://redirect.github.com/pydantic/pydantic/pull/9478)
- Fix bug with mypy plugin's handling of covariant `TypeVar` fields by [@dmontagu](https://redirect.github.com/dmontagu) in [#9606](https://redirect.github.com/pydantic/pydantic/pull/9606)
- Fix multiple annotation / constraint application logic by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9623](https://redirect.github.com/pydantic/pydantic/pull/9623)
- Respect `regex` flags in validation and json schema by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9591](https://redirect.github.com/pydantic/pydantic/pull/9591)
- Fix type hint on `IpvAnyAddress` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9640](https://redirect.github.com/pydantic/pydantic/pull/9640)
- Allow a field specifier on `__pydantic_extra__` by [@dmontagu](https://redirect.github.com/dmontagu) in [#9659](https://redirect.github.com/pydantic/pydantic/pull/9659)
- Use normalized case for file path comparison by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9737](https://redirect.github.com/pydantic/pydantic/pull/9737)
- Modify constraint application logic to allow field constraints on `Optional[Decimal]` by [@lazyhope](https://redirect.github.com/lazyhope) in [#9754](https://redirect.github.com/pydantic/pydantic/pull/9754)
- `validate_call` type params fix by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9760](https://redirect.github.com/pydantic/pydantic/pull/9760)
- Check all warnings returned by pytest.warns() by [@s-t-e-v-e-n-k](https://redirect.github.com/s-t-e-v-e-n-k) in [#9702](https://redirect.github.com/pydantic/pydantic/pull/9702)
- Reuse `re.Pattern` object in regex patterns to allow for regex flags by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1318](https://redirect.github.com/pydantic/pydantic-core/pull/1318)
##### New Contributors
- [@idan22moral](https://redirect.github.com/idan22moral) made their first contribution in [#9294](https://redirect.github.com/pydantic/pydantic/pull/9294)
- [@anesmemisevic](https://redirect.github.com/anesmemisevic) made their first contribution in [#9303](https://redirect.github.com/pydantic/pydantic/pull/9303)
- [@max-muoto](https://redirect.github.com/max-muoto) made their first contribution in [#9338](https://redirect.github.com/pydantic/pydantic/pull/9338)
- [@amitschang](https://redirect.github.com/amitschang) made their first contribution in [#9344](https://redirect.github.com/pydantic/pydantic/pull/9344)
- [@paulmartin91](https://redirect.github.com/paulmartin91) made their first contribution in [#9410](https://redirect.github.com/pydantic/pydantic/pull/9410)
- [@OhioDschungel6](https://redirect.github.com/OhioDschungel6) made their first contribution in [#9405](https://redirect.github.com/pydantic/pydantic/pull/9405)
- [@AlexWaygood](https://redirect.github.com/AlexWaygood) made their first contribution in [#9426](https://redirect.github.com/pydantic/pydantic/pull/9426)
- [@kinuax](https://redirect.github.com/kinuax) made their first contribution in [#9433](https://redirect.github.com/pydantic/pydantic/pull/9433)
- [@antoni-jamiolkowski](https://redirect.github.com/antoni-jamiolkowski) made their first contribution in [#9431](https://redirect.github.com/pydantic/pydantic/pull/9431)
- [@candleindark](https://redirect.github.com/candleindark) made their first contribution in [#9448](https://redirect.github.com/pydantic/pydantic/pull/9448)
- [@nix010](https://redirect.github.com/nix010) made their first contribution in [#9170](https://redirect.github.com/pydantic/pydantic/pull/9170)
- [@tomy0000000](https://redirect.github.com/tomy0000000) made their first contribution in [#9457](https://redirect.github.com/pydantic/pydantic/pull/9457)
- [@vbmendes](https://redirect.github.com/vbmendes) made their first contribution in [#9470](https://redirect.github.com/pydantic/pydantic/pull/9470)
- [@micheleAlberto](https://redirect.github.com/micheleAlberto) made their first contribution in [#9471](https://redirect.github.com/pydantic/pydantic/pull/9471)
- [@ChrisPappalardo](https://redirect.github.com/ChrisPappalardo) made their first contribution in [#9468](https://redirect.github.com/pydantic/pydantic/pull/9468)
- [@blueTurtz](https://redirect.github.com/blueTurtz) made their first contribution in [#9475](https://redirect.github.com/pydantic/pydantic/pull/9475)
- [@WinterBlue16](https://redirect.github.com/WinterBlue16) made their first contribution in [#9477](https://redirect.github.com/pydantic/pydantic/pull/9477)
- [@bittner](https://redirect.github.com/bittner) made their first contribution in [#9500](https://redirect.github.com/pydantic/pydantic/pull/9500)
- [@alexcouper](https://redirect.github.com/alexcouper) made their first contribution in [#9495](https://redirect.github.com/pydantic/pydantic/pull/9495)
- [@bjmc](https://redirect.github.com/bjmc) made their first contribution in [#9484](https://redirect.github.com/pydantic/pydantic/pull/9484)
- [@pjvv](https://redirect.github.com/pjvv) made their first contribution in [#9529](https://redirect.github.com/pydantic/pydantic/pull/9529)
- [@nedbat](https://redirect.github.com/nedbat) made their first contribution in [#9530](https://redirect.github.com/pydantic/pydantic/pull/9530)
- [@gunnellEvan](https://redirect.github.com/gunnellEvan) made their first contribution in [#9469](https://redirect.github.com/pydantic/pydantic/pull/9469)
- [@jaymbans](https://redirect.github.com/jaymbans) made their first contribution in [#9531](https://redirect.github.com/pydantic/pydantic/pull/9531)
- [@MarcBresson](https://redirect.github.com/MarcBresson) made their first contribution in [#9534](https://redirect.github.com/pydantic/pydantic/pull/9534)
- [@anhpham1509](https://redirect.github.com/anhpham1509) made their first contribution in [#9584](https://redirect.github.com/pydantic/pydantic/pull/9584)
- [@K-dash](https://redirect.github.com/K-dash) made their first contribution in [#9595](https://redirect.github.com/pydantic/pydantic/pull/9595)
- [@s-t-e-v-e-n-k](https://redirect.github.com/s-t-e-v-e-n-k) made their first contribution in [#9527](https://redirect.github.com/pydantic/pydantic/pull/9527)
- [@airwoodix](https://redirect.github.com/airwoodix) made their first contribution in [#9506](https://redirect.github.com/pydantic/pydantic/pull/9506)
- [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) made their first contribution in [#9653](https://redirect.github.com/pydantic/pydantic/pull/9653)
- [@AlessandroMiola](https://redirect.github.com/AlessandroMiola) made their first contribution in [#9740](https://redirect.github.com/pydantic/pydantic/pull/9740)
- [@mylapallilavanyaa](https://redirect.github.com/mylapallilavanyaa) made their first contribution in [#9746](https://redirect.github.com/pydantic/pydantic/pull/9746)
- [@lazyhope](https://redirect.github.com/lazyhope) made their first contribution in [#9754](https://redirect.github.com/pydantic/pydantic/pull/9754)
- [@YassinNouh21](https://redirect.github.com/YassinNouh21) made their first contribution in [#9759](https://redirect.github.com/pydantic/pydantic/pull/9759)
### [`v2.7.4`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v274-2024-06-12)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.3...v2.7.4)
[Github release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.7.4)
##### What's Changed
##### Packaging
- Bump `pydantic.v1` to `v1.10.16` reference by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9639](https://redirect.github.com/pydantic/pydantic/pull/9639)
##### Fixes
- Specify `recursive_guard` as kwarg in `FutureRef._evaluate` by [@vfazio](https://redirect.github.com/vfazio) in [#9612](https://redirect.github.com/pydantic/pydantic/pull/9612)
### [`v2.7.3`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v273-2024-06-03)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.2...v2.7.3)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.7.3)
##### What's Changed
##### Packaging
- Bump `pydantic-core` to `v2.18.4` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9550](https://redirect.github.com/pydantic/pydantic/pull/9550)
##### Fixes
- Fix u style unicode strings in python [@samuelcolvin](https://redirect.github.com/samuelcolvin) in [pydantic/jiter#110](https://redirect.github.com/pydantic/jiter/pull/110)
### [`v2.7.2`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v272-2024-05-28)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.1...v2.7.2)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.7.2)
##### What's Changed
##### Packaging
- Bump `pydantic-core` to `v2.18.3` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9515](https://redirect.github.com/pydantic/pydantic/pull/9515)
##### Fixes
- Replace `__spec__.parent` with `__package__` by [@hramezani](https://redirect.github.com/hramezani) in [#9331](https://redirect.github.com/pydantic/pydantic/pull/9331)
- Fix validation of `int`s with leading unary minus by [@RajatRajdeep](https://redirect.github.com/RajatRajdeep) in [pydantic/pydantic-core#1291](https://redirect.github.com/pydantic/pydantic-core/pull/1291)
- Fix `str` subclass validation for enums by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in \[[pydantic/pydantic-core#1273](https://redirect.github.com/pydantic/pydantic-core/issues/1273)][https://github.com/pydantic/pydantic-core/pull/1273](https://redirect.github.com/pydantic/pydantic-core/pull/1273)
- Support `BigInt`s in `Literal`s and `Enum`s by [@samuelcolvin](https://redirect.github.com/samuelcolvin) in \[[pydantic/pydantic-core#1297](https://redirect.github.com/pydantic/pydantic-core/issues/1297)][https://github.com/pydantic/pydantic-core/pull/1297](https://redirect.github.com/pydantic/pydantic-core/pull/1297)
- Fix: uuid - allow `str` subclass as input by [@davidhewitt](https://redirect.github.com/davidhewitt) in \[[pydantic/pydantic-core#1296](https://redirect.github.com/pydantic/pydantic-core/issues/1296)][https://github.com/pydantic/pydantic-core/pull/1296](https://redirect.github.com/pydantic/pydantic-core/pull/1296)
### [`v2.7.1`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v271-2024-04-23)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.0...v2.7.1)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.7.1)
##### What's Changed
##### Packaging
- Bump `pydantic-core` to `v2.18.2` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9307](https://redirect.github.com/pydantic/pydantic/pull/9307)
##### New Features
- Ftp and Websocket connection strings support by [@CherrySuryp](https://redirect.github.com/CherrySuryp) in [#9205](https://redirect.github.com/pydantic/pydantic/pull/9205)
##### Changes
- Use field description for RootModel schema description when there is `…` by [@LouisGobert](https://redirect.github.com/LouisGobert) in [#9214](https://redirect.github.com/pydantic/pydantic/pull/9214)
##### Fixes
- Fix `validation_alias` behavior with `model_construct` for `AliasChoices` and `AliasPath` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9223](https://redirect.github.com/pydantic/pydantic/pull/9223)
- Revert `typing.Literal` and import it outside the TYPE_CHECKING block by [@frost-nzcr4](https://redirect.github.com/frost-nzcr4) in [#9232](https://redirect.github.com/pydantic/pydantic/pull/9232)
- Fix `Secret` serialization schema, applicable for unions by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9240](https://redirect.github.com/pydantic/pydantic/pull/9240)
- Fix `strict` application to `function-after` with `use_enum_values` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9279](https://redirect.github.com/pydantic/pydantic/pull/9279)
- Address case where `model_construct` on a class which defines `model_post_init` fails with `AttributeError` by [@babygrimes](https://redirect.github.com/babygrimes) in [#9168](https://redirect.github.com/pydantic/pydantic/pull/9168)
- Fix `model_json_schema` with config types by [@NeevCohen](https://redirect.github.com/NeevCohen) in [#9287](https://redirect.github.com/pydantic/pydantic/pull/9287)
- Support multiple zeros as an `int` by [@samuelcolvin](https://redirect.github.com/samuelcolvin) in [pydantic/pydantic-core#1269](https://redirect.github.com/pydantic/pydantic-core/pull/1269)
- Fix validation of `int`s with leading unary plus by [@cknv](https://redirect.github.com/cknv) in [pydantic/pydantic-core#1272](https://redirect.github.com/pydantic/pydantic-core/pull/1272)
- Fix interaction between `extra != 'ignore'` and `from_attributes=True` by [@davidhewitt](https://redirect.github.com/davidhewitt) in [pydantic/pydantic-core#1276](https://redirect.github.com/pydantic/pydantic-core/pull/1276)
- Handle error from `Enum`'s `missing` function as `ValidationError` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1274](https://redirect.github.com/pydantic/pydantic-core/pull/1754)
- Fix memory leak with `Iterable` validation by [@davidhewitt](https://redirect.github.com/davidhewitt) in [pydantic/pydantic-core#1271](https://redirect.github.com/pydantic/pydantic-core/pull/1751)
##### New Contributors
- [@zzstoatzz](https://redirect.github.com/zzstoatzz) made their first contribution in [#9219](https://redirect.github.com/pydantic/pydantic/pull/9219)
- [@frost-nzcr4](https://redirect.github.com/frost-nzcr4) made their first contribution in [#9232](https://redirect.github.com/pydantic/pydantic/pull/9232)
- [@CherrySuryp](https://redirect.github.com/CherrySuryp) made their first contribution in [#9205](https://redirect.github.com/pydantic/pydantic/pull/9205)
- [@vagenas](https://redirect.github.com/vagenas) made their first contribution in [#9268](https://redirect.github.com/pydantic/pydantic/pull/9268)
- [@ollz272](https://redirect.github.com/ollz272) made their first contribution in [#9262](https://redirect.github.com/pydantic/pydantic/pull/9262)
- [@babygrimes](https://redirect.github.com/babygrimes) made their first contribution in [#9168](https://redirect.github.com/pydantic/pydantic/pull/9168)
- [@swelborn](https://redirect.github.com/swelborn) made their first contribution in [#9296](https://redirect.github.com/pydantic/pydantic/pull/9296)
- [@kf-novi](https://redirect.github.com/kf-novi) made their first contribution in [#9236](https://redirect.github.com/pydantic/pydantic/pull/9236)
- [@lgeiger](https://redirect.github.com/lgeiger) made their first contribution in [#9288](https://redirect.github.com/pydantic/pydantic/pull/9288)
### [`v2.7.0`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v270-2024-04-11)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.6.4...v2.7.0)
[GitHub release](https://redirect.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](https://redirect.github.com/Viicos) in [#8899](https://redirect.github.com/pydantic/pydantic/pull/8899)
- Bump `pydantic-core` to `v2.18.1` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9211](https://redirect.github.com/pydantic/pydantic/pull/9211)
- Adopt `jiter` `v0.2.0` by [@samuelcolvin](https://redirect.github.com/samuelcolvin) in [pydantic/pydantic-core#1250](https://redirect.github.com/pydantic/pydantic-core/pull/1250)
##### New Features
- Extract attribute docstrings from `FieldInfo.description` by [@Viicos](https://redirect.github.com/Viicos) in [#6563](https://redirect.github.com/pydantic/pydantic/pull/6563)
- Add a `with_config` decorator to comply with typing spec by [@Viicos](https://redirect.github.com/Viicos) in
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
~= 2.5.3
->~=2.9.2
~= 8.2.3
->~=8.5.0
Release Notes
pydantic/pydantic (pydantic)
### [`v2.9.2`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v292-2024-09-17) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.9.1...v2.9.2) [GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.9.2) ##### What's Changed ##### Fixes - Do not error when trying to evaluate annotations of private attributes by [@Viicos](https://redirect.github.com/Viicos) in [#10358](https://redirect.github.com/pydantic/pydantic/pull/10358) - Adding notes on designing sound `Callable` discriminators by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10400](https://redirect.github.com/pydantic/pydantic/pull/10400) - Fix serialization schema generation when using `PlainValidator` by [@Viicos](https://redirect.github.com/Viicos) in [#10427](https://redirect.github.com/pydantic/pydantic/pull/10427) - Fix `Union` serialization warnings by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1449](https://redirect.github.com/pydantic/pydantic-core/pull/1449) - Fix variance issue in `_IncEx` type alias, only allow `True` by [@Viicos](https://redirect.github.com/Viicos) in [#10414](https://redirect.github.com/pydantic/pydantic/pull/10414) - Fix `ZoneInfo` validation with various invalid types by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10408](https://redirect.github.com/pydantic/pydantic/pull/10408) ### [`v2.9.1`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v291-2024-09-09) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.9.0...v2.9.1) [GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.9.1) ##### What's Changed ##### Fixes - Fix Predicate issue in v2.9.0 by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10321](https://redirect.github.com/pydantic/pydantic/pull/10321) - Fixing `annotated-types` bound to `>=0.6.0` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10327](https://redirect.github.com/pydantic/pydantic/pull/10327) - Turn `tzdata` install requirement into optional `timezone` dependency by [@jakob-keller](https://redirect.github.com/jakob-keller) in [#10331](https://redirect.github.com/pydantic/pydantic/pull/10331) - Fix `IncExc` type alias definition by [@Viicos](https://redirect.github.com/Viicos) in [#10339](https://redirect.github.com/pydantic/pydantic/pull/10339) - Use correct types namespace when building namedtuple core schemas by [@Viicos](https://redirect.github.com/Viicos) in [#10337](https://redirect.github.com/pydantic/pydantic/pull/10337) - Fix evaluation of stringified annotations during namespace inspection by [@Viicos](https://redirect.github.com/Viicos) in [#10347](https://redirect.github.com/pydantic/pydantic/pull/10347) - Fix tagged union serialization with alias generators by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1442](https://redirect.github.com/pydantic/pydantic-core/pull/1442) ### [`v2.9.0`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v290-2024-09-05) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.8.2...v2.9.0) [GitHub release](https://redirect.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://redirect.github.com/sydney-runkle) in [#9801](https://redirect.github.com/pydantic/pydantic/pull/9801) - Bump `pydantic-extra-types` to `v2.9.0` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9832](https://redirect.github.com/pydantic/pydantic/pull/9832) - Support compatibility with `pdm v2.18.1` by [@Viicos](https://redirect.github.com/Viicos) in [#10138](https://redirect.github.com/pydantic/pydantic/pull/10138) - Bump `v1` version stub to `v1.10.18` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10214](https://redirect.github.com/pydantic/pydantic/pull/10214) - Bump `pydantic-core` to `v2.23.2` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10311](https://redirect.github.com/pydantic/pydantic/pull/10311) ##### New Features - Add support for `ZoneInfo` by [@Youssefares](https://redirect.github.com/Youssefares) in [#9896](https://redirect.github.com/pydantic/pydantic/pull/9896) - Add `Config.val_json_bytes` by [@josh-newman](https://redirect.github.com/josh-newman) in [#9770](https://redirect.github.com/pydantic/pydantic/pull/9770) - Add DSN for Snowflake by [@aditkumar72](https://redirect.github.com/aditkumar72) in [#10128](https://redirect.github.com/pydantic/pydantic/pull/10128) - Support `complex` number by [@changhc](https://redirect.github.com/changhc) in [#9654](https://redirect.github.com/pydantic/pydantic/pull/9654) - Add support for `annotated_types.Not` by [@aditkumar72](https://redirect.github.com/aditkumar72) in [#10210](https://redirect.github.com/pydantic/pydantic/pull/10210) - Allow `WithJsonSchema` to inject `$ref`s w/ `http` or `https` links by [@dAIsySHEng1](https://redirect.github.com/dAIsySHEng1) in [#9863](https://redirect.github.com/pydantic/pydantic/pull/9863) - Allow validators to customize validation JSON schema by [@Viicos](https://redirect.github.com/Viicos) in [#10094](https://redirect.github.com/pydantic/pydantic/pull/10094) - Support parametrized `PathLike` types by [@nix010](https://redirect.github.com/nix010) in [#9764](https://redirect.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://redirect.github.com/sydney-runkle) in in [pydantic/pydantic-core#1397](https://redirect.github.com/pydantic/pydantic-core/pull/1397) ##### Changes - Breaking Change: Merge `dict` type `json_schema_extra` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9792](https://redirect.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://redirect.github.com/sydney-runkle) in [#9979](https://redirect.github.com/pydantic/pydantic/pull/9979) - Move annotation compatibility errors to validation phase by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9999](https://redirect.github.com/pydantic/pydantic/pull/9999) - Improve runtime errors for string constraints like `pattern` for incompatible types by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10158](https://redirect.github.com/pydantic/pydantic/pull/10158) - Remove `'allOf'` JSON schema workarounds by [@dpeachey](https://redirect.github.com/dpeachey) in [#10029](https://redirect.github.com/pydantic/pydantic/pull/10029) - Remove `typed_dict_cls` data from `CoreMetadata` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10180](https://redirect.github.com/pydantic/pydantic/pull/10180) - Deprecate passing a dict to the `Examples` class by [@Viicos](https://redirect.github.com/Viicos) in [#10181](https://redirect.github.com/pydantic/pydantic/pull/10181) - Remove `initial_metadata` from internal metadata construct by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10194](https://redirect.github.com/pydantic/pydantic/pull/10194) - Use `re.Pattern.search` instead of `re.Pattern.match` for consistency with `rust` behavior by [@tinez](https://redirect.github.com/tinez) in [pydantic/pydantic-core#1368](https://redirect.github.com/pydantic/pydantic-core/pull/1368) - Show value of wrongly typed data in `pydantic-core` serialization warning by [@BoxyUwU](https://redirect.github.com/BoxyUwU) in [pydantic/pydantic-core#1377](https://redirect.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://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1411](https://redirect.github.com/pydantic/pydantic-core/pull/1411) - Raise helpful warning when `self` isn't returned from model validator by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10255](https://redirect.github.com/pydantic/pydantic/pull/10255) ##### Performance - Initial start at improving import times for modules, using caching primarily by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10009](https://redirect.github.com/pydantic/pydantic/pull/10009) - Using cached internal import for `BaseModel` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10013](https://redirect.github.com/pydantic/pydantic/pull/10013) - Simplify internal generics logic - remove generator overhead by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10059](https://redirect.github.com/pydantic/pydantic/pull/10059) - Remove default module globals from types namespace by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10123](https://redirect.github.com/pydantic/pydantic/pull/10123) - Performance boost: skip caching parent namespaces in most cases by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10113](https://redirect.github.com/pydantic/pydantic/pull/10113) - Update ns stack with already copied ns by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10267](https://redirect.github.com/pydantic/pydantic/pull/10267) ##### Minor Internal Improvements - ⚡️ Speed up `multiple_of_validator()` by 31% in `pydantic/_internal/_validators.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9839](https://redirect.github.com/pydantic/pydantic/pull/9839) - ⚡️ Speed up `ModelPrivateAttr.__set_name__()` by 18% in `pydantic/fields.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9841](https://redirect.github.com/pydantic/pydantic/pull/9841) - ⚡️ Speed up `dataclass()` by 7% in `pydantic/dataclasses.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9843](https://redirect.github.com/pydantic/pydantic/pull/9843) - ⚡️ Speed up function `_field_name_for_signature` by 37% in `pydantic/_internal/_signature.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9951](https://redirect.github.com/pydantic/pydantic/pull/9951) - ⚡️ Speed up method `GenerateSchema._unpack_refs_defs` by 26% in `pydantic/_internal/_generate_schema.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9949](https://redirect.github.com/pydantic/pydantic/pull/9949) - ⚡️ Speed up function `apply_each_item_validators` by 100% in `pydantic/_internal/_generate_schema.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9950](https://redirect.github.com/pydantic/pydantic/pull/9950) - ⚡️ Speed up method `ConfigWrapper.core_config` by 28% in `pydantic/_internal/_config.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9953](https://redirect.github.com/pydantic/pydantic/pull/9953) ##### Fixes - Respect `use_enum_values` on `Literal` types by [@kwint](https://redirect.github.com/kwint) in [#9787](https://redirect.github.com/pydantic/pydantic/pull/9787) - Prevent type error for exotic `BaseModel/RootModel` inheritance by [@dmontagu](https://redirect.github.com/dmontagu) in [#9913](https://redirect.github.com/pydantic/pydantic/pull/9913) - Fix typing issue with field_validator-decorated methods by [@dmontagu](https://redirect.github.com/dmontagu) in [#9914](https://redirect.github.com/pydantic/pydantic/pull/9914) - Replace `str` type annotation with `Any` in validator factories in documentation on validators by [@maximilianfellhuber](https://redirect.github.com/maximilianfellhuber) in [#9885](https://redirect.github.com/pydantic/pydantic/pull/9885) - Fix `ComputedFieldInfo.wrapped_property` pointer when a property setter is assigned by [@tlambert03](https://redirect.github.com/tlambert03) in [#9892](https://redirect.github.com/pydantic/pydantic/pull/9892) - Fix recursive typing of `main.IncEnx` by [@tlambert03](https://redirect.github.com/tlambert03) in [#9924](https://redirect.github.com/pydantic/pydantic/pull/9924) - Allow usage of `type[Annotated[...]]` by [@Viicos](https://redirect.github.com/Viicos) in [#9932](https://redirect.github.com/pydantic/pydantic/pull/9932) - `mypy` plugin: handle frozen fields on a per-field basis by [@dmontagu](https://redirect.github.com/dmontagu) in [#9935](https://redirect.github.com/pydantic/pydantic/pull/9935) - Fix typo in `invalid-annotated-type` error code by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9948](https://redirect.github.com/pydantic/pydantic/pull/9948) - Simplify schema generation for `uuid`, `url`, and `ip` types by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9975](https://redirect.github.com/pydantic/pydantic/pull/9975) - Move `date` schemas to `_generate_schema.py` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9976](https://redirect.github.com/pydantic/pydantic/pull/9976) - Move `decimal.Decimal` validation to `_generate_schema.py` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9977](https://redirect.github.com/pydantic/pydantic/pull/9977) - Simplify IP address schema in `_std_types_schema.py` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9959](https://redirect.github.com/pydantic/pydantic/pull/9959) - Fix type annotations for some potentially generic `GenerateSchema.match_type` options by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9961](https://redirect.github.com/pydantic/pydantic/pull/9961) - Add class name to "has conflict" warnings by [@msabramo](https://redirect.github.com/msabramo) in [#9964](https://redirect.github.com/pydantic/pydantic/pull/9964) - Fix `dataclass` ignoring `default_factory` passed in Annotated by [@kc0506](https://redirect.github.com/kc0506) in [#9971](https://redirect.github.com/pydantic/pydantic/pull/9971) - Fix `Sequence` ignoring `discriminator` by [@kc0506](https://redirect.github.com/kc0506) in [#9980](https://redirect.github.com/pydantic/pydantic/pull/9980) - Fix typing for `IPvAnyAddress` and `IPvAnyInterface` by [@haoyun](https://redirect.github.com/haoyun) in [#9990](https://redirect.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://redirect.github.com/radekwlsk) in [#9938](https://redirect.github.com/pydantic/pydantic/pull/9938) - Apply `strict=True` to `__init__` in `mypy` plugin by [@kc0506](https://redirect.github.com/kc0506) in [#9998](https://redirect.github.com/pydantic/pydantic/pull/9998) - Refactor application of `deque` annotations by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10018](https://redirect.github.com/pydantic/pydantic/pull/10018) - Raise a better user error when failing to evaluate a forward reference by [@Viicos](https://redirect.github.com/Viicos) in [#10030](https://redirect.github.com/pydantic/pydantic/pull/10030) - Fix evaluation of `__pydantic_extra__` annotation in specific circumstances by [@Viicos](https://redirect.github.com/Viicos) in [#10070](https://redirect.github.com/pydantic/pydantic/pull/10070) - Fix `frozen` enforcement for `dataclasses` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10066](https://redirect.github.com/pydantic/pydantic/pull/10066) - Remove logic to handle unused `__get_pydantic_core_schema__` signature by [@Viicos](https://redirect.github.com/Viicos) in [#10075](https://redirect.github.com/pydantic/pydantic/pull/10075) - Use `is_annotated` consistently by [@Viicos](https://redirect.github.com/Viicos) in [#10095](https://redirect.github.com/pydantic/pydantic/pull/10095) - Fix `PydanticDeprecatedSince26` typo by [@kc0506](https://redirect.github.com/kc0506) in [#10101](https://redirect.github.com/pydantic/pydantic/pull/10101) - Improve `pyright` tests, refactor model decorators signatures by [@Viicos](https://redirect.github.com/Viicos) in [#10092](https://redirect.github.com/pydantic/pydantic/pull/10092) - Fix `ip` serialization logic by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10112](https://redirect.github.com/pydantic/pydantic/pull/10112) - Warn when frozen defined twice for `dataclasses` by [@mochi22](https://redirect.github.com/mochi22) in [#10082](https://redirect.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://redirect.github.com/Viicos) in [#10121](https://redirect.github.com/pydantic/pydantic/pull/10121) - Fix `ImportString` special cases by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10137](https://redirect.github.com/pydantic/pydantic/pull/10137) - Blacklist default globals to support exotic user code with `__` prefixed annotations by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10136](https://redirect.github.com/pydantic/pydantic/pull/10136) - Handle `nullable` schemas with `serialization` schema available during JSON Schema generation by [@Viicos](https://redirect.github.com/Viicos) in [#10132](https://redirect.github.com/pydantic/pydantic/pull/10132) - Reorganize `BaseModel` annotations by [@kc0506](https://redirect.github.com/kc0506) in [#10110](https://redirect.github.com/pydantic/pydantic/pull/10110) - Fix core schema simplification when serialization schemas are involved in specific scenarios by [@Viicos](https://redirect.github.com/Viicos) in [#10155](https://redirect.github.com/pydantic/pydantic/pull/10155) - Add support for stringified annotations when using `PrivateAttr` with `Annotated` by [@Viicos](https://redirect.github.com/Viicos) in [#10157](https://redirect.github.com/pydantic/pydantic/pull/10157) - Fix JSON Schema `number` type for literal and enum schemas by [@Viicos](https://redirect.github.com/Viicos) in [#10172](https://redirect.github.com/pydantic/pydantic/pull/10172) - Fix JSON Schema generation of fields with plain validators in serialization mode by [@Viicos](https://redirect.github.com/Viicos) in [#10167](https://redirect.github.com/pydantic/pydantic/pull/10167) - Fix invalid JSON Schemas being generated for functions in certain scenarios by [@Viicos](https://redirect.github.com/Viicos) in [#10188](https://redirect.github.com/pydantic/pydantic/pull/10188) - Make sure generated JSON Schemas are valid in tests by [@Viicos](https://redirect.github.com/Viicos) in [#10182](https://redirect.github.com/pydantic/pydantic/pull/10182) - Fix key error with custom serializer by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10200](https://redirect.github.com/pydantic/pydantic/pull/10200) - Add 'wss' for allowed schemes in NatsDsn by [@swelborn](https://redirect.github.com/swelborn) in [#10224](https://redirect.github.com/pydantic/pydantic/pull/10224) - Fix `Mapping` and `MutableMapping` annotations to use mapping schema instead of dict schema by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10020](https://redirect.github.com/pydantic/pydantic/pull/10020) - Fix JSON Schema generation for constrained dates by [@Viicos](https://redirect.github.com/Viicos) in [#10185](https://redirect.github.com/pydantic/pydantic/pull/10185) - Fix discriminated union bug regression when using enums by [@kfreezen](https://redirect.github.com/kfreezen) in [pydantic/pydantic-core#1286](https://redirect.github.com/pydantic/pydantic-core/pull/1286) - Fix `field_serializer` with computed field when using `*` by [@nix010](https://redirect.github.com/nix010) in [pydantic/pydantic-core#1349](https://redirect.github.com/pydantic/pydantic-core/pull/1349) - Try each option in `Union` serializer before inference by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1398](https://redirect.github.com/pydantic/pydantic-core/pull/1398) - Fix `float` serialization behavior in `strict` mode by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1400](https://redirect.github.com/pydantic/pydantic-core/pull/1400) - Introduce `exactness` into Decimal validation logic to improve union validation behavior by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in in [pydantic/pydantic-core#1405](https://redirect.github.com/pydantic/pydantic-core/pull/1405) - Fix new warnings assertions to use `pytest.warns()` by [@mgorny](https://redirect.github.com/mgorny) in [#10241](https://redirect.github.com/pydantic/pydantic/pull/10241) - Fix a crash when cleaning the namespace in `ModelMetaclass` by [@Viicos](https://redirect.github.com/Viicos) in [#10242](https://redirect.github.com/pydantic/pydantic/pull/10242) - Fix parent namespace issue with model rebuilds by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10257](https://redirect.github.com/pydantic/pydantic/pull/10257) - Remove defaults filter for namespace by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10261](https://redirect.github.com/pydantic/pydantic/pull/10261) - Use identity instead of equality after validating model in `__init__` by [@Viicos](https://redirect.github.com/Viicos) in [#10264](https://redirect.github.com/pydantic/pydantic/pull/10264) - Support `BigInt` serialization for `int` subclasses by [@kxx317](https://redirect.github.com/kxx317) in [pydantic/pydantic-core#1417](https://redirect.github.com/pydantic/pydantic-core/pull/1417) - Support signature for wrap validators without `info` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10277](https://redirect.github.com/pydantic/pydantic/pull/10277) - Ensure `__pydantic_complete__` is set when rebuilding `dataclasses` by [@Viicos](https://redirect.github.com/Viicos) in [#10291](https://redirect.github.com/pydantic/pydantic/pull/10291) - Respect `schema_generator` config value in `TypeAdapter` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#10300](https://redirect.github.com/pydantic/pydantic/pull/10300) ##### New Contributors ##### `pydantic` - [@kwint](https://redirect.github.com/kwint) made their first contribution in [#9787](https://redirect.github.com/pydantic/pydantic/pull/9787) - [@seekinginfiniteloop](https://redirect.github.com/seekinginfiniteloop) made their first contribution in [#9822](https://redirect.github.com/pydantic/pydantic/pull/9822) - [@a-alexander](https://redirect.github.com/a-alexander) made their first contribution in [#9848](https://redirect.github.com/pydantic/pydantic/pull/9848) - [@maximilianfellhuber](https://redirect.github.com/maximilianfellhuber) made their first contribution in [#9885](https://redirect.github.com/pydantic/pydantic/pull/9885) - [@karmaBonfire](https://redirect.github.com/karmaBonfire) made their first contribution in [#9945](https://redirect.github.com/pydantic/pydantic/pull/9945) - [@s-rigaud](https://redirect.github.com/s-rigaud) made their first contribution in [#9958](https://redirect.github.com/pydantic/pydantic/pull/9958) - [@msabramo](https://redirect.github.com/msabramo) made their first contribution in [#9964](https://redirect.github.com/pydantic/pydantic/pull/9964) - [@DimaCybr](https://redirect.github.com/DimaCybr) made their first contribution in [#9972](https://redirect.github.com/pydantic/pydantic/pull/9972) - [@kc0506](https://redirect.github.com/kc0506) made their first contribution in [#9971](https://redirect.github.com/pydantic/pydantic/pull/9971) - [@haoyun](https://redirect.github.com/haoyun) made their first contribution in [#9990](https://redirect.github.com/pydantic/pydantic/pull/9990) - [@radekwlsk](https://redirect.github.com/radekwlsk) made their first contribution in [#9938](https://redirect.github.com/pydantic/pydantic/pull/9938) - [@dpeachey](https://redirect.github.com/dpeachey) made their first contribution in [#10029](https://redirect.github.com/pydantic/pydantic/pull/10029) - [@BoxyUwU](https://redirect.github.com/BoxyUwU) made their first contribution in [#10085](https://redirect.github.com/pydantic/pydantic/pull/10085) - [@mochi22](https://redirect.github.com/mochi22) made their first contribution in [#10082](https://redirect.github.com/pydantic/pydantic/pull/10082) - [@aditkumar72](https://redirect.github.com/aditkumar72) made their first contribution in [#10128](https://redirect.github.com/pydantic/pydantic/pull/10128) - [@changhc](https://redirect.github.com/changhc) made their first contribution in [#9654](https://redirect.github.com/pydantic/pydantic/pull/9654) - [@insumanth](https://redirect.github.com/insumanth) made their first contribution in [#10229](https://redirect.github.com/pydantic/pydantic/pull/10229) - [@AdolfoVillalobos](https://redirect.github.com/AdolfoVillalobos) made their first contribution in [#10240](https://redirect.github.com/pydantic/pydantic/pull/10240) - [@bllchmbrs](https://redirect.github.com/bllchmbrs) made their first contribution in [#10270](https://redirect.github.com/pydantic/pydantic/pull/10270) ##### `pydantic-core` - [@kfreezen](https://redirect.github.com/kfreezen) made their first contribution in [pydantic/pydantic-core#1286](https://redirect.github.com/pydantic/pydantic-core/pull/1286) - [@tinez](https://redirect.github.com/tinez) made their first contribution in [pydantic/pydantic-core#1368](https://redirect.github.com/pydantic/pydantic-core/pull/1368) - [@fft001](https://redirect.github.com/fft001) made their first contribution in [pydantic/pydantic-core#1362](https://redirect.github.com/pydantic/pydantic-core/pull/1362) - [@nix010](https://redirect.github.com/nix010) made their first contribution in [pydantic/pydantic-core#1349](https://redirect.github.com/pydantic/pydantic-core/pull/1349) - [@BoxyUwU](https://redirect.github.com/BoxyUwU) made their first contribution in [pydantic/pydantic-core#1379](https://redirect.github.com/pydantic/pydantic-core/pull/1379) - [@candleindark](https://redirect.github.com/candleindark) made their first contribution in [pydantic/pydantic-core#1404](https://redirect.github.com/pydantic/pydantic-core/pull/1404) - [@changhc](https://redirect.github.com/changhc) made their first contribution in [pydantic/pydantic-core#1331](https://redirect.github.com/pydantic/pydantic-core/pull/1331) ### [`v2.8.2`](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.8.2): (2024-07-03) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.8.1...v2.8.2) #### What's Changed ##### Fixes - Fix issue with assertion caused by pluggable schema validator by [@dmontagu](https://redirect.github.com/dmontagu) in [#9838](https://redirect.github.com/pydantic/pydantic/pull/9838) **Full Changelog**: https://github.com/pydantic/pydantic/compare/v2.8.1...v2.8.2 ### [`v2.8.1`](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.8.1): (2024-07-03) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.8.0...v2.8.1) #### What's Changed ##### Packaging - Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [https://github.com/pydantic/pydantic/pull/9801](https://redirect.github.com/pydantic/pydantic/pull/9801) - Bump `pydantic-core` to `v2.20.1`, `pydantic-extra-types` to `v2.9.0` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [https://github.com/pydantic/pydantic/pull/9832](https://redirect.github.com/pydantic/pydantic/pull/9832) ##### Fixes - Fix breaking change in `to_snake` from v2.7 -> v2.8 by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [https://github.com/pydantic/pydantic/pull/9812](https://redirect.github.com/pydantic/pydantic/pull/9812) - Fix list constraint json schema application by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [https://github.com/pydantic/pydantic/pull/9818](https://redirect.github.com/pydantic/pydantic/pull/9818) - Fix issue with assertion caused by pluggable schema validator by [@dmontagu](https://redirect.github.com/dmontagu) in [https://github.com/pydantic/pydantic/pull/9838](https://redirect.github.com/pydantic/pydantic/pull/9838) #### New Contributors - [@kwint](https://redirect.github.com/kwint) made their first contribution in [https://github.com/pydantic/pydantic/pull/9787](https://redirect.github.com/pydantic/pydantic/pull/9787) - [@seekinginfiniteloop](https://redirect.github.com/seekinginfiniteloop) made their first contribution in [https://github.com/pydantic/pydantic/pull/9822](https://redirect.github.com/pydantic/pydantic/pull/9822) **Full Changelog**: https://github.com/pydantic/pydantic/compare/v2.8.0...v2.8.1 ### [`v2.8.0`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v280-2024-07-01) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.4...v2.8.0) [GitHub release](https://redirect.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](https://redirect.github.com/sydney-runkle) in [#9673](https://redirect.github.com/pydantic/pydantic/pull/9673) - Bump pyright to `v1.1.367` and add type checking tests for pipeline API by [@adriangb](https://redirect.github.com/adriangb) in [#9674](https://redirect.github.com/pydantic/pydantic/pull/9674) - Update `pydantic.v1` stub to `v1.10.17` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9707](https://redirect.github.com/pydantic/pydantic/pull/9707) - General package updates to prep for `v2.8.0b1` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9741](https://redirect.github.com/pydantic/pydantic/pull/9741) - Bump `pydantic-core` to `v2.20.0` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9745](https://redirect.github.com/pydantic/pydantic/pull/9745) - Add support for Python 3.13 by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9743](https://redirect.github.com/pydantic/pydantic/pull/9743) - Update `pdm` version used for `pdm.lock` to v2.16.1 by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9761](https://redirect.github.com/pydantic/pydantic/pull/9761) - Update to `ruff` `v0.4.8` by [@Viicos](https://redirect.github.com/Viicos) in [#9585](https://redirect.github.com/pydantic/pydantic/pull/9585) ##### New Features - Experimental: support `defer_build` for `TypeAdapter` by [@MarkusSintonen](https://redirect.github.com/MarkusSintonen) in [#8939](https://redirect.github.com/pydantic/pydantic/pull/8939) - Implement `deprecated` field in json schema by [@NeevCohen](https://redirect.github.com/NeevCohen) in [#9298](https://redirect.github.com/pydantic/pydantic/pull/9298) - Experimental: Add pipeline API by [@adriangb](https://redirect.github.com/adriangb) in [#9459](https://redirect.github.com/pydantic/pydantic/pull/9459) - Add support for programmatic title generation by [@NeevCohen](https://redirect.github.com/NeevCohen) in [#9183](https://redirect.github.com/pydantic/pydantic/pull/9183) - Implement `fail_fast` feature by [@uriyyo](https://redirect.github.com/uriyyo) in [#9708](https://redirect.github.com/pydantic/pydantic/pull/9708) - Add `ser_json_inf_nan='strings'` mode to produce valid JSON by [@josh-newman](https://redirect.github.com/josh-newman) in [pydantic/pydantic-core#1307](https://redirect.github.com/pydantic/pydantic-core/pull/1307) ##### Changes - Add warning when "alias" is set in ignored `Annotated` field by [@nix010](https://redirect.github.com/nix010) in [#9170](https://redirect.github.com/pydantic/pydantic/pull/9170) - Support serialization of some serializable defaults in JSON schema by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9624](https://redirect.github.com/pydantic/pydantic/pull/9624) - Relax type specification for `__validators__` values in `create_model` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9697](https://redirect.github.com/pydantic/pydantic/pull/9697) - **Breaking Change:** Improve `smart` union matching logic by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1322](https://redirect.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](https://redirect.github.com/misrasaurabh1) in [#9653](https://redirect.github.com/pydantic/pydantic/pull/9653) - ⚡️ Speed up `_get_all_json_refs()` by 34% in `pydantic/json_schema.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9650](https://redirect.github.com/pydantic/pydantic/pull/9650) - ⚡️ Speed up `is_pydantic_dataclass()` by 41% in `pydantic/dataclasses.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9652](https://redirect.github.com/pydantic/pydantic/pull/9652) - ⚡️ Speed up `to_snake()` by 27% in `pydantic/alias_generators.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9747](https://redirect.github.com/pydantic/pydantic/pull/9747) - ⚡️ Speed up `unwrap_wrapped_function()` by 93% in `pydantic/_internal/_decorators.py` by [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#9727](https://redirect.github.com/pydantic/pydantic/pull/9727) ##### Fixes - Replace `__spec__.parent` with `__package__` by [@hramezani](https://redirect.github.com/hramezani) in [#9331](https://redirect.github.com/pydantic/pydantic/pull/9331) - Fix Outputted Model JSON Schema for `Sequence` type by [@anesmemisevic](https://redirect.github.com/anesmemisevic) in [#9303](https://redirect.github.com/pydantic/pydantic/pull/9303) - Fix typing of `_frame_depth` by [@Viicos](https://redirect.github.com/Viicos) in [#9353](https://redirect.github.com/pydantic/pydantic/pull/9353) - Make `ImportString` json schema compatible by [@amitschang](https://redirect.github.com/amitschang) in [#9344](https://redirect.github.com/pydantic/pydantic/pull/9344) - Hide private attributes (`PrivateAttr`) from `__init__` signature in type checkers by [@idan22moral](https://redirect.github.com/idan22moral) in [#9293](https://redirect.github.com/pydantic/pydantic/pull/9293) - Make detection of `TypeVar` defaults robust to the CPython `PEP-696` implementation by [@AlexWaygood](https://redirect.github.com/AlexWaygood) in [#9426](https://redirect.github.com/pydantic/pydantic/pull/9426) - Fix usage of `PlainSerializer` with builtin types by [@Viicos](https://redirect.github.com/Viicos) in [#9450](https://redirect.github.com/pydantic/pydantic/pull/9450) - Add more robust custom validation examples by [@ChrisPappalardo](https://redirect.github.com/ChrisPappalardo) in [#9468](https://redirect.github.com/pydantic/pydantic/pull/9468) - Fix ignored `strict` specification for `StringConstraint(strict=False)` by [@vbmendes](https://redirect.github.com/vbmendes) in [#9476](https://redirect.github.com/pydantic/pydantic/pull/9476) - Use `Self` where possible by [@Viicos](https://redirect.github.com/Viicos) in [#9479](https://redirect.github.com/pydantic/pydantic/pull/9479) - Do not alter `RootModel.model_construct` signature in the `mypy` plugin by [@Viicos](https://redirect.github.com/Viicos) in [#9480](https://redirect.github.com/pydantic/pydantic/pull/9480) - Fixed type hint of `validation_context` by [@OhioDschungel6](https://redirect.github.com/OhioDschungel6) in [#9508](https://redirect.github.com/pydantic/pydantic/pull/9508) - Support context being passed to TypeAdapter's `dump_json`/`dump_python` by [@alexcouper](https://redirect.github.com/alexcouper) in [#9495](https://redirect.github.com/pydantic/pydantic/pull/9495) - Updates type signature for `Field()` constructor by [@bjmc](https://redirect.github.com/bjmc) in [#9484](https://redirect.github.com/pydantic/pydantic/pull/9484) - Improve builtin alias generators by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9561](https://redirect.github.com/pydantic/pydantic/pull/9561) - Fix typing of `TypeAdapter` by [@Viicos](https://redirect.github.com/Viicos) in [#9570](https://redirect.github.com/pydantic/pydantic/pull/9570) - Add fallback default value for private fields in `__setstate__` of BaseModel by [@anhpham1509](https://redirect.github.com/anhpham1509) in [#9584](https://redirect.github.com/pydantic/pydantic/pull/9584) - Support `PEP 746` by [@adriangb](https://redirect.github.com/adriangb) in [#9587](https://redirect.github.com/pydantic/pydantic/pull/9587) - Allow validator and serializer functions to have default values by [@Viicos](https://redirect.github.com/Viicos) in [#9478](https://redirect.github.com/pydantic/pydantic/pull/9478) - Fix bug with mypy plugin's handling of covariant `TypeVar` fields by [@dmontagu](https://redirect.github.com/dmontagu) in [#9606](https://redirect.github.com/pydantic/pydantic/pull/9606) - Fix multiple annotation / constraint application logic by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9623](https://redirect.github.com/pydantic/pydantic/pull/9623) - Respect `regex` flags in validation and json schema by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9591](https://redirect.github.com/pydantic/pydantic/pull/9591) - Fix type hint on `IpvAnyAddress` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9640](https://redirect.github.com/pydantic/pydantic/pull/9640) - Allow a field specifier on `__pydantic_extra__` by [@dmontagu](https://redirect.github.com/dmontagu) in [#9659](https://redirect.github.com/pydantic/pydantic/pull/9659) - Use normalized case for file path comparison by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9737](https://redirect.github.com/pydantic/pydantic/pull/9737) - Modify constraint application logic to allow field constraints on `Optional[Decimal]` by [@lazyhope](https://redirect.github.com/lazyhope) in [#9754](https://redirect.github.com/pydantic/pydantic/pull/9754) - `validate_call` type params fix by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9760](https://redirect.github.com/pydantic/pydantic/pull/9760) - Check all warnings returned by pytest.warns() by [@s-t-e-v-e-n-k](https://redirect.github.com/s-t-e-v-e-n-k) in [#9702](https://redirect.github.com/pydantic/pydantic/pull/9702) - Reuse `re.Pattern` object in regex patterns to allow for regex flags by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1318](https://redirect.github.com/pydantic/pydantic-core/pull/1318) ##### New Contributors - [@idan22moral](https://redirect.github.com/idan22moral) made their first contribution in [#9294](https://redirect.github.com/pydantic/pydantic/pull/9294) - [@anesmemisevic](https://redirect.github.com/anesmemisevic) made their first contribution in [#9303](https://redirect.github.com/pydantic/pydantic/pull/9303) - [@max-muoto](https://redirect.github.com/max-muoto) made their first contribution in [#9338](https://redirect.github.com/pydantic/pydantic/pull/9338) - [@amitschang](https://redirect.github.com/amitschang) made their first contribution in [#9344](https://redirect.github.com/pydantic/pydantic/pull/9344) - [@paulmartin91](https://redirect.github.com/paulmartin91) made their first contribution in [#9410](https://redirect.github.com/pydantic/pydantic/pull/9410) - [@OhioDschungel6](https://redirect.github.com/OhioDschungel6) made their first contribution in [#9405](https://redirect.github.com/pydantic/pydantic/pull/9405) - [@AlexWaygood](https://redirect.github.com/AlexWaygood) made their first contribution in [#9426](https://redirect.github.com/pydantic/pydantic/pull/9426) - [@kinuax](https://redirect.github.com/kinuax) made their first contribution in [#9433](https://redirect.github.com/pydantic/pydantic/pull/9433) - [@antoni-jamiolkowski](https://redirect.github.com/antoni-jamiolkowski) made their first contribution in [#9431](https://redirect.github.com/pydantic/pydantic/pull/9431) - [@candleindark](https://redirect.github.com/candleindark) made their first contribution in [#9448](https://redirect.github.com/pydantic/pydantic/pull/9448) - [@nix010](https://redirect.github.com/nix010) made their first contribution in [#9170](https://redirect.github.com/pydantic/pydantic/pull/9170) - [@tomy0000000](https://redirect.github.com/tomy0000000) made their first contribution in [#9457](https://redirect.github.com/pydantic/pydantic/pull/9457) - [@vbmendes](https://redirect.github.com/vbmendes) made their first contribution in [#9470](https://redirect.github.com/pydantic/pydantic/pull/9470) - [@micheleAlberto](https://redirect.github.com/micheleAlberto) made their first contribution in [#9471](https://redirect.github.com/pydantic/pydantic/pull/9471) - [@ChrisPappalardo](https://redirect.github.com/ChrisPappalardo) made their first contribution in [#9468](https://redirect.github.com/pydantic/pydantic/pull/9468) - [@blueTurtz](https://redirect.github.com/blueTurtz) made their first contribution in [#9475](https://redirect.github.com/pydantic/pydantic/pull/9475) - [@WinterBlue16](https://redirect.github.com/WinterBlue16) made their first contribution in [#9477](https://redirect.github.com/pydantic/pydantic/pull/9477) - [@bittner](https://redirect.github.com/bittner) made their first contribution in [#9500](https://redirect.github.com/pydantic/pydantic/pull/9500) - [@alexcouper](https://redirect.github.com/alexcouper) made their first contribution in [#9495](https://redirect.github.com/pydantic/pydantic/pull/9495) - [@bjmc](https://redirect.github.com/bjmc) made their first contribution in [#9484](https://redirect.github.com/pydantic/pydantic/pull/9484) - [@pjvv](https://redirect.github.com/pjvv) made their first contribution in [#9529](https://redirect.github.com/pydantic/pydantic/pull/9529) - [@nedbat](https://redirect.github.com/nedbat) made their first contribution in [#9530](https://redirect.github.com/pydantic/pydantic/pull/9530) - [@gunnellEvan](https://redirect.github.com/gunnellEvan) made their first contribution in [#9469](https://redirect.github.com/pydantic/pydantic/pull/9469) - [@jaymbans](https://redirect.github.com/jaymbans) made their first contribution in [#9531](https://redirect.github.com/pydantic/pydantic/pull/9531) - [@MarcBresson](https://redirect.github.com/MarcBresson) made their first contribution in [#9534](https://redirect.github.com/pydantic/pydantic/pull/9534) - [@anhpham1509](https://redirect.github.com/anhpham1509) made their first contribution in [#9584](https://redirect.github.com/pydantic/pydantic/pull/9584) - [@K-dash](https://redirect.github.com/K-dash) made their first contribution in [#9595](https://redirect.github.com/pydantic/pydantic/pull/9595) - [@s-t-e-v-e-n-k](https://redirect.github.com/s-t-e-v-e-n-k) made their first contribution in [#9527](https://redirect.github.com/pydantic/pydantic/pull/9527) - [@airwoodix](https://redirect.github.com/airwoodix) made their first contribution in [#9506](https://redirect.github.com/pydantic/pydantic/pull/9506) - [@misrasaurabh1](https://redirect.github.com/misrasaurabh1) made their first contribution in [#9653](https://redirect.github.com/pydantic/pydantic/pull/9653) - [@AlessandroMiola](https://redirect.github.com/AlessandroMiola) made their first contribution in [#9740](https://redirect.github.com/pydantic/pydantic/pull/9740) - [@mylapallilavanyaa](https://redirect.github.com/mylapallilavanyaa) made their first contribution in [#9746](https://redirect.github.com/pydantic/pydantic/pull/9746) - [@lazyhope](https://redirect.github.com/lazyhope) made their first contribution in [#9754](https://redirect.github.com/pydantic/pydantic/pull/9754) - [@YassinNouh21](https://redirect.github.com/YassinNouh21) made their first contribution in [#9759](https://redirect.github.com/pydantic/pydantic/pull/9759) ### [`v2.7.4`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v274-2024-06-12) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.3...v2.7.4) [Github release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.7.4) ##### What's Changed ##### Packaging - Bump `pydantic.v1` to `v1.10.16` reference by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9639](https://redirect.github.com/pydantic/pydantic/pull/9639) ##### Fixes - Specify `recursive_guard` as kwarg in `FutureRef._evaluate` by [@vfazio](https://redirect.github.com/vfazio) in [#9612](https://redirect.github.com/pydantic/pydantic/pull/9612) ### [`v2.7.3`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v273-2024-06-03) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.2...v2.7.3) [GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.7.3) ##### What's Changed ##### Packaging - Bump `pydantic-core` to `v2.18.4` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9550](https://redirect.github.com/pydantic/pydantic/pull/9550) ##### Fixes - Fix u style unicode strings in python [@samuelcolvin](https://redirect.github.com/samuelcolvin) in [pydantic/jiter#110](https://redirect.github.com/pydantic/jiter/pull/110) ### [`v2.7.2`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v272-2024-05-28) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.1...v2.7.2) [GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.7.2) ##### What's Changed ##### Packaging - Bump `pydantic-core` to `v2.18.3` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9515](https://redirect.github.com/pydantic/pydantic/pull/9515) ##### Fixes - Replace `__spec__.parent` with `__package__` by [@hramezani](https://redirect.github.com/hramezani) in [#9331](https://redirect.github.com/pydantic/pydantic/pull/9331) - Fix validation of `int`s with leading unary minus by [@RajatRajdeep](https://redirect.github.com/RajatRajdeep) in [pydantic/pydantic-core#1291](https://redirect.github.com/pydantic/pydantic-core/pull/1291) - Fix `str` subclass validation for enums by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in \[[pydantic/pydantic-core#1273](https://redirect.github.com/pydantic/pydantic-core/issues/1273)][https://github.com/pydantic/pydantic-core/pull/1273](https://redirect.github.com/pydantic/pydantic-core/pull/1273) - Support `BigInt`s in `Literal`s and `Enum`s by [@samuelcolvin](https://redirect.github.com/samuelcolvin) in \[[pydantic/pydantic-core#1297](https://redirect.github.com/pydantic/pydantic-core/issues/1297)][https://github.com/pydantic/pydantic-core/pull/1297](https://redirect.github.com/pydantic/pydantic-core/pull/1297) - Fix: uuid - allow `str` subclass as input by [@davidhewitt](https://redirect.github.com/davidhewitt) in \[[pydantic/pydantic-core#1296](https://redirect.github.com/pydantic/pydantic-core/issues/1296)][https://github.com/pydantic/pydantic-core/pull/1296](https://redirect.github.com/pydantic/pydantic-core/pull/1296) ### [`v2.7.1`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v271-2024-04-23) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.7.0...v2.7.1) [GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.7.1) ##### What's Changed ##### Packaging - Bump `pydantic-core` to `v2.18.2` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9307](https://redirect.github.com/pydantic/pydantic/pull/9307) ##### New Features - Ftp and Websocket connection strings support by [@CherrySuryp](https://redirect.github.com/CherrySuryp) in [#9205](https://redirect.github.com/pydantic/pydantic/pull/9205) ##### Changes - Use field description for RootModel schema description when there is `…` by [@LouisGobert](https://redirect.github.com/LouisGobert) in [#9214](https://redirect.github.com/pydantic/pydantic/pull/9214) ##### Fixes - Fix `validation_alias` behavior with `model_construct` for `AliasChoices` and `AliasPath` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9223](https://redirect.github.com/pydantic/pydantic/pull/9223) - Revert `typing.Literal` and import it outside the TYPE_CHECKING block by [@frost-nzcr4](https://redirect.github.com/frost-nzcr4) in [#9232](https://redirect.github.com/pydantic/pydantic/pull/9232) - Fix `Secret` serialization schema, applicable for unions by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9240](https://redirect.github.com/pydantic/pydantic/pull/9240) - Fix `strict` application to `function-after` with `use_enum_values` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9279](https://redirect.github.com/pydantic/pydantic/pull/9279) - Address case where `model_construct` on a class which defines `model_post_init` fails with `AttributeError` by [@babygrimes](https://redirect.github.com/babygrimes) in [#9168](https://redirect.github.com/pydantic/pydantic/pull/9168) - Fix `model_json_schema` with config types by [@NeevCohen](https://redirect.github.com/NeevCohen) in [#9287](https://redirect.github.com/pydantic/pydantic/pull/9287) - Support multiple zeros as an `int` by [@samuelcolvin](https://redirect.github.com/samuelcolvin) in [pydantic/pydantic-core#1269](https://redirect.github.com/pydantic/pydantic-core/pull/1269) - Fix validation of `int`s with leading unary plus by [@cknv](https://redirect.github.com/cknv) in [pydantic/pydantic-core#1272](https://redirect.github.com/pydantic/pydantic-core/pull/1272) - Fix interaction between `extra != 'ignore'` and `from_attributes=True` by [@davidhewitt](https://redirect.github.com/davidhewitt) in [pydantic/pydantic-core#1276](https://redirect.github.com/pydantic/pydantic-core/pull/1276) - Handle error from `Enum`'s `missing` function as `ValidationError` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1274](https://redirect.github.com/pydantic/pydantic-core/pull/1754) - Fix memory leak with `Iterable` validation by [@davidhewitt](https://redirect.github.com/davidhewitt) in [pydantic/pydantic-core#1271](https://redirect.github.com/pydantic/pydantic-core/pull/1751) ##### New Contributors - [@zzstoatzz](https://redirect.github.com/zzstoatzz) made their first contribution in [#9219](https://redirect.github.com/pydantic/pydantic/pull/9219) - [@frost-nzcr4](https://redirect.github.com/frost-nzcr4) made their first contribution in [#9232](https://redirect.github.com/pydantic/pydantic/pull/9232) - [@CherrySuryp](https://redirect.github.com/CherrySuryp) made their first contribution in [#9205](https://redirect.github.com/pydantic/pydantic/pull/9205) - [@vagenas](https://redirect.github.com/vagenas) made their first contribution in [#9268](https://redirect.github.com/pydantic/pydantic/pull/9268) - [@ollz272](https://redirect.github.com/ollz272) made their first contribution in [#9262](https://redirect.github.com/pydantic/pydantic/pull/9262) - [@babygrimes](https://redirect.github.com/babygrimes) made their first contribution in [#9168](https://redirect.github.com/pydantic/pydantic/pull/9168) - [@swelborn](https://redirect.github.com/swelborn) made their first contribution in [#9296](https://redirect.github.com/pydantic/pydantic/pull/9296) - [@kf-novi](https://redirect.github.com/kf-novi) made their first contribution in [#9236](https://redirect.github.com/pydantic/pydantic/pull/9236) - [@lgeiger](https://redirect.github.com/lgeiger) made their first contribution in [#9288](https://redirect.github.com/pydantic/pydantic/pull/9288) ### [`v2.7.0`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v270-2024-04-11) [Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v2.6.4...v2.7.0) [GitHub release](https://redirect.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](https://redirect.github.com/Viicos) in [#8899](https://redirect.github.com/pydantic/pydantic/pull/8899) - Bump `pydantic-core` to `v2.18.1` by [@sydney-runkle](https://redirect.github.com/sydney-runkle) in [#9211](https://redirect.github.com/pydantic/pydantic/pull/9211) - Adopt `jiter` `v0.2.0` by [@samuelcolvin](https://redirect.github.com/samuelcolvin) in [pydantic/pydantic-core#1250](https://redirect.github.com/pydantic/pydantic-core/pull/1250) ##### New Features - Extract attribute docstrings from `FieldInfo.description` by [@Viicos](https://redirect.github.com/Viicos) in [#6563](https://redirect.github.com/pydantic/pydantic/pull/6563) - Add a `with_config` decorator to comply with typing spec by [@Viicos](https://redirect.github.com/Viicos) inConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.