cguardia / questions

Questions is a form library for Python that uses the power of SurveyJS for the UI.
https://questions.readthedocs.io
MIT License
32 stars 9 forks source link

Update pydantic to 2.8.1 #545

Open pyup-bot opened 3 months ago

pyup-bot commented 3 months ago

This PR updates pydantic from 1.10.8 to 2.8.1.

Changelog ### 2.8.0 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.8.0) The code released in v2.8.0 is functionally identical to that of v2.8.0b1. What's Changed Packaging * Update citation version automatically with new releases by sydney-runkle in [9673](https://github.com/pydantic/pydantic/pull/9673) * Bump pyright to `v1.1.367` and add type checking tests for pipeline API by adriangb in [9674](https://github.com/pydantic/pydantic/pull/9674) * Update `pydantic.v1` stub to `v1.10.17` by sydney-runkle in [9707](https://github.com/pydantic/pydantic/pull/9707) * General package updates to prep for `v2.8.0b1` by sydney-runkle in [9741](https://github.com/pydantic/pydantic/pull/9741) * Bump `pydantic-core` to `v2.20.0` by sydney-runkle in [9745](https://github.com/pydantic/pydantic/pull/9745) * Add support for Python 3.13 by sydney-runkle in [9743](https://github.com/pydantic/pydantic/pull/9743) * Update `pdm` version used for `pdm.lock` to v2.16.1 by sydney-runkle in [9761](https://github.com/pydantic/pydantic/pull/9761) * Update to `ruff` `v0.4.8` by Viicos in [9585](https://github.com/pydantic/pydantic/pull/9585) New Features * Experimental: support `defer_build` for `TypeAdapter` by MarkusSintonen in [8939](https://github.com/pydantic/pydantic/pull/8939) * Implement `deprecated` field in json schema by NeevCohen in [9298](https://github.com/pydantic/pydantic/pull/9298) * Experimental: Add pipeline API by adriangb in [9459](https://github.com/pydantic/pydantic/pull/9459) * Add support for programmatic title generation by NeevCohen in [9183](https://github.com/pydantic/pydantic/pull/9183) * Implement `fail_fast` feature by uriyyo in [9708](https://github.com/pydantic/pydantic/pull/9708) * Add `ser_json_inf_nan='strings'` mode to produce valid JSON by josh-newman in [pydantic/pydantic-core1307](https://github.com/pydantic/pydantic-core/pull/1307) Changes * Add warning when "alias" is set in ignored `Annotated` field by nix010 in [9170](https://github.com/pydantic/pydantic/pull/9170) * Support serialization of some serializable defaults in JSON schema by sydney-runkle in [9624](https://github.com/pydantic/pydantic/pull/9624) * Relax type specification for `__validators__` values in `create_model` by sydney-runkle in [9697](https://github.com/pydantic/pydantic/pull/9697) * **Breaking Change:** Improve `smart` union matching logic by sydney-runkle in [pydantic/pydantic-core1322](https://github.com/pydantic/pydantic-core/pull/1322) You can read more about our `smart` union matching logic [here](https://docs.pydantic.dev/dev/concepts/unions/#smart-mode). In some cases, if the old behavior is desired, you can switch to `left-to-right` mode and change the order of your `Union` members. Performance Internal Improvements * ⚡️ Speed up `_display_error_loc()` by 25% in `pydantic/v1/error_wrappers.py` by misrasaurabh1 in [9653](https://github.com/pydantic/pydantic/pull/9653) * ⚡️ Speed up `_get_all_json_refs()` by 34% in `pydantic/json_schema.py` by misrasaurabh1 in [9650](https://github.com/pydantic/pydantic/pull/9650) * ⚡️ Speed up `is_pydantic_dataclass()` by 41% in `pydantic/dataclasses.py` by misrasaurabh1 in [9652](https://github.com/pydantic/pydantic/pull/9652) * ⚡️ Speed up `to_snake()` by 27% in `pydantic/alias_generators.py` by misrasaurabh1 in [9747](https://github.com/pydantic/pydantic/pull/9747) * ⚡️ Speed up `unwrap_wrapped_function()` by 93% in `pydantic/_internal/_decorators.py` by misrasaurabh1 in [9727](https://github.com/pydantic/pydantic/pull/9727) Fixes * Replace `__spec__.parent` with `__package__` by hramezani in [9331](https://github.com/pydantic/pydantic/pull/9331) * Fix Outputted Model JSON Schema for `Sequence` type by anesmemisevic in [9303](https://github.com/pydantic/pydantic/pull/9303) * Fix typing of `_frame_depth` by Viicos in [9353](https://github.com/pydantic/pydantic/pull/9353) * Make `ImportString` json schema compatible by amitschang in [9344](https://github.com/pydantic/pydantic/pull/9344) * Hide private attributes (`PrivateAttr`) from `__init__` signature in type checkers by idan22moral in [9293](https://github.com/pydantic/pydantic/pull/9293) * Make detection of `TypeVar` defaults robust to the CPython `PEP-696` implementation by AlexWaygood in [9426](https://github.com/pydantic/pydantic/pull/9426) * Fix usage of `PlainSerializer` with builtin types by Viicos in [9450](https://github.com/pydantic/pydantic/pull/9450) * Add more robust custom validation examples by ChrisPappalardo in [9468](https://github.com/pydantic/pydantic/pull/9468) * Fix ignored `strict` specification for `StringConstraint(strict=False)` by vbmendes in [9476](https://github.com/pydantic/pydantic/pull/9476) * Use `Self` where possible by Viicos in [9479](https://github.com/pydantic/pydantic/pull/9479) * Do not alter `RootModel.model_construct` signature in the `mypy` plugin by Viicos in [9480](https://github.com/pydantic/pydantic/pull/9480) * Fixed type hint of `validation_context` by OhioDschungel6 in [9508](https://github.com/pydantic/pydantic/pull/9508) * Support context being passed to TypeAdapter's `dump_json`/`dump_python` by alexcouper in [9495](https://github.com/pydantic/pydantic/pull/9495) * Updates type signature for `Field()` constructor by bjmc in [9484](https://github.com/pydantic/pydantic/pull/9484) * Improve builtin alias generators by sydney-runkle in [9561](https://github.com/pydantic/pydantic/pull/9561) * Fix typing of `TypeAdapter` by Viicos in [9570](https://github.com/pydantic/pydantic/pull/9570) * Add fallback default value for private fields in `__setstate__` of BaseModel by anhpham1509 in [9584](https://github.com/pydantic/pydantic/pull/9584) * Support `PEP 746` by adriangb in [9587](https://github.com/pydantic/pydantic/pull/9587) * Allow validator and serializer functions to have default values by Viicos in [9478](https://github.com/pydantic/pydantic/pull/9478) * Fix bug with mypy plugin's handling of covariant `TypeVar` fields by dmontagu in [9606](https://github.com/pydantic/pydantic/pull/9606) * Fix multiple annotation / constraint application logic by sydney-runkle in [9623](https://github.com/pydantic/pydantic/pull/9623) * Respect `regex` flags in validation and json schema by sydney-runkle in [9591](https://github.com/pydantic/pydantic/pull/9591) * Fix type hint on `IpvAnyAddress` by sydney-runkle in [9640](https://github.com/pydantic/pydantic/pull/9640) * Allow a field specifier on `__pydantic_extra__` by dmontagu in [9659](https://github.com/pydantic/pydantic/pull/9659) * Use normalized case for file path comparison by sydney-runkle in [9737](https://github.com/pydantic/pydantic/pull/9737) * Modify constraint application logic to allow field constraints on `Optional[Decimal]` by lazyhope in [9754](https://github.com/pydantic/pydantic/pull/9754) * `validate_call` type params fix by sydney-runkle in [9760](https://github.com/pydantic/pydantic/pull/9760) * Check all warnings returned by pytest.warns() by s-t-e-v-e-n-k in [9702](https://github.com/pydantic/pydantic/pull/9702) * Reuse `re.Pattern` object in regex patterns to allow for regex flags by sydney-runkle in [pydantic/pydantic-core1318](https://github.com/pydantic/pydantic-core/pull/1318) New Contributors * idan22moral made their first contribution in [9294](https://github.com/pydantic/pydantic/pull/9294) * anesmemisevic made their first contribution in [9303](https://github.com/pydantic/pydantic/pull/9303) * max-muoto made their first contribution in [9338](https://github.com/pydantic/pydantic/pull/9338) * amitschang made their first contribution in [9344](https://github.com/pydantic/pydantic/pull/9344) * paulmartin91 made their first contribution in [9410](https://github.com/pydantic/pydantic/pull/9410) * OhioDschungel6 made their first contribution in [9405](https://github.com/pydantic/pydantic/pull/9405) * AlexWaygood made their first contribution in [9426](https://github.com/pydantic/pydantic/pull/9426) * kinuax made their first contribution in [9433](https://github.com/pydantic/pydantic/pull/9433) * antoni-jamiolkowski made their first contribution in [9431](https://github.com/pydantic/pydantic/pull/9431) * candleindark made their first contribution in [9448](https://github.com/pydantic/pydantic/pull/9448) * nix010 made their first contribution in [9170](https://github.com/pydantic/pydantic/pull/9170) * tomy0000000 made their first contribution in [9457](https://github.com/pydantic/pydantic/pull/9457) * vbmendes made their first contribution in [9470](https://github.com/pydantic/pydantic/pull/9470) * micheleAlberto made their first contribution in [9471](https://github.com/pydantic/pydantic/pull/9471) * ChrisPappalardo made their first contribution in [9468](https://github.com/pydantic/pydantic/pull/9468) * blueTurtz made their first contribution in [9475](https://github.com/pydantic/pydantic/pull/9475) * WinterBlue16 made their first contribution in [9477](https://github.com/pydantic/pydantic/pull/9477) * bittner made their first contribution in [9500](https://github.com/pydantic/pydantic/pull/9500) * alexcouper made their first contribution in [9495](https://github.com/pydantic/pydantic/pull/9495) * bjmc made their first contribution in [9484](https://github.com/pydantic/pydantic/pull/9484) * pjvv made their first contribution in [9529](https://github.com/pydantic/pydantic/pull/9529) * nedbat made their first contribution in [9530](https://github.com/pydantic/pydantic/pull/9530) * gunnellEvan made their first contribution in [9469](https://github.com/pydantic/pydantic/pull/9469) * jaymbans made their first contribution in [9531](https://github.com/pydantic/pydantic/pull/9531) * MarcBresson made their first contribution in [9534](https://github.com/pydantic/pydantic/pull/9534) * anhpham1509 made their first contribution in [9584](https://github.com/pydantic/pydantic/pull/9584) * K-dash made their first contribution in [9595](https://github.com/pydantic/pydantic/pull/9595) * s-t-e-v-e-n-k made their first contribution in [9527](https://github.com/pydantic/pydantic/pull/9527) * airwoodix made their first contribution in [9506](https://github.com/pydantic/pydantic/pull/9506) * misrasaurabh1 made their first contribution in [9653](https://github.com/pydantic/pydantic/pull/9653) * AlessandroMiola made their first contribution in [9740](https://github.com/pydantic/pydantic/pull/9740) * mylapallilavanyaa made their first contribution in [9746](https://github.com/pydantic/pydantic/pull/9746) * lazyhope made their first contribution in [9754](https://github.com/pydantic/pydantic/pull/9754) * YassinNouh21 made their first contribution in [9759](https://github.com/pydantic/pydantic/pull/9759) ``` ### 2.8.0b1 ``` Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.8.0b1) for details. ``` ### 2.7.4 ``` [Github release](https://github.com/pydantic/pydantic/releases/tag/v2.7.4) What's Changed Packaging * Bump `pydantic.v1` to `v1.10.16` reference by sydney-runkle in [9639](https://github.com/pydantic/pydantic/pull/9639) Fixes * Specify `recursive_guard` as kwarg in `FutureRef._evaluate` by vfazio in [9612](https://github.com/pydantic/pydantic/pull/9612) ``` ### 2.7.3 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.3) What's Changed Packaging * Bump `pydantic-core` to `v2.18.4` by sydney-runkle in [9550](https://github.com/pydantic/pydantic/pull/9550) Fixes * Fix u style unicode strings in python samuelcolvin in [pydantic/jiter110](https://github.com/pydantic/jiter/pull/110) ``` ### 2.7.2 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.2) What's Changed Packaging * Bump `pydantic-core` to `v2.18.3` by sydney-runkle in [9515](https://github.com/pydantic/pydantic/pull/9515) Fixes * Replace `__spec__.parent` with `__package__` by hramezani in [9331](https://github.com/pydantic/pydantic/pull/9331) * Fix validation of `int`s with leading unary minus by RajatRajdeep in [pydantic/pydantic-core1291](https://github.com/pydantic/pydantic-core/pull/1291) * Fix `str` subclass validation for enums by sydney-runkle in [pydantic/pydantic-core1273](https://github.com/pydantic/pydantic-core/pull/1273) * Support `BigInt`s in `Literal`s and `Enum`s by samuelcolvin in [pydantic/pydantic-core1297](https://github.com/pydantic/pydantic-core/pull/1297) * Fix: uuid - allow `str` subclass as input by davidhewitt in [pydantic/pydantic-core1296](https://github.com/pydantic/pydantic-core/pull/1296) ``` ### 2.7.1 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.1) What's Changed Packaging * Bump `pydantic-core` to `v2.18.2` by sydney-runkle in [9307](https://github.com/pydantic/pydantic/pull/9307) New Features * Ftp and Websocket connection strings support by CherrySuryp in [9205](https://github.com/pydantic/pydantic/pull/9205) Changes * Use field description for RootModel schema description when there is `…` by LouisGobert in [9214](https://github.com/pydantic/pydantic/pull/9214) Fixes * Fix `validation_alias` behavior with `model_construct` for `AliasChoices` and `AliasPath` by sydney-runkle in [9223](https://github.com/pydantic/pydantic/pull/9223) * Revert `typing.Literal` and import it outside the TYPE_CHECKING block by frost-nzcr4 in [9232](https://github.com/pydantic/pydantic/pull/9232) * Fix `Secret` serialization schema, applicable for unions by sydney-runkle in [9240](https://github.com/pydantic/pydantic/pull/9240) * Fix `strict` application to `function-after` with `use_enum_values` by sydney-runkle in [9279](https://github.com/pydantic/pydantic/pull/9279) * Address case where `model_construct` on a class which defines `model_post_init` fails with `AttributeError` by babygrimes in [9168](https://github.com/pydantic/pydantic/pull/9168) * Fix `model_json_schema` with config types by NeevCohen in [9287](https://github.com/pydantic/pydantic/pull/9287) * Support multiple zeros as an `int` by samuelcolvin in [pydantic/pydantic-core1269](https://github.com/pydantic/pydantic-core/pull/1269) * Fix validation of `int`s with leading unary plus by cknv in [pydantic/pydantic-core1272](https://github.com/pydantic/pydantic-core/pull/1272) * Fix interaction between `extra != 'ignore'` and `from_attributes=True` by davidhewitt in [pydantic/pydantic-core1276](https://github.com/pydantic/pydantic-core/pull/1276) * Handle error from `Enum`'s `missing` function as `ValidationError` by sydney-runkle in [pydantic/pydantic-core1274](https://github.com/pydantic/pydantic-core/pull/1754) * Fix memory leak with `Iterable` validation by davidhewitt in [pydantic/pydantic-core1271](https://github.com/pydantic/pydantic-core/pull/1751) New Contributors * zzstoatzz made their first contribution in [9219](https://github.com/pydantic/pydantic/pull/9219) * frost-nzcr4 made their first contribution in [9232](https://github.com/pydantic/pydantic/pull/9232) * CherrySuryp made their first contribution in [9205](https://github.com/pydantic/pydantic/pull/9205) * vagenas made their first contribution in [9268](https://github.com/pydantic/pydantic/pull/9268) * ollz272 made their first contribution in [9262](https://github.com/pydantic/pydantic/pull/9262) * babygrimes made their first contribution in [9168](https://github.com/pydantic/pydantic/pull/9168) * swelborn made their first contribution in [9296](https://github.com/pydantic/pydantic/pull/9296) * kf-novi made their first contribution in [9236](https://github.com/pydantic/pydantic/pull/9236) * lgeiger made their first contribution in [9288](https://github.com/pydantic/pydantic/pull/9288) ``` ### 2.7.0 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.0) The code released in v2.7.0 is practically identical to that of v2.7.0b1. What's Changed Packaging * Reorganize `pyproject.toml` sections by Viicos in [8899](https://github.com/pydantic/pydantic/pull/8899) * Bump `pydantic-core` to `v2.18.1` by sydney-runkle in [9211](https://github.com/pydantic/pydantic/pull/9211) * Adopt `jiter` `v0.2.0` by samuelcolvin in [pydantic/pydantic-core1250](https://github.com/pydantic/pydantic-core/pull/1250) New Features * Extract attribute docstrings from `FieldInfo.description` by Viicos in [6563](https://github.com/pydantic/pydantic/pull/6563) * Add a `with_config` decorator to comply with typing spec by Viicos in [8611](https://github.com/pydantic/pydantic/pull/8611) * Allow an optional separator splitting the value and unit of the result of `ByteSize.human_readable` by jks15satoshi in [8706](https://github.com/pydantic/pydantic/pull/8706) * Add generic `Secret` base type by conradogarciaberrotaran in [8519](https://github.com/pydantic/pydantic/pull/8519) * Make use of `Sphinx` inventories for cross references in docs by Viicos in [8682](https://github.com/pydantic/pydantic/pull/8682) * Add environment variable to disable plugins by geospackle in [8767](https://github.com/pydantic/pydantic/pull/8767) * Add support for `deprecated` fields by Viicos in [8237](https://github.com/pydantic/pydantic/pull/8237) * Allow `field_serializer('*')` by ornariece in [9001](https://github.com/pydantic/pydantic/pull/9001) * Handle a case when `model_config` is defined as a model property by alexeyt101 in [9004](https://github.com/pydantic/pydantic/pull/9004) * Update `create_model()` to support `typing.Annotated` as input by wannieman98 in [8947](https://github.com/pydantic/pydantic/pull/8947) * Add `ClickhouseDsn` support by solidguy7 in [9062](https://github.com/pydantic/pydantic/pull/9062) * Add support for `re.Pattern[str]` to `pattern` field by jag-k in [9053](https://github.com/pydantic/pydantic/pull/9053) * Support for `serialize_as_any` runtime setting by sydney-runkle in [8830](https://github.com/pydantic/pydantic/pull/8830) * Add support for `typing.Self` by Youssefares in [9023](https://github.com/pydantic/pydantic/pull/9023) * Ability to pass `context` to serialization by ornariece in [8965](https://github.com/pydantic/pydantic/pull/8965) * Add feedback widget to docs with flarelytics integration by sydney-runkle in [9129](https://github.com/pydantic/pydantic/pull/9129) * Support for parsing partial JSON strings in Python by samuelcolvin in [pydantic/jiter66](https://github.com/pydantic/jiter/pull/66) ``` ### 2.7.0b1 ``` Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.7.0b1) for details. ``` ### 2.6.4 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.4) What's Changed Fixes * Fix usage of `AliasGenerator` with `computed_field` decorator by sydney-runkle in [8806](https://github.com/pydantic/pydantic/pull/8806) * Fix nested discriminated union schema gen, pt 2 by sydney-runkle in [8932](https://github.com/pydantic/pydantic/pull/8932) * Fix bug with no_strict_optional=True caused by API deferral by dmontagu in [8826](https://github.com/pydantic/pydantic/pull/8826) ``` ### 2.6.3 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.3) What's Changed Packaging * Update `pydantic-settings` version in the docs by hramezani in [8906](https://github.com/pydantic/pydantic/pull/8906) Fixes * Fix discriminated union schema gen bug by sydney-runkle in [8904](https://github.com/pydantic/pydantic/pull/8904) ``` ### 2.6.2 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.2) What's Changed Packaging * Upgrade to `pydantic-core` 2.16.3 by sydney-runkle in [8879](https://github.com/pydantic/pydantic/pull/8879) Fixes * 'YYYY-MM-DD' date string coerced to datetime shouldn't infer timezone by sydney-runkle in [pydantic/pydantic-core1193](https://github.com/pydantic/pydantic-core/pull/1193) ``` ### 2.6.1 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.1) What's Changed Packaging * Upgrade to `pydantic-core` 2.16.2 by sydney-runkle in [8717](https://github.com/pydantic/pydantic/pull/8717) Fixes * Fix bug with `mypy` plugin and `no_strict_optional = True` by dmontagu in [8666](https://github.com/pydantic/pydantic/pull/8666) * Fix `ByteSize` error `type` change by sydney-runkle in [8681](https://github.com/pydantic/pydantic/pull/8681) * Fix inheriting `Field` annotations in dataclasses by sydney-runkle in [8679](https://github.com/pydantic/pydantic/pull/8679) * Fix regression in core schema generation for indirect definition references by dmontagu in [8702](https://github.com/pydantic/pydantic/pull/8702) * Fix unsupported types bug with `PlainValidator` by sydney-runkle in [8710](https://github.com/pydantic/pydantic/pull/8710) * Reverting problematic fix from 2.6 release, fixing schema building bug by sydney-runkle in [8718](https://github.com/pydantic/pydantic/pull/8718) * Fix warning for tuple of wrong size in `Union` by davidhewitt in [pydantic/pydantic-core1174](https://github.com/pydantic/pydantic-core/pull/1174) * Fix `computed_field` JSON serializer `exclude_none` behavior by sydney-runkle in [pydantic/pydantic-core1187](https://github.com/pydantic/pydantic-core/pull/1187) ``` ### 2.6.0 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0) The code released in v2.6.0 is practically identical to that of v2.6.0b1. What's Changed Packaging * Check for `email-validator` version >= 2.0 by commonism in [6033](https://github.com/pydantic/pydantic/pull/6033) * Upgrade `ruff`` target version to Python 3.8 by Elkiwa in [8341](https://github.com/pydantic/pydantic/pull/8341) * Update to `pydantic-extra-types==2.4.1` by yezz123 in [8478](https://github.com/pydantic/pydantic/pull/8478) * Update to `pyright==1.1.345` by Viicos in [8453](https://github.com/pydantic/pydantic/pull/8453) * Update pydantic-core from 2.14.6 to 2.16.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.14.6...v2.16.1) New Features * Add `NatsDsn` by ekeew in [6874](https://github.com/pydantic/pydantic/pull/6874) * Add `ConfigDict.ser_json_inf_nan` by davidhewitt in [8159](https://github.com/pydantic/pydantic/pull/8159) * Add `types.OnErrorOmit` by adriangb in [8222](https://github.com/pydantic/pydantic/pull/8222) * Support `AliasGenerator` usage by sydney-runkle in [8282](https://github.com/pydantic/pydantic/pull/8282) * Add Pydantic People Page to docs by sydney-runkle in [8345](https://github.com/pydantic/pydantic/pull/8345) * Support `yyyy-MM-DD` datetime parsing by sydney-runkle in [8404](https://github.com/pydantic/pydantic/pull/8404) * Added bits conversions to the `ByteSize` class 8415 by luca-matei in [8507](https://github.com/pydantic/pydantic/pull/8507) * Enable json schema creation with type `ByteSize` by geospackle in [8537](https://github.com/pydantic/pydantic/pull/8537) * Add `eval_type_backport` to handle union operator and builtin generic subscripting in older Pythons by alexmojaki in [8209](https://github.com/pydantic/pydantic/pull/8209) * Add support for `dataclass` fields `init` by dmontagu in [8552](https://github.com/pydantic/pydantic/pull/8552) * Implement pickling for `ValidationError` by davidhewitt in [pydantic/pydantic-core1119](https://github.com/pydantic/pydantic-core/pull/1119) * Add unified tuple validator that can handle "variadic" tuples via PEP-646 by dmontagu in [pydantic/pydantic-core865](https://github.com/pydantic/pydantic-core/pull/865) Changes * Drop Python3.7 support by hramezani in [7188](https://github.com/pydantic/pydantic/pull/7188) * Drop Python 3.7, and PyPy 3.7 and 3.8 by davidhewitt in [pydantic/pydantic-core1129](https://github.com/pydantic/pydantic-core/pull/1129) * Use positional-only `self` in `BaseModel` constructor, so no field name can ever conflict with it by ariebovenberg in [8072](https://github.com/pydantic/pydantic/pull/8072) * Make `validate_call` return a function instead of a custom descriptor - fixes binding issue with inheritance and adds `self/cls` argument to validation errors by alexmojaki in [8268](https://github.com/pydantic/pydantic/pull/8268) * Exclude `BaseModel` docstring from JSON schema description by sydney-runkle in [8352](https://github.com/pydantic/pydantic/pull/8352) * Introducing `classproperty` decorator for `model_computed_fields` by Jocelyn-Gas in [8437](https://github.com/pydantic/pydantic/pull/8437) * Explicitly raise an error if field names clashes with types by Viicos in [8243](https://github.com/pydantic/pydantic/pull/8243) * Use stricter serializer for unions of simple types by alexdrydew [pydantic/pydantic-core1132](https://github.com/pydantic/pydantic-core/pull/1132) Performance * Add Codspeed profiling Actions workflow by lambertsbennett in [8054](https://github.com/pydantic/pydantic/pull/8054) * Improve `int` extraction by samuelcolvin in [pydantic/pydantic-core1155](https://github.com/pydantic/pydantic-core/pull/1155) * Improve performance of recursion guard by samuelcolvin in [pydantic/pydantic-core1156](https://github.com/pydantic/pydantic-core/pull/1156) * `dataclass` serialization speedups by samuelcolvin in [pydantic/pydantic-core1162](https://github.com/pydantic/pydantic-core/pull/1162) * Avoid `HashMap` creation when looking up small JSON objects in `LazyIndexMaps` by samuelcolvin in [pydantic/jiter55](https://github.com/pydantic/jiter/pull/55) * use hashbrown to speedup python string caching by davidhewitt in [pydantic/jiter51](https://github.com/pydantic/jiter/pull/51) * Replace `Peak` with more efficient `Peek` by davidhewitt in [pydantic/jiter48](https://github.com/pydantic/jiter/pull/48) Fixes * Move `getattr` warning in deprecated `BaseConfig` by tlambert03 in [7183](https://github.com/pydantic/pydantic/pull/7183) * Only hash `model_fields`, not whole `__dict__` by alexmojaki in [7786](https://github.com/pydantic/pydantic/pull/7786) * Fix mishandling of unions while freezing types in the `mypy` plugin by dmontagu in [7411](https://github.com/pydantic/pydantic/pull/7411) * Fix `mypy` error on untyped `ClassVar` by vincent-hachin-wmx in [8138](https://github.com/pydantic/pydantic/pull/8138) * Only compare pydantic fields in `BaseModel.__eq__` instead of whole `__dict__` by QuentinSoubeyranAqemia in [7825](https://github.com/pydantic/pydantic/pull/7825) * Update `strict` docstring in `model_validate` method. by LukeTonin in [8223](https://github.com/pydantic/pydantic/pull/8223) * Fix overload position of `computed_field` by Viicos in [8227](https://github.com/pydantic/pydantic/pull/8227) * Fix custom type type casting used in multiple attributes by ianhfc in [8066](https://github.com/pydantic/pydantic/pull/8066) * Fix issue not allowing `validate_call` decorator to be dynamically assigned to a class method by jusexton in [8249](https://github.com/pydantic/pydantic/pull/8249) * Fix issue `unittest.mock` deprecation warnings by ibleedicare in [8262](https://github.com/pydantic/pydantic/pull/8262) * Added tests for the case `JsonValue` contains subclassed primitive values by jusexton in [8286](https://github.com/pydantic/pydantic/pull/8286) * Fix `mypy` error on free before validator (classmethod) by sydney-runkle in [8285](https://github.com/pydantic/pydantic/pull/8285) * Fix `to_snake` conversion by jevins09 in [8316](https://github.com/pydantic/pydantic/pull/8316) * Fix type annotation of `ModelMetaclass.__prepare__` by slanzmich in [8305](https://github.com/pydantic/pydantic/pull/8305) * Disallow `config` specification when initializing a `TypeAdapter` when the annotated type has config already by sydney-runkle in [8365](https://github.com/pydantic/pydantic/pull/8365) * Fix a naming issue with JSON schema for generics parametrized by recursive type aliases by dmontagu in [8389](https://github.com/pydantic/pydantic/pull/8389) * Fix type annotation in pydantic people script by shenxiangzhuang in [8402](https://github.com/pydantic/pydantic/pull/8402) * Add support for field `alias` in `dataclass` signature by NeevCohen in [8387](https://github.com/pydantic/pydantic/pull/8387) * Fix bug with schema generation with `Field(...)` in a forward ref by dmontagu in [8494](https://github.com/pydantic/pydantic/pull/8494) * Fix ordering of keys in `__dict__` with `model_construct` call by sydney-runkle in [8500](https://github.com/pydantic/pydantic/pull/8500) * Fix module `path_type` creation when globals does not contain `__name__` by hramezani in [8470](https://github.com/pydantic/pydantic/pull/8470) * Fix for namespace issue with dataclasses with `from __future__ import annotations` by sydney-runkle in [8513](https://github.com/pydantic/pydantic/pull/8513) * Fix: make function validator types positional-only by pmmmwh in [8479](https://github.com/pydantic/pydantic/pull/8479) * Fix usage of `deprecated` by Viicos in [8294](https://github.com/pydantic/pydantic/pull/8294) * Add more support for private attributes in `model_construct` call by sydney-runkle in [8525](https://github.com/pydantic/pydantic/pull/8525) * Use a stack for the types namespace by dmontagu in [8378](https://github.com/pydantic/pydantic/pull/8378) * Fix schema-building bug with `TypeAliasType` for types with refs by dmontagu in [8526](https://github.com/pydantic/pydantic/pull/8526) * Support `pydantic.Field(repr=False)` in dataclasses by tigeryy2 in [8511](https://github.com/pydantic/pydantic/pull/8511) * Override `dataclass_transform` behavior for `RootModel` by Viicos in [8163](https://github.com/pydantic/pydantic/pull/8163) * Refactor signature generation for simplicity by sydney-runkle in [8572](https://github.com/pydantic/pydantic/pull/8572) * Fix ordering bug of PlainValidator annotation by Anvil in [8567](https://github.com/pydantic/pydantic/pull/8567) * Fix `exclude_none` for json serialization of `computed_field`s by sydney-runkle in [pydantic/pydantic-core1098](https://github.com/pydantic/pydantic-core/pull/1098) * Support yyyy-MM-DD string for datetimes by sydney-runkle in [pydantic/pydantic-core1124](https://github.com/pydantic/pydantic-core/pull/1124) * Tweak ordering of definitions in generated schemas by StrawHatDrag0n in [8583](https://github.com/pydantic/pydantic/pull/8583) New Contributors `pydantic` * ekeew made their first contribution in [6874](https://github.com/pydantic/pydantic/pull/6874) * lambertsbennett made their first contribution in [8054](https://github.com/pydantic/pydantic/pull/8054) * vincent-hachin-wmx made their first contribution in [8138](https://github.com/pydantic/pydantic/pull/8138) * QuentinSoubeyranAqemia made their first contribution in [7825](https://github.com/pydantic/pydantic/pull/7825) * ariebovenberg made their first contribution in [8072](https://github.com/pydantic/pydantic/pull/8072) * LukeTonin made their first contribution in [8223](https://github.com/pydantic/pydantic/pull/8223) * denisart made their first contribution in [8231](https://github.com/pydantic/pydantic/pull/8231) * ianhfc made their first contribution in [8066](https://github.com/pydantic/pydantic/pull/8066) * eonu made their first contribution in [8255](https://github.com/pydantic/pydantic/pull/8255) * amandahla made their first contribution in [8263](https://github.com/pydantic/pydantic/pull/8263) * ibleedicare made their first contribution in [8262](https://github.com/pydantic/pydantic/pull/8262) * jevins09 made their first contribution in [8316](https://github.com/pydantic/pydantic/pull/8316) * cuu508 made their first contribution in [8322](https://github.com/pydantic/pydantic/pull/8322) * slanzmich made their first contribution in [8305](https://github.com/pydantic/pydantic/pull/8305) * jensenbox made their first contribution in [8331](https://github.com/pydantic/pydantic/pull/8331) * szepeviktor made their first contribution in [8356](https://github.com/pydantic/pydantic/pull/8356) * Elkiwa made their first contribution in [8341](https://github.com/pydantic/pydantic/pull/8341) * parhamfh made their first contribution in [8395](https://github.com/pydantic/pydantic/pull/8395) * shenxiangzhuang made their first contribution in [8402](https://github.com/pydantic/pydantic/pull/8402) * NeevCohen made their first contribution in [8387](https://github.com/pydantic/pydantic/pull/8387) * zby made their first contribution in [8497](https://github.com/pydantic/pydantic/pull/8497) * patelnets made their first contribution in [8491](https://github.com/pydantic/pydantic/pull/8491) * edwardwli made their first contribution in [8503](https://github.com/pydantic/pydantic/pull/8503) * luca-matei made their first contribution in [8507](https://github.com/pydantic/pydantic/pull/8507) * Jocelyn-Gas made their first contribution in [8437](https://github.com/pydantic/pydantic/pull/8437) * bL34cHig0 made their first contribution in [8501](https://github.com/pydantic/pydantic/pull/8501) * tigeryy2 made their first contribution in [8511](https://github.com/pydantic/pydantic/pull/8511) * geospackle made their first contribution in [8537](https://github.com/pydantic/pydantic/pull/8537) * Anvil made their first contribution in [8567](https://github.com/pydantic/pydantic/pull/8567) * hungtsetse made their first contribution in [8546](https://github.com/pydantic/pydantic/pull/8546) * StrawHatDrag0n made their first contribution in [8583](https://github.com/pydantic/pydantic/pull/8583) `pydantic-core` * mariuswinger made their first contribution in [pydantic/pydantic-core1087](https://github.com/pydantic/pydantic-core/pull/1087) * adamchainz made their first contribution in [pydantic/pydantic-core1090](https://github.com/pydantic/pydantic-core/pull/1090) * akx made their first contribution in [pydantic/pydantic-core1123](https://github.com/pydantic/pydantic-core/pull/1123) ``` ### 2.6.0b1 ``` Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.6.0b1) for details. ``` ### 2.5.3 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.3) What's Changed Packaging * uprev `pydantic-core` to 2.14.6 Fixes * Fix memory leak with recursive definitions creating reference cycles by davidhewitt in [pydantic/pydantic-core1125](https://github.com/pydantic/pydantic-core/pull/1125) ``` ### 2.5.2 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.2) What's Changed Packaging * uprev `pydantic-core` to 2.14.5 New Features * Add `ConfigDict.ser_json_inf_nan` by davidhewitt in [8159](https://github.com/pydantic/pydantic/pull/8159) Fixes * Fix validation of `Literal` from JSON keys when used as `dict` key by sydney-runkle in [pydantic/pydantic-core1075](https://github.com/pydantic/pydantic-core/pull/1075) * Fix bug re `custom_init` on members of `Union` by sydney-runkle in [pydantic/pydantic-core1076](https://github.com/pydantic/pydantic-core/pull/1076) * Fix `JsonValue` `bool` serialization by sydney-runkle in [8190](https://github.com/pydantic/pydantic/pull/8159) * Fix handling of unhashable inputs with `Literal` in `Union`s by sydney-runkle in [pydantic/pydantic-core1089](https://github.com/pydantic/pydantic-core/pull/1089) ``` ### 2.5.1 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.1) What's Changed Packaging * uprev pydantic-core to 2.14.3 by samuelcolvin in [8120](https://github.com/pydantic/pydantic/pull/8120) Fixes * Fix package description limit by dmontagu in [8097](https://github.com/pydantic/pydantic/pull/8097) * Fix `ValidateCallWrapper` error when creating a model which has a validate_call wrapped field annotation by sydney-runkle in [8110](https://github.com/pydantic/pydantic/pull/8110) ``` ### 2.5.0 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.0) The code released in v2.5.0 is functionally identical to that of v2.5.0b1. What's Changed Packaging * Update pydantic-core from 2.10.1 to 2.14.1, significant changes from these updates are described below, full changelog [here](https://github.com/pydantic/pydantic-core/compare/v2.10.1...v2.14.1) * Update to `pyright==1.1.335` by Viicos in [8075](https://github.com/pydantic/pydantic/pull/8075) New Features * Allow plugins to catch non `ValidationError` errors by adriangb in [7806](https://github.com/pydantic/pydantic/pull/7806) * Support `__doc__` argument in `create_model()` by chris-spann in [7863](https://github.com/pydantic/pydantic/pull/7863) * Expose `regex_engine` flag - meaning you can use with the Rust or Python regex libraries in constraints by utkini in [7768](https://github.com/pydantic/pydantic/pull/7768) * Save return type generated from type annotation in `ComputedFieldInfo` by alexmojaki in [7889](https://github.com/pydantic/pydantic/pull/7889) * Adopting `ruff` formatter by Luca-Blight in [7930](https://github.com/pydantic/pydantic/pull/7930) * Added `validation_error_cause` to config by zakstucke in [7626](https://github.com/pydantic/pydantic/pull/7626) * Make path of the item to validate available in plugin by hramezani in [7861](https://github.com/pydantic/pydantic/pull/7861) * Add `CallableDiscriminator` and `Tag` by dmontagu in [7983](https://github.com/pydantic/pydantic/pull/7983) * `CallableDiscriminator` renamed to `Discriminator` by dmontagu in [8047](https://github.com/pydantic/pydantic/pull/8047) * Make union case tags affect union error messages by dmontagu in [8001](https://github.com/pydantic/pydantic/pull/8001) * Add `examples` and `json_schema_extra` to `computed_field` by alexmojaki in [8013](https://github.com/pydantic/pydantic/pull/8013) * Add `JsonValue` type by dmontagu in [7998](https://github.com/pydantic/pydantic/pull/7998) * Allow `str` as argument to `Discriminator` by dmontagu in [8047](https://github.com/pydantic/pydantic/pull/8047) * Add `SchemaSerializer.__reduce__` method to enable pickle serialization by edoakes in [pydantic/pydantic-core1006](https://github.com/pydantic/pydantic-core/pull/1006) Changes * **Significant Change:** replace `ultra_strict` with new smart union implementation, the way unions are validated has changed significantly to improve performance and correctness, we have worked hard to absolutely minimise the number of cases where behaviour has changed, see the PR for details - by davidhewitt in [pydantic/pydantic-core867](https://github.com/pydantic/pydantic-core/pull/867) * Add support for instance method reassignment when `extra='allow'` by sydney-runkle in [7683](https://github.com/pydantic/pydantic/pull/7683) * Support JSON schema generation for `Enum` types with no cases by sydney-runkle in [7927](https://github.com/pydantic/pydantic/pull/7927) * Warn if a class inherits from `Generic` before `BaseModel` by alexmojaki in [7891](https://github.com/pydantic/pydantic/pull/7891) Performance * New custom JSON parser, `jiter` by samuelcolvin in [pydantic/pydantic-core974](https://github.com/pydantic/pydantic-core/pull/974) * PGO build for MacOS M1 by samuelcolvin in [pydantic/pydantic-core1063](https://github.com/pydantic/pydantic-core/pull/1063) * Use `__getattr__` for all package imports, improve import time by samuelcolvin in [7947](https://github.com/pydantic/pydantic/pull/7947) Fixes * Fix `mypy` issue with subclasses of `RootModel` by sydney-runkle in [7677](https://github.com/pydantic/pydantic/pull/7677) * Properly rebuild the `FieldInfo` when a forward ref gets evaluated by dmontagu in [7698](https://github.com/pydantic/pydantic/pull/7698) * Fix failure to load `SecretStr` from JSON (regression in v2.4) by sydney-runkle in [7729](https://github.com/pydantic/pydantic/pull/7729) * Fix `defer_build` behavior with `TypeAdapter` by sydney-runkle in [7736](https://github.com/pydantic/pydantic/pull/7736) * Improve compatibility with legacy `mypy` versions by dmontagu in [7742](https://github.com/pydantic/pydantic/pull/7742) * Fix: update `TypeVar` handling when default is not set by pmmmwh in [7719](https://github.com/pydantic/pydantic/pull/7719) * Support specification of `strict` on `Enum` type fields by sydney-runkle in [7761](https://github.com/pydantic/pydantic/pull/7761) * Wrap `weakref.ref` instead of subclassing to fix `cloudpickle` serialization by edoakes in [7780](https://github.com/pydantic/pydantic/pull/7780) * Keep values of private attributes set within `model_post_init` in subclasses by alexmojaki in [7775](https://github.com/pydantic/pydantic/pull/7775) * Add more specific type for non-callable `json_schema_extra` by alexmojaki in [7803](https://github.com/pydantic/pydantic/pull/7803) * Raise an error when deleting frozen (model) fields by alexmojaki in [7800](https://github.com/pydantic/pydantic/pull/7800) * Fix schema sorting bug with default values by sydney-runkle in [7817](https://github.com/pydantic/pydantic/pull/7817) * Use generated alias for aliases that are not specified otherwise by alexmojaki in [7802](https://github.com/pydantic/pydantic/pull/7802) * Support `strict` specification for `UUID` types by sydney-runkle in [7865](https://github.com/pydantic/pydantic/pull/7865) * JSON schema: fix extra parameter handling by me-and in [7810](https://github.com/pydantic/pydantic/pull/7810) * Fix: support `pydantic.Field(kw_only=True)` with inherited dataclasses by PrettyWood in [7827](https://github.com/pydantic/pydantic/pull/7827) * Support `validate_call` decorator for methods in classes with `__slots__` by sydney-runkle in [7883](https://github.com/pydantic/pydantic/pull/7883) * Fix pydantic dataclass problem with `dataclasses.field` default by hramezani in [7898](https://github.com/pydantic/pydantic/pull/7898) * Fix schema generation for generics with union type bounds by sydney-runkle in [7899](https://github.com/pydantic/pydantic/pull/7899) * Fix version for `importlib_metadata` on python 3.7 by sydney-runkle in [7904](https://github.com/pydantic/pydantic/pull/7904) * Support `|` operator (Union) in PydanticRecursiveRef by alexmojaki in [7892](https://github.com/pydantic/pydantic/pull/7892) * Fix `display_as_type` for `TypeAliasType` in python 3.12 by dmontagu in [7929](https://github.com/pydantic/pydantic/pull/7929) * Add support for `NotRequired` generics in `TypedDict` by sydney-runkle in [7932](https://github.com/pydantic/pydantic/pull/7932) * Make generic `TypeAliasType` specifications produce different schema definitions by alexdrydew in [7893](https://github.com/pydantic/pydantic/pull/7893) * Added fix for signature of inherited dataclass by howsunjow in [7925](https://github.com/pydantic/pydantic/pull/7925) * Make the model name generation more robust in JSON schema by joakimnordling in [7881](https://github.com/pydantic/pydantic/pull/7881) * Fix plurals in validation error messages (in tests) by Iipin in [7972](https://github.com/pydantic/pydantic/pull/7972) * `PrivateAttr` is passed from `Annotated` default position by tabassco in [8004](https://github.com/pydantic/pydantic/pull/8004) * Don't decode bytes (which may not be UTF8) when displaying SecretBytes by alexmojaki in [8012](https://github.com/pydantic/pydantic/pull/8012) * Use `classmethod` instead of `classmethod[Any, Any, Any]` by Mr-Pepe in [7979](https://github.com/pydantic/pydantic/pull/7979) * Clearer error on invalid Plugin by samuelcolvin in [8023](https://github.com/pydantic/pydantic/pull/8023) * Correct pydantic dataclasses import by samuelcolvin in [8027](https://github.com/pydantic/pydantic/pull/8027) * Fix misbehavior for models referencing redefined type aliases by dmontagu in [8050](https://github.com/pydantic/pydantic/pull/8050) * Fix `Optional` field with `validate_default` only performing one field validation by sydney-runkle in [pydantic/pydantic-core1002](https://github.com/pydantic/pydantic-core/pull/1002) * Fix `definition-ref` bug with `Dict` keys by sydney-runkle in [pydantic/pydantic-core1014](https://github.com/pydantic/pydantic-core/pull/1014) * Fix bug allowing validation of `bool` types with `coerce_numbers_to_str=True` by sydney-runkle in [pydantic/pydantic-core1017](https://github.com/pydantic/pydantic-core/pull/1017) * Don't accept `NaN` in float and decimal constraints by davidhewitt in [pydantic/pydantic-core1037](https://github.com/pydantic/pydantic-core/pull/1037) * Add `lax_str` and `lax_int` support for enum values not inherited from str/int by michaelhly in [pydantic/pydantic-core1015](https://github.com/pydantic/pydantic-core/pull/1015) * Support subclasses in lists in `Union` of `List` types by sydney-runkle in [pydantic/pydantic-core1039](https://github.com/pydantic/pydantic-core/pull/1039) * Allow validation against `max_digits` and `decimals` to pass if normalized or non-normalized input is valid by sydney-runkle in [pydantic/pydantic-core1049](https://github.com/pydantic/pydantic-core/pull/1049) * Fix: proper pluralization in `ValidationError` messages by Iipin in [pydantic/pydantic-core1050](https://github.com/pydantic/pydantic-core/pull/1050) * Disallow the string `'-'` as `datetime` input by davidhewitt in [pydantic/speedate52](https://github.com/pydantic/speedate/pull/52) & [pydantic/pydantic-core#1060](https://github.com/pydantic/pydantic-core/pull/1060) * Fix: NaN and Inf float serialization by davidhewitt in [pydantic/pydantic-core1062](https://github.com/pydantic/pydantic-core/pull/1062) * Restore manylinux-compatible PGO builds by davidhewitt in [pydantic/pydantic-core1068](https://github.com/pydantic/pydantic-core/pull/1068) New Contributors `pydantic` * schneebuzz made their first contribution in [7699](https://github.com/pydantic/pydantic/pull/7699) * edoakes made their first contribution in [7780](https://github.com/pydantic/pydantic/pull/7780) * alexmojaki made their first contribution in [7775](https://github.com/pydantic/pydantic/pull/7775) * NickG123 made their first contribution in [7751](https://github.com/pydantic/pydantic/pull/7751) * gowthamgts made their first contribution in [7830](https://github.com/pydantic/pydantic/pull/7830) * jamesbraza made their first contribution in [7848](https://github.com/pydantic/pydantic/pull/7848) * laundmo made their first contribution in [7850](https://github.com/pydantic/pydantic/pull/7850) * rahmatnazali made their first contribution in [7870](https://github.com/pydantic/pydantic/pull/7870) * waterfountain1996 made their first contribution in [7878](https://github.com/pydantic/pydantic/pull/7878) * chris-spann made their first contribution in [7863](https://github.com/pydantic/pydantic/pull/7863) * me-and made their first contribution in [7810](https://github.com/pydantic/pydantic/pull/7810) * utkini made their first contribution in [7768](https://github.com/pydantic/pydantic/pull/7768) * bn-l made their first contribution in [7744](https://github.com/pydantic/pydantic/pull/7744) * alexdrydew made their first contribution in [7893](https://github.com/pydantic/pydantic/pull/7893) * Luca-Blight made their first contribution in [7930](https://github.com/pydantic/pydantic/pull/7930) * howsunjow made their first contribution in [7925](https://github.com/pydantic/pydantic/pull/7925) * joakimnordling made their first contribution in [7881](https://github.com/pydantic/pydantic/pull/7881) * icfly2 made their first contribution in [7976](https://github.com/pydantic/pydantic/pull/7976) * Yummy-Yums made their first contribution in [8003](https://github.com/pydantic/pydantic/pull/8003) * Iipin made their first contribution in [7972](https://github.com/pydantic/pydantic/pull/7972) * tabassco made their first contribution in [8004](https://github.com/pydantic/pydantic/pull/8004) * Mr-Pepe made their first contribution in [7979](https://github.com/pydantic/pydantic/pull/7979) * 0x00cl made their first contribution in [8010](https://github.com/pydantic/pydantic/pull/8010) * barraponto made their first contribution in [8032](https://github.com/pydantic/pydantic/pull/8032) `pydantic-core` * sisp made their first contribution in [pydantic/pydantic-core995](https://github.com/pydantic/pydantic-core/pull/995) * michaelhly made their first contribution in [pydantic/pydantic-core1015](https://github.com/pydantic/pydantic-core/pull/1015) ``` ### 2.5.0b1 ``` Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.5.0b1) for details. ``` ### 2.4.2 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.4.2) What's Changed Fixes * Fix bug with JSON schema for sequence of discriminated union by dmontagu in [7647](https://github.com/pydantic/pydantic/pull/7647) * Fix schema references in discriminated unions by adriangb in [7646](https://github.com/pydantic/pydantic/pull/7646) * Fix json schema generation for recursive models by adriangb in [7653](https://github.com/pydantic/pydantic/pull/7653) * Fix `models_json_schema` for generic models by adriangb in [7654](https://github.com/pydantic/pydantic/pull/7654) * Fix xfailed test for generic model signatures by adriangb in [7658](https://github.com/pydantic/pydantic/pull/7658) New Contributors * austinorr made their first contribution in [7657](https://github.com/pydantic/pydantic/pull/7657) * peterHoburg made their first contribution in [7670](https://github.com/pydantic/pydantic/pull/7670) ``` ### 2.4.1 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.4.1) What's Changed Packaging * Update pydantic-core to 2.10.1 by davidhewitt in [7633](https://github.com/pydantic/pydantic/pull/7633) Fixes * Serialize unsubstituted type vars as `Any` by adriangb in [7606](https://github.com/pydantic/pydantic/pull/7606) * Remove schema building caches by adriangb in [7624](https://github.com/pydantic/pydantic/pull/7624) * Fix an issue where JSON schema extras weren't JSON encoded by dmontagu in [7625](https://github.com/pydantic/pydantic/pull/7625) ``` ### 2.4.0 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.4.0) What's Changed Packaging * Update pydantic-core to 2.10.0 by samuelcolvin in [7542](https://github.com/pydantic/pydantic/pull/7542) New Features * Add `Base64Url` types by dmontagu in [7286](https://github.com/pydantic/pydantic/pull/7286) * Implement optional `number` to `str` coercion by lig in [7508](https://github.com/pydantic/pydantic/pull/7508) * Allow access to `field_name` and `data` in all validators if there is data and a field name by samuelcolvin in [7542](https://github.com/pydantic/pydantic/pull/7542) * Add `BaseModel.model_validate_strings` and `TypeAdapter.validate_strings` by hramezani in [7552](https://github.com/pydantic/pydantic/pull/7552) * Add Pydantic `plugins` experimental implementation by lig samuelcolvin and Kludex in [6820](https://github.com/pydantic/pydantic/pull/6820) Changes * Do not override `model_post_init` in subclass with private attrs by Viicos in [7302](https://github.com/pydantic/pydantic/pull/7302) * Make fields with defaults not required in the serialization schema by default by dmontagu in [7275](https://github.com/pydantic/pydantic/pull/7275) * Mark `Extra` as deprecated by disrupted in [7299](https://github.com/pydantic/pydantic/pull/7299) * Make `EncodedStr` a dataclass by Kludex in [7396](https://github.com/pydantic/pydantic/pull/7396) * Move `annotated_handlers` to be public by samuelcolvin in [7569](https://github.com/pydantic/pydantic/pull/7569) Performance * Simplify flattening and inlining of `CoreSchema` by adriangb in [7523](https://github.com/pydantic/pydantic/pull/7523) * Remove unused copies in `CoreSchema` walking by adriangb in [7528](https://github.com/pydantic/pydantic/pull/7528) * Add caches for collecting definitions and invalid schemas from a CoreSchema by adriangb in [7527](https://github.com/pydantic/pydantic/pull/7527) * Eagerly resolve discriminated unions and cache cases where we can't by adriangb in [7529](https://github.com/pydantic/pydantic/pull/7529) * Replace `dict.get` and `dict.setdefault` with more verbose versions in `CoreSchema` building hot paths by adriangb in [7536](https://github.com/pydantic/pydantic/pull/7536) * Cache invalid `CoreSchema` discovery by adriangb in [7535](https://github.com/pydantic/pydantic/pull/7535) * Allow disabling `CoreSchema` validation for faster startup times by adriangb in [7565](https://github.com/pydantic/pydantic/pull/7565) Fixes * Fix config detection for `TypedDict` from grandparent classes by dmontagu in [7272](https://github.com/pydantic/pydantic/pull/7272) * Fix hash function generation for frozen models with unusual MRO by dmontagu in [7274](https://github.com/pydantic/pydantic/pull/7274) * Make `strict` config overridable in field for Path by hramezani in [7281](https://github.com/pydantic/pydantic/pull/7281) * Use `ser_json_<timedelta|bytes>` on default in `GenerateJsonSchema` by Kludex in [7269](https://github.com/pydantic/pydantic/pull/7269) * Adding a check that alias is validated as an identifier for Python by andree0 in [7319](https://github.com/pydantic/pydantic/pull/7319) * Raise an error when computed field overrides field by sydney-runkle in [7346](https://github.com/pydantic/pydantic/pull/7346) * Fix applying `SkipValidation` to referenced schemas by adriangb in [7381](https://github.com/pydantic/pydantic/pull/7381) * Enforce behavior of private attributes having double leading underscore by lig in [7265](https://github.com/pydantic/pydantic/pull/7265) * Standardize `__get_pydantic_core_schema__` signature by hramezani in [7415](https://github.com/pydantic/pydantic/pull/7415) * Fix generic dataclass fields mutation bug (when using `TypeAdapter`) by sydney-runkle in [7435](https://github.com/pydantic/pydantic/pull/7435) * Fix `TypeError` on `model_validator` in `wrap` mode by pmmmwh in [7496](https://github.com/pydantic/pydantic/pull/7496) * Improve enum error message by hramezani in [7506](https://github.com/pydantic/pydantic/pull/7506) * Make `repr` work for instances that failed initialization when handling `ValidationError`s by dmontagu in [7439](https://github.com/pydantic/pydantic/pull/7439) * Fixed a regular expression denial of service issue by limiting whitespaces by prodigysml in [7360](https://github.com/pydantic/pydantic/pull/7360) * Fix handling of `UUID` values having `UUID.version=None` by lig in [7566](https://github.com/pydantic/pydantic/pull/7566) * Fix `__iter__` returning private `cached_property` info by sydney-runkle in [7570](https://github.com/pydantic/pydantic/pull/7570) * Improvements to version info message by samuelcolvin in [7594](https://github.com/pydantic/pydantic/pull/7594) New Contributors * 15498th made their first contribution in [7238](https://github.com/pydantic/pydantic/pull/7238) * GabrielCappelli made their first contribution in [7213](https://github.com/pydantic/pydantic/pull/7213) * tobni made their first contribution in [7184](https://github.com/pydantic/pydantic/pull/7184) * redruin1 made their first contribution in [7282](https://github.com/pydantic/pydantic/pull/7282) * FacerAin made their first contribution in [7288](https://github.com/pydantic/pydantic/pull/7288) * acdha made their first contribution in [7297](https://github.com/pydantic/pydantic/pull/7297) * andree0 made their first contribution in [7319](https://github.com/pydantic/pydantic/pull/7319) * gordonhart made their first contribution in [7375](https://github.com/pydantic/pydantic/pull/7375) * pmmmwh made their first contribution in [7496](https://github.com/pydantic/pydantic/pull/7496) * disrupted made their first contribution in [7299](https://github.com/pydantic/pydantic/pull/7299) * prodigysml made their first contribution in [7360](https://github.com/pydantic/pydantic/pull/7360) ``` ### 2.3.0 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.3.0) * 🔥 Remove orphaned changes file from repo by lig in [7168](https://github.com/pydantic/pydantic/pull/7168) * Add copy button on documentation by Kludex in [7190](https://github.com/pydantic/pydantic/pull/7190) * Fix docs on JSON type by Kludex in [7189](https://github.com/pydantic/pydantic/pull/7189) * Update mypy 1.5.0 to 1.5.1 in CI by hramezani in [7191](https://github.com/pydantic/pydantic/pull/7191) * fix download links badge by samuelcolvin in [7200](https://github.com/pydantic/pydantic/pull/7200) * add 2.2.1 to changelog by samuelcolvin in [7212](https://github.com/pydantic/pydantic/pull/7212) * Make ModelWrapValidator protocols generic by dmontagu in [7154](https://github.com/pydantic/pydantic/pull/7154) * Correct `Field(..., exclude: bool)` docs by samuelcolvin in [7214](https://github.com/pydantic/pydantic/pull/7214) * Make shadowing attributes a warning instead of an error by adriangb in [7193](https://github.com/pydantic/pydantic/pull/7193) * Document `Base64Str` and `Base64Bytes` by Kludex in [7192](https://github.com/pydantic/pydantic/pull/7192) * Fix `config.defer_build` for serialization first cases by samuelcolvin in [7024](https://github.com/pydantic/pydantic/pull/7024) * clean Model docstrings in JSON Schema by samuelcolvin in [7210](https://github.com/pydantic/pydantic/pull/7210) * fix [7228](https://github.com/pydantic/pydantic/pull/7228) (typo): docs in `validators.md` to correct `validate_default` kwarg by lmmx in [#7229](https://github.com/pydantic/pydantic/pull/7229) * ✅ Implement `tzinfo.fromutc` method for `TzInfo` in `pydantic-core` by lig in [7019](https://github.com/pydantic/pydantic/pull/7019) * Support `__get_validators__` by hramezani in [7197](https://github.com/pydantic/pydantic/pull/7197) ``` ### 2.2.1 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.2.1) * Make `xfail`ing test for root model extra stop `xfail`ing by dmontagu in [6937](https://github.com/pydantic/pydantic/pull/6937) * Optimize recursion detection by stopping on the second visit for the same object by mciucu in [7160](https://github.com/pydantic/pydantic/pull/7160) * fix link in docs by tlambert03 in [7166](https://github.com/pydantic/pydantic/pull/7166) * Replace MiMalloc w/ default allocator by adriangb in [pydantic/pydantic-core900](https://github.com/pydantic/pydantic-core/pull/900) * Bump pydantic-core to 2.6.1 and prepare 2.2.1 release by adriangb in [7176](https://github.com/pydantic/pydantic/pull/7176) ``` ### 2.2.0 ``` [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.2.0) * Split "pipx install" setup command into two commands on the documentation site by nomadmtb in [6869](https://github.com/pydantic/pydantic/pull/6869) * Deprecate `Field.include` by hramezani in [6852](https://github.com/pydantic/pydantic/pull/6852) * Fix typo in default factory error msg by hramezani in [6880](https://github.com/pydantic/pydantic/pull/6880) * Simplify handling of typing.Annotated in GenerateSchema by dmontagu in [6887](https://github.com/pydantic/pydantic/pull/6887) * Re-enable fastapi tests in CI by dmontagu in [6883](https://github.com/pydantic/pydantic/pull/6883) * Make it harder to hit collisions with json schema defrefs by dmontagu in [6566](https://github.com/pydantic/pydantic/pull/6566) * Cleaner error for invalid input to `Path` fields by samuelcolvin in [6903](https://github.com/pydantic/pydantic/pull/6903) * :memo: support Coordinate Type by yezz123 in [6906](https://github.com/pydantic/pydantic/pull/6906) * Fix `ForwardRef` wrapper for py 3.10.0 (shim until bpo-45166) by randomir in [6919](https://github.com/pydantic/pydantic/pull/6919) * Fix misbehavior related to copying of RootModel by dmontagu in [6918](https://github.com/pydantic/pydantic/pull/6918) * Fix issue with recursion error caused by ParamSpec by dmontagu in [6923](https://github.com/pydantic/pydantic/pull/6923) * Add section about Constrained classes to the Migration Guide by Kludex in [6924](https://github.com/pydantic/pydantic/pull/6924) * Use `main` branch for badge links by Viicos in [6925](https://github.com/pydantic/pydantic/pull/6925) * Add test for v1/v2 Annotated discrepancy by carlbordum in [6926](https://github.com/pydantic/pydantic/pull/6926) * Make the v1 mypy plugin work with both v1 and v2 by dmontagu in [6921](https://github.com/pydantic/pydantic/pull/6921) * Fix issue where generic models couldn't be parametrized with BaseModel by dmontagu in [6933](https://github.com/pydantic/pydantic/pull/6933) * Remove xfail for discriminated union with alias by dmontagu in [6938](https://github.com/pydantic/pydantic/pull/6938) * add field_serializer to computed_field by andresliszt in [6965](https://github.com/pydantic/pydantic/pull/6965) * Use union_schema with Type[Union[...]] by JeanArhancet in [6952](https://github.com/pydantic/pydantic/pull/6952) * Fix inherited typeddict attributes / config by adriangb in [6981](https://github.com/pydantic/pydantic/pull/6981) * fix dataclass annotated before validator called twice by davidhewitt in [6998](https://github.com/pydantic/pydantic/pull/6998) * Update test-fastapi deselected tests by hramezani in [7014](https://github.com/pydantic/pydantic/pull/7014) * Fix validator doc format by hramezani in [7015](https://github.com/pydantic/pydantic/pull/7015) * Fix typo in docstring of model_json_schema by AdamVinch-Federated in [7032](https://github.com/pydantic/pydantic/pull/7032) * remove unused "type ignores" with pyright by samuelcolvin in [7026](https://github.com/pydantic/pydantic/pull/7026) * Add benchmark representing FastAPI startup time by adriangb in [7030](https://github.com/pydantic/pydantic/pull/7030) * Fix json_encoders for Enum subclasses by adriangb in [7029](https://github.com/pydantic/pydantic/pull/7029) * Update docstring of `ser_json_bytes` regarding base64 encoding by Viicos in [7052](https://github.com/pydantic/pydantic/pull/7052) * Allow `validate_call` to work on async methods by adriangb in [7046](https://github.com/pydantic/pydantic/pull/7046) * Fix: mypy error with `Settings` and `SettingsConfigDict` by JeanArhancet in [7002](https://github.com/pydantic/pydantic/pull/7002) * Fix some typos (repeated words and it's/its) by eumiro in [7063](https://github.com/pydantic/pydantic/pull/7063) * Fix the typo in docstring by harunyasar in [7062](https://github.com/pydantic/pydantic/pull/7062) * Docs: Fix broken URL in the pydantic-settings package recommendation by swetjen in [6995](https://github.com/pydantic/pydantic/pull/6995) * Handle constraints being applied to schemas that don't accept it by adriangb in [6951](https://github.com/pydantic/pydantic/pull/6951) * Replace almost_equal_floats with math.isclose by eumiro in [7082](https://github.com/pydantic/pydantic/pull/7082) * bump pydantic-core to 2.5.0 by davidhewitt in [7077](https://github.com/pydantic/pydantic/pull/7077) * Add `short_version` and use it in links by hramezani in [7115](https://github.com/pydantic/pydantic/pull/7115) * 📝 Add usage link to `RootModel` by Kludex in [7113](https://github.com/pydantic/pydantic/pull/7113) * Revert "Fix default port for mongosrv DSNs (6827)" by Kludex in [7116](https://github.com/pydantic/pydantic/pull/7116) * Clarify validate_default and _Unset handling in usage docs and migration guide by benbenbang in [6950](https://github.com/pydantic/pydantic/pull/6950) * Tweak documentation of `Field.exclude` by Viicos in [7086](https://github.com/pydantic/pydantic/pull/7086) * Do not require `validate_assignment` to use `Field.frozen` by Viicos in [7103](https://github.com/pydantic/pydantic/pull/7103) * tweaks to `_core_utils` by samuelcolvin in [7040](https://github.com/pydantic/pydantic/pull/7040) * Make DefaultDict working with set by hramezani in [7126](https://github.com/pydantic/pydantic/pull/7126) * Don't always require typing.Generic as a base for partially parametrized models by dmontagu in [7119](https://github.com/pydantic/pydantic/pull/7119) * Fix issue with JSON schema incorrectly using parent class core schema by dmontagu in [7020](https://github.com/pydantic/pydantic/pull/7020) * Fix xfailed test related to TypedDict and alias_generator by dmontagu in [6940](https://github.com/pydantic/pydantic/pull/6940) * Improve error message for NameEmail by dmontagu in [6939](https://github.com/pydantic/pydantic/pull/6939) * Fix generic computed fields by dmontagu in [6988](https://github.com/pydantic/pydantic/pull/6988) * Reflect namedtuple default values during validation by dmontagu in [7144](https://github.com/pydantic/pydantic/pull/7144) * Update dependencies, fix pydantic-core usage, fix CI issues by dmontagu in [7150](https://github.com/pydantic/pydantic/pull/7150) * Add mypy 1.5.0 by hramezani in [7118](https://github.com/pydantic/pydantic/pull/7118) * Handle non-json native enum values by adriangb in [7056](https://github.com/pydantic/pydantic/pull/7056) * document `round_trip` in Json type documentation by jc-louis