Skip to content

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Oct 7, 2025

This PR updates pydantic from 1.4 to 2.12.0.

Changelog

2.12.0

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

What's Changed

This is the final 2.12 release. It features the work of 20 external contributors and provides useful new features, along with initial Python 3.14 support.
Several minor changes (considered non-breaking changes according to our [versioning policy](https://docs.pydantic.dev/2.12/version-policy/#pydantic-v2))
are also included in this release. Make sure to look into them before upgrading.

Changes (see the alpha and beta releases for additional changes since 2.11):

Packaging

* Update V1 copy to v1.10.24 by Viicos in [12338](https://github.com/pydantic/pydantic/pull/12338)

New Features

* Add `extra` parameter to the validate functions by anvilpete in [12233](https://github.com/pydantic/pydantic/pull/12233)
* Add `exclude_computed_fields` serialization option by Viicos in [12334](https://github.com/pydantic/pydantic/pull/12334)
* Add `preverse_empty_path` URL options by Viicos in [12336](https://github.com/pydantic/pydantic/pull/12336)
* Add `union_format` parameter to JSON Schema generation by Viicos in [12147](https://github.com/pydantic/pydantic/pull/12147)
* Add `__qualname__` parameter for `create_model` by Atry in [12001](https://github.com/pydantic/pydantic/pull/12001)

Fixes

* Do not try to infer name from lambda definitions in pipelines API by Viicos in [12289](https://github.com/pydantic/pydantic/pull/12289)
* Use proper namespace for functions in `TypeAdapter` by Viicos in [12324](https://github.com/pydantic/pydantic/pull/12324)
* Use `Any` for context type annotation in `TypeAdapter` by inducer in [12279](https://github.com/pydantic/pydantic/pull/12279)
* Expose `FieldInfo` in `pydantic.fields.__all__` by Viicos in [12339](https://github.com/pydantic/pydantic/pull/12339)
* Respect `validation_alias` in `validate_call` by Viicos in [12340](https://github.com/pydantic/pydantic/pull/12340)
* Use `Any` as context annotation in plugin API by Viicos in [12341](https://github.com/pydantic/pydantic/pull/12341)
* Use proper `stacklevel` in warnings when possible by Viicos in [12342](https://github.com/pydantic/pydantic/pull/12342)

New Contributors

* anvilpete made their first contribution in [12233](https://github.com/pydantic/pydantic/pull/12233)
* JonathanWindell made their first contribution in [12327](https://github.com/pydantic/pydantic/pull/12327)
* inducer made their first contribution in [12279](https://github.com/pydantic/pydantic/pull/12279)
* Atry made their first contribution in [12001](https://github.com/pydantic/pydantic/pull/12001)

2.12.0b1

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

This is the first beta release of the upcoming 2.12 release.

What's Changed

Packaging

* Bump `pydantic-core` to v2.40.1 by Viicos in [12314](https://github.com/pydantic/pydantic/pull/12314)

New Features

* Add support for `exclude_if` at the field level by andresliszt in [12141](https://github.com/pydantic/pydantic/pull/12141)
* Add `ValidateAs` annotation helper by Viicos in [11942](https://github.com/pydantic/pydantic/pull/11942)
* Add configuration options for validation and JSON serialization of temporal types by ollz272 in [12068](https://github.com/pydantic/pydantic/pull/12068)
* Add support for PEP 728 by Viicos in [12179](https://github.com/pydantic/pydantic/pull/12179)
* Add field name in serialization error by NicolasPllr1 in [pydantic-core1799](https://github.com/pydantic/pydantic-core/pull/1799)
* Add option to preserve empty URL paths by davidhewitt in [pydantic-core1789](https://github.com/pydantic/pydantic-core/pull/1789)

Changes

* Raise error if an incompatible `pydantic-core` version is installed by Viicos in [12196](https://github.com/pydantic/pydantic/pull/12196)
* Remove runtime warning for experimental features by Viicos in [12265](https://github.com/pydantic/pydantic/pull/12265)
* Warn if registering virtual subclasses on Pydantic models by Viicos in [11669](https://github.com/pydantic/pydantic/pull/11669)

Fixes

* Fix `__getattr__()` behavior on Pydantic models when a property raised an `AttributeError` and extra values are present by raspuchin in [12106](https://github.com/pydantic/pydantic/pull/12106)
* Add test to prevent regression with Pydantic models used as annotated metadata by Viicos in [12133](https://github.com/pydantic/pydantic/pull/12133)
* Allow to use property setters on Pydantic dataclasses with `validate_assignment` set by Viicos in [12173](https://github.com/pydantic/pydantic/pull/12173)
* Fix mypy v2 plugin for upcoming mypy release by cdce8p in [12209](https://github.com/pydantic/pydantic/pull/12209)
* Respect custom title in functions JSON Schema by Viicos in [11892](https://github.com/pydantic/pydantic/pull/11892)
* Fix `ImportString` JSON serialization for objects with a `name` attribute by chr1sj0nes in [12219](https://github.com/pydantic/pydantic/pull/12219)
* Do not error on fields overridden by methods in the mypy plugin by Viicos in [12290](https://github.com/pydantic/pydantic/pull/12290)

New Contributors

* raspuchin made their first contribution in [12106](https://github.com/pydantic/pydantic/pull/12106)
* chr1sj0nes made their first contribution in [12219](https://github.com/pydantic/pydantic/pull/12219)

2.12.0a1

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

This is the first alpha release of the upcoming 2.12 release, which adds initial support for Python 3.14.

What's Changed

New Features

* Add `__pydantic_on_complete__()` hook that is called once model is fully ready to be used by DouweM in [11762](https://github.com/pydantic/pydantic/pull/11762)
* Add initial support for Python 3.14 by Viicos in [11991](https://github.com/pydantic/pydantic/pull/11991)
* Add regex patterns to JSON schema for `Decimal` type by Dima-Bulavenko in [11987](https://github.com/pydantic/pydantic/pull/11987)
* Add support for `doc` attribute on dataclass fields by Viicos in [12077](https://github.com/pydantic/pydantic/pull/12077)
* Add experimental `MISSING` sentinel by Viicos in [11883](https://github.com/pydantic/pydantic/pull/11883)

Changes

* Allow config and bases to be specified together in `create_model()` by Viicos in [11714](https://github.com/pydantic/pydantic/pull/11714)
* Move some field logic out of the `GenerateSchema` class by Viicos in [11733](https://github.com/pydantic/pydantic/pull/11733)
* Always make use of `inspect.getsourcelines()` for docstring extraction on Python 3.13 and greater by Viicos in [11829](https://github.com/pydantic/pydantic/pull/11829)
* Only support the latest Mypy version by Viicos in [11832](https://github.com/pydantic/pydantic/pull/11832)
* Do not implicitly convert after model validators to class methods by Viicos in [11957](https://github.com/pydantic/pydantic/pull/11957)
* Refactor `FieldInfo` creation implementation by Viicos in [11898](https://github.com/pydantic/pydantic/pull/11898)
* Make `Secret` covariant by bluenote10 in [12008](https://github.com/pydantic/pydantic/pull/12008)
* Emit warning when field-specific metadata is used in invalid contexts by Viicos in [12028](https://github.com/pydantic/pydantic/pull/12028)

Fixes

* Properly fetch plain serializer function when serializing default value in JSON Schema by Viicos in [11721](https://github.com/pydantic/pydantic/pull/11721)
* Remove generics cache workaround by Viicos in [11755](https://github.com/pydantic/pydantic/pull/11755)
* Remove coercion of decimal constraints by Viicos in [11772](https://github.com/pydantic/pydantic/pull/11772)
* Fix crash when expanding root type in the mypy plugin by Viicos in [11735](https://github.com/pydantic/pydantic/pull/11735)
* Only mark model as complete once all fields are complete by DouweM in [11759](https://github.com/pydantic/pydantic/pull/11759)
* Do not provide `field_name` in validator core schemas by DouweM in [11761](https://github.com/pydantic/pydantic/pull/11761)
* Fix issue with recursive generic models by Viicos in [11775](https://github.com/pydantic/pydantic/pull/11775)
* Fix qualified name comparison of private attributes during namespace inspection by karta9821 in [11803](https://github.com/pydantic/pydantic/pull/11803)
* Make sure Pydantic dataclasses with slots and `validate_assignment` can be unpickled by Viicos in [11769](https://github.com/pydantic/pydantic/pull/11769)
* Traverse `function-before` schemas during schema gathering by Viicos in [11801](https://github.com/pydantic/pydantic/pull/11801)
* Fix check for stdlib dataclasses by Viicos in [11822](https://github.com/pydantic/pydantic/pull/11822)
* Check if `FieldInfo` is complete after applying type variable map by Viicos in [11855](https://github.com/pydantic/pydantic/pull/11855)
* Do not delete mock validator/serializer in `model_rebuild()` by Viicos in [11890](https://github.com/pydantic/pydantic/pull/11890)
* Rebuild dataclass fields before schema generation by Viicos in [11949](https://github.com/pydantic/pydantic/pull/11949)
* Always store the original field assignment on `FieldInfo` by Viicos in [11946](https://github.com/pydantic/pydantic/pull/11946)
* Do not use deprecated methods as default field values by Viicos in [11914](https://github.com/pydantic/pydantic/pull/11914)
* Allow callable discriminator to be applied on PEP 695 type aliases by Viicos in [11941](https://github.com/pydantic/pydantic/pull/11941)
* Suppress core schema generation warning when using `SkipValidation` by ygsh0816 in [12002](https://github.com/pydantic/pydantic/pull/12002)
* Do not emit typechecking error for invalid `Field()` default with `validate_default` set to `True` by Viicos in [11988](https://github.com/pydantic/pydantic/pull/11988)
* Refactor logic to support Pydantic's `Field()` function in dataclasses by Viicos in [12051](https://github.com/pydantic/pydantic/pull/12051)

Packaging

* Update project metadata to use PEP 639 by Viicos in [11694](https://github.com/pydantic/pydantic/pull/11694)
* Bump `mkdocs-llmstxt` to v0.2.0 by Viicos in [11725](https://github.com/pydantic/pydantic/pull/11725)
* Bump `pydantic-core` to v2.35.1 by Viicos in [11963](https://github.com/pydantic/pydantic/pull/11963)
* Bump dawidd6/action-download-artifact from 10 to 11 by dependabot[bot] in [12033](https://github.com/pydantic/pydantic/pull/12033)
* Bump astral-sh/setup-uv from 5 to 6 by dependabot[bot] in [11826](https://github.com/pydantic/pydantic/pull/11826)
* Update mypy to 1.17.0 by Viicos in [12076](https://github.com/pydantic/pydantic/pull/12076)

New Contributors

* parth-paradkar made their first contribution in [11695](https://github.com/pydantic/pydantic/pull/11695)
* dqkqd made their first contribution in [11739](https://github.com/pydantic/pydantic/pull/11739)
* fhightower made their first contribution in [11722](https://github.com/pydantic/pydantic/pull/11722)
* gbaian10 made their first contribution in [11766](https://github.com/pydantic/pydantic/pull/11766)
* DouweM made their first contribution in [11759](https://github.com/pydantic/pydantic/pull/11759)
* bowenliang123 made their first contribution in [11719](https://github.com/pydantic/pydantic/pull/11719)
* rawwar made their first contribution in [11799](https://github.com/pydantic/pydantic/pull/11799)
* karta9821 made their first contribution in [11803](https://github.com/pydantic/pydantic/pull/11803)
* jinnovation made their first contribution in [11834](https://github.com/pydantic/pydantic/pull/11834)
* zmievsa made their first contribution in [11861](https://github.com/pydantic/pydantic/pull/11861)
* Otto-AA made their first contribution in [11860](https://github.com/pydantic/pydantic/pull/11860)
* ygsh0816 made their first contribution in [12002](https://github.com/pydantic/pydantic/pull/12002)
* lukland made their first contribution in [12015](https://github.com/pydantic/pydantic/pull/12015)
* Dima-Bulavenko made their first contribution in [11987](https://github.com/pydantic/pydantic/pull/11987)
* GSemikozov made their first contribution in [12050](https://github.com/pydantic/pydantic/pull/12050)
* hannah-heywa made their first contribution in [12082](https://github.com/pydantic/pydantic/pull/12082)

2.11.7

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

What's Changed

Fixes

* Copy `FieldInfo` instance if necessary during `FieldInfo` build by Viicos in [11898](https://github.com/pydantic/pydantic/pull/11898)

2.11.6

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

What's Changed

Fixes

* Rebuild dataclass fields before schema generation by Viicos in [11949](https://github.com/pydantic/pydantic/pull/11949)
* Always store the original field assignment on `FieldInfo` by Viicos in [11946](https://github.com/pydantic/pydantic/pull/11946)

2.11.5

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

What's Changed

Fixes

* Check if `FieldInfo` is complete after applying type variable map by Viicos in [11855](https://github.com/pydantic/pydantic/pull/11855)
* Do not delete mock validator/serializer in `model_rebuild()` by Viicos in [11890](https://github.com/pydantic/pydantic/pull/11890)
* Do not duplicate metadata on model rebuild by Viicos in [11902](https://github.com/pydantic/pydantic/pull/11902)

2.11.4

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

What's Changed

Packaging

* Bump `mkdocs-llmstxt` to v0.2.0 by Viicos in [11725](https://github.com/pydantic/pydantic/pull/11725)

Changes

* Allow config and bases to be specified together in `create_model()` by Viicos in [11714](https://github.com/pydantic/pydantic/pull/11714).
This change was backported as it was previously possible (although not meant to be supported)
to provide `model_config` as a field, which would make it possible to provide both configuration
and bases.

Fixes

* Remove generics cache workaround by Viicos in [11755](https://github.com/pydantic/pydantic/pull/11755)
* Remove coercion of decimal constraints by Viicos in [11772](https://github.com/pydantic/pydantic/pull/11772)
* Fix crash when expanding root type in the mypy plugin by Viicos in [11735](https://github.com/pydantic/pydantic/pull/11735)
* Fix issue with recursive generic models by Viicos in [11775](https://github.com/pydantic/pydantic/pull/11775)
* Traverse `function-before` schemas during schema gathering by Viicos in [11801](https://github.com/pydantic/pydantic/pull/11801)

2.11.3

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

What's Changed

Packaging

* Update V1 copy to v1.10.21 by Viicos in [11706](https://github.com/pydantic/pydantic/pull/11706)

Fixes

* Preserve field description when rebuilding model fields by Viicos in [11698](https://github.com/pydantic/pydantic/pull/11698)

2.11.2

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

What's Changed

Fixes

* Bump `pydantic-core` to v2.33.1 by Viicos in [11678](https://github.com/pydantic/pydantic/pull/11678)
* Make sure `__pydantic_private__` exists before setting private attributes by Viicos in [11666](https://github.com/pydantic/pydantic/pull/11666)
* Do not override `FieldInfo._complete` when using field from parent class by Viicos in [11668](https://github.com/pydantic/pydantic/pull/11668)
* Provide the available definitions when applying discriminated unions by Viicos in [11670](https://github.com/pydantic/pydantic/pull/11670)
* Do not expand root type in the mypy plugin for variables by Viicos in [11676](https://github.com/pydantic/pydantic/pull/11676)
* Mention the attribute name in model fields deprecation message by Viicos in [11674](https://github.com/pydantic/pydantic/pull/11674)
* Properly validate parameterized mappings by Viicos in [11658](https://github.com/pydantic/pydantic/pull/11658)

2.11.1

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

What's Changed

Fixes

* Do not override `'definitions-ref'` schemas containing serialization schemas or metadata by Viicos in [11644](https://github.com/pydantic/pydantic/pull/11644)

2.11.0

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

What's Changed

Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general).
See the [blog post](https://pydantic.dev/articles/pydantic-v2-11-release) for more details.

Packaging

* Bump `pydantic-core` to v2.33.0 by Viicos in [11631](https://github.com/pydantic/pydantic/pull/11631)

New Features

* Add `encoded_string()` method to the URL types by YassinNouh21 in [11580](https://github.com/pydantic/pydantic/pull/11580)
* Add support for `defer_build` with `validate_call` decorator by Viicos in [11584](https://github.com/pydantic/pydantic/pull/11584)
* Allow `with_config` decorator to be used with keyword arguments by Viicos in [11608](https://github.com/pydantic/pydantic/pull/11608)
* Simplify customization of default value inclusion in JSON Schema generation by Viicos in [11634](https://github.com/pydantic/pydantic/pull/11634)
* Add `generate_arguments_schema()` function by Viicos in [11572](https://github.com/pydantic/pydantic/pull/11572)

Fixes

* Allow generic typed dictionaries to be used for unpacked variadic keyword parameters by Viicos in [11571](https://github.com/pydantic/pydantic/pull/11571)
* Fix runtime error when computing model string representation involving cached properties and self-referenced models by Viicos in [11579](https://github.com/pydantic/pydantic/pull/11579)
* Preserve other steps when using the ellipsis in the pipeline API by Viicos in [11626](https://github.com/pydantic/pydantic/pull/11626)
* Fix deferred discriminator application logic by Viicos in [11591](https://github.com/pydantic/pydantic/pull/11591)

New Contributors

* cmenon12 made their first contribution in [11562](https://github.com/pydantic/pydantic/pull/11562)
* Jeukoh made their first contribution in [11611](https://github.com/pydantic/pydantic/pull/11611)

2.11.0b2

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

What's Changed

Packaging

* Bump `pydantic-core` to v2.32.0 by Viicos in [11567](https://github.com/pydantic/pydantic/pull/11567)

New Features

* Add experimental support for free threading by Viicos in [11516](https://github.com/pydantic/pydantic/pull/11516)

Fixes

* Fix `NotRequired` qualifier not taken into account in stringified annotation by Viicos in [11559](https://github.com/pydantic/pydantic/pull/11559)

New Contributors

* joren485 made their first contribution in [11547](https://github.com/pydantic/pydantic/pull/11547)

2.11.0b1

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

What's Changed

Packaging

* Add a `check_pydantic_core_version()` function by Viicos in https://github.com/pydantic/pydantic/pull/11324
* Remove `greenlet` development dependency by Viicos in https://github.com/pydantic/pydantic/pull/11351
* Use the `typing-inspection` library by Viicos in https://github.com/pydantic/pydantic/pull/11479
* Bump `pydantic-core` to `v2.31.1` by sydney-runkle in https://github.com/pydantic/pydantic/pull/11526

New Features

* Support unsubstituted type variables with both a default and a bound or constraints by FyZzyss in https://github.com/pydantic/pydantic/pull/10789
* Add a `default_factory_takes_validated_data` property to `FieldInfo` by Viicos in https://github.com/pydantic/pydantic/pull/11034
* Raise a better error when a generic alias is used inside `type[]` by Viicos in https://github.com/pydantic/pydantic/pull/11088
* Properly support PEP 695 generics syntax by Viicos in https://github.com/pydantic/pydantic/pull/11189
* Properly support type variable defaults by Viicos in https://github.com/pydantic/pydantic/pull/11332
* Add support for validating v6, v7, v8 UUIDs by astei in https://github.com/pydantic/pydantic/pull/11436
* Improve alias configuration APIs by sydney-runkle in https://github.com/pydantic/pydantic/pull/11468

Changes

* Rework `create_model` field definitions format by Viicos in https://github.com/pydantic/pydantic/pull/11032
* Raise a deprecation warning when a field is annotated as final with a default value by Viicos in https://github.com/pydantic/pydantic/pull/11168
* Deprecate accessing `model_fields` and `model_computed_fields` on instances by Viicos in https://github.com/pydantic/pydantic/pull/11169
* **Breaking Change:** Move core schema generation logic for path types inside the `GenerateSchema` class by sydney-runkle in https://github.com/pydantic/pydantic/pull/10846
* Remove Python 3.8 Support by sydney-runkle in https://github.com/pydantic/pydantic/pull/11258
* Optimize calls to `get_type_ref` by Viicos in https://github.com/pydantic/pydantic/pull/10863
* Disable `pydantic-core` core schema validation by sydney-runkle in https://github.com/pydantic/pydantic/pull/11271

Performance

* Only evaluate `FieldInfo` annotations if required during schema building by Viicos in https://github.com/pydantic/pydantic/pull/10769
* Improve `__setattr__` performance of Pydantic models by caching setter functions by MarkusSintonen in https://github.com/pydantic/pydantic/pull/10868
* Improve annotation application performance by Viicos in https://github.com/pydantic/pydantic/pull/11186
* Improve performance of `_typing_extra` module by Viicos in https://github.com/pydantic/pydantic/pull/11255
* Refactor and optimize schema cleaning logic by Viicos in https://github.com/pydantic/pydantic/pull/11244
* Create a single dictionary when creating a `CoreConfig` instance by sydney-runkle in https://github.com/pydantic/pydantic/pull/11384
* Bump `pydantic-core` and thus use `SchemaValidator` and `SchemaSerializer` caching by sydney-runkle in https://github.com/pydantic/pydantic/pull/11402
* Reuse cached core schemas for parametrized generic Pydantic models by MarkusSintonen in https://github.com/pydantic/pydantic/pull/11434

Fixes

* Improve `TypeAdapter` instance repr by sydney-runkle in https://github.com/pydantic/pydantic/pull/10872
* Use the correct frame when instantiating a parametrized `TypeAdapter` by Viicos in https://github.com/pydantic/pydantic/pull/10893
* Infer final fields with a default value as class variables in the mypy plugin by Viicos in https://github.com/pydantic/pydantic/pull/11121
* Recursively unpack `Literal` values if using PEP 695 type aliases by Viicos in https://github.com/pydantic/pydantic/pull/11114
* Override `__subclasscheck__` on `ModelMetaclass` to avoid memory leak and performance issues by Viicos in https://github.com/pydantic/pydantic/pull/11116
* Remove unused `_extract_get_pydantic_json_schema()` parameter by Viicos in https://github.com/pydantic/pydantic/pull/11155
* Improve discriminated union error message for invalid union variants by Viicos in https://github.com/pydantic/pydantic/pull/11161
* Unpack PEP 695 type aliases if using the `Annotated` form by Viicos in https://github.com/pydantic/pydantic/pull/11109
* Add missing stacklevel in `deprecated_instance_property` warning by Viicos in https://github.com/pydantic/pydantic/pull/11200
* Copy `WithJsonSchema` schema to avoid sharing mutated data by thejcannon in https://github.com/pydantic/pydantic/pull/11014
* Do not cache parametrized models when in the process of parametrizing another model by Viicos in https://github.com/pydantic/pydantic/pull/10704
* Add discriminated union related metadata entries to the `CoreMetadata` definition by Viicos in https://github.com/pydantic/pydantic/pull/11216
* Consolidate schema definitions logic in the `_Definitions` class by Viicos in https://github.com/pydantic/pydantic/pull/11208
* Support initializing root model fields with values of the `root` type in the mypy plugin by Viicos in https://github.com/pydantic/pydantic/pull/11212
* Fix various issues with dataclasses and `use_attribute_docstrings` by Viicos in https://github.com/pydantic/pydantic/pull/11246
* Only compute normalized decimal places if necessary in `decimal_places_validator` by misrasaurabh1 in https://github.com/pydantic/pydantic/pull/11281
* Add support for `validation_alias` in the mypy plugin by Viicos in https://github.com/pydantic/pydantic/pull/11295
* Fix JSON Schema reference collection with `"examples"` keys by Viicos in https://github.com/pydantic/pydantic/pull/11305
* Do not transform model serializer functions as class methods in the mypy plugin by Viicos in https://github.com/pydantic/pydantic/pull/11298
* Simplify `GenerateJsonSchema.literal_schema()` implementation by misrasaurabh1 in https://github.com/pydantic/pydantic/pull/11321
* Add additional allowed schemes for `ClickHouseDsn` by Maze21127 in https://github.com/pydantic/pydantic/pull/11319
* Coerce decimal constraints to `Decimal` instances by Viicos in https://github.com/pydantic/pydantic/pull/11350
* Use the correct JSON Schema mode when handling function schemas by Viicos in https://github.com/pydantic/pydantic/pull/11367
* Improve exception message when encountering recursion errors during type evaluation by Viicos in https://github.com/pydantic/pydantic/pull/11356
* Always include `additionalProperties: True` for arbitrary dictionary schemas by austinyu in https://github.com/pydantic/pydantic/pull/11392
* Expose `fallback` parameter in serialization methods by Viicos in https://github.com/pydantic/pydantic/pull/11398
* Fix path serialization behavior by sydney-runkle in https://github.com/pydantic/pydantic/pull/11416
* Do not reuse validators and serializers during model rebuild by Viicos in https://github.com/pydantic/pydantic/pull/11429
* Collect model fields when rebuilding a model by Viicos in https://github.com/pydantic/pydantic/pull/11388
* Allow cached properties to be altered on frozen models by Viicos in https://github.com/pydantic/pydantic/pull/11432
* Fix tuple serialization for `Sequence` types by sydney-runkle in https://github.com/pydantic/pydantic/pull/11435
* Fix: do not check for `__get_validators__` on classes where `__get_pydantic_core_schema__` is also defined by tlambert03 in https://github.com/pydantic/pydantic/pull/11444
* Allow callable instances to be used as serializers by Viicos in https://github.com/pydantic/pydantic/pull/11451
* Improve error thrown when overriding field with a property by sydney-runkle in https://github.com/pydantic/pydantic/pull/11459
* Fix JSON Schema generation with referenceable core schemas holding JSON metadata by Viicos in https://github.com/pydantic/pydantic/pull/11475
* Support strict specification on union member types by sydney-runkle in https://github.com/pydantic/pydantic/pull/11481
* Implicitly set `validate_by_name` to `True` when `validate_by_alias` is `False` by sydney-runkle in https://github.com/pydantic/pydantic/pull/11503
* Change type of `Any` when synthesizing `BaseSettings.__init__` signature in the mypy plugin by Viicos in https://github.com/pydantic/pydantic/pull/11497
* Support type variable defaults referencing other type variables by Viicos in https://github.com/pydantic/pydantic/pull/11520
* Fix `ValueError` on year zero by davidhewitt in https://github.com/pydantic/pydantic-core/pull/1583
* `dataclass` `InitVar` shouldn't be required on serialization by sydney-runkle in https://github.com/pydantic/pydantic-core/pull/1602

New Contributors

* FyZzyss made their first contribution in https://github.com/pydantic/pydantic/pull/10789
* tamird made their first contribution in https://github.com/pydantic/pydantic/pull/10948
* felixxm made their first contribution in https://github.com/pydantic/pydantic/pull/11077
* alexprabhat99 made their first contribution in https://github.com/pydantic/pydantic/pull/11082
* Kharianne made their first contribution in https://github.com/pydantic/pydantic/pull/11111
* mdaffad made their first contribution in https://github.com/pydantic/pydantic/pull/11177
* thejcannon made their first contribution in https://github.com/pydantic/pydantic/pull/11014
* thomasfrimannkoren made their first contribution in https://github.com/pydantic/pydantic/pull/11251
* usernameMAI made their first contribution in https://github.com/pydantic/pydantic/pull/11275
* ananiavito made their first contribution in https://github.com/pydantic/pydantic/pull/11302
* pawamoy made their first contribution in https://github.com/pydantic/pydantic/pull/11311
* Maze21127 made their first contribution in https://github.com/pydantic/pydantic/pull/11319
* kauabh made their first contribution in https://github.com/pydantic/pydantic/pull/11369
* jaceklaskowski made their first contribution in https://github.com/pydantic/pydantic/pull/11353
* tmpbeing made their first contribution in https://github.com/pydantic/pydantic/pull/11375
* petyosi made their first contribution in https://github.com/pydantic/pydantic/pull/11405
* austinyu made their first contribution in https://github.com/pydantic/pydantic/pull/11392
* mikeedjones made their first contribution in https://github.com/pydantic/pydantic/pull/11402
* astei made their first contribution in https://github.com/pydantic/pydantic/pull/11436
* dsayling made their first contribution in https://github.com/pydantic/pydantic/pull/11522
* sobolevn made their first contribution in https://github.com/pydantic/pydantic-core/pull/1645

2.11.0a2

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

What's Changed

Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general).
This is another early alpha release, meant to collect early feedback from users having issues with core schema builds.

Packaging

* Bump `ruff` from 0.9.2 to 0.9.5 by Viicos in [11407](https://github.com/pydantic/pydantic/pull/11407)
* Bump `pydantic-core` to v2.29.0 by mikeedjones in [11402](https://github.com/pydantic/pydantic/pull/11402)
* Use locally-built rust with symbols & pgo by davidhewitt in [11403](https://github.com/pydantic/pydantic/pull/11403)

Performance

* Create a single dictionary when creating a `CoreConfig` instance by sydney-runkle in [11384](https://github.com/pydantic/pydantic/pull/11384)

Fixes

* Use the correct JSON Schema mode when handling function schemas by Viicos in [11367](https://github.com/pydantic/pydantic/pull/11367)
* Fix JSON Schema reference logic with `examples` keys by Viicos in [11366](https://github.com/pydantic/pydantic/pull/11366)
* Improve exception message when encountering recursion errors during type evaluation by Viicos in [11356](https://github.com/pydantic/pydantic/pull/11356)
* Always include `additionalProperties: True` for arbitrary dictionary schemas by austinyu in [11392](https://github.com/pydantic/pydantic/pull/11392)
* Expose `fallback` parameter in serialization methods by Viicos in [11398](https://github.com/pydantic/pydantic/pull/11398)
* Fix path serialization behavior by sydney-runkle in [11416](https://github.com/pydantic/pydantic/pull/11416)

New Contributors

* kauabh made their first contribution in [11369](https://github.com/pydantic/pydantic/pull/11369)
* jaceklaskowski made their first contribution in [11353](https://github.com/pydantic/pydantic/pull/11353)
* tmpbeing made their first contribution in [11375](https://github.com/pydantic/pydantic/pull/11375)
* petyosi made their first contribution in [11405](https://github.com/pydantic/pydantic/pull/11405)
* austinyu made their first contribution in [11392](https://github.com/pydantic/pydantic/pull/11392)
* mikeedjones made their first contribution in [11402](https://github.com/pydantic/pydantic/pull/11402)

2.11.0a1

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

What's Changed

Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general).
This is an early alpha release, meant to collect early feedback from users having issues with core schema builds.

Packaging

* Bump dawidd6/action-download-artifact from 6 to 7 by dependabot in [11018](https://github.com/pydantic/pydantic/pull/11018)
* Re-enable memray related tests on Python 3.12+ by Viicos in [11191](https://github.com/pydantic/pydantic/pull/11191)
* Bump astral-sh/setup-uv to 5 by dependabot in [11205](https://github.com/pydantic/pydantic/pull/11205)
* Bump `ruff` to v0.9.0 by sydney-runkle in [11254](https://github.com/pydantic/pydantic/pull/11254)
* Regular `uv.lock` deps update by sydney-runkle in [11333](https://github.com/pydantic/pydantic/pull/11333)
* Add a `check_pydantic_core_version()` function by Viicos in [11324](https://github.com/pydantic/pydantic/pull/11324)
* Remove `greenlet` development dependency by Viicos in [11351](https://github.com/pydantic/pydantic/pull/11351)
* Bump `pydantic-core` to v2.28.0 by Viicos in [11364](https://github.com/pydantic/pydantic/pull/11364)

New Features

* Support unsubstituted type variables with both a default and a bound or constraints by FyZzyss in [10789](https://github.com/pydantic/pydantic/pull/10789)
* Add a `default_factory_takes_validated_data` property to `FieldInfo` by Viicos in [11034](https://github.com/pydantic/pydantic/pull/11034)
* Raise a better error when a generic alias is used inside `type[]` by Viicos in [11088](https://github.com/pydantic/pydantic/pull/11088)
* Properly support PEP 695 generics syntax by Viicos in [11189](https://github.com/pydantic/pydantic/pull/11189)
* Properly support type variable defaults by Viicos in [11332](https://github.com/pydantic/pydantic/pull/11332)

Changes

* Rework `create_model` field definitions format by Viicos in [11032](https://github.com/pydantic/pydantic/pull/11032)
* Raise a deprecation warning when a field is annotated as final with a default value by Viicos in [11168](https://github.com/pydantic/pydantic/pull/11168)
* Deprecate accessing `model_fields` and `model_computed_fields` on instances by Viicos in [11169](https://github.com/pydantic/pydantic/pull/11169)
* Move core schema generation logic for path types inside the `GenerateSchema` class by sydney-runkle in [10846](https://github.com/pydantic/pydantic/pull/10846)
* Move `deque` schema gen to `GenerateSchema` class by sydney-runkle in [11239](https://github.com/pydantic/pydantic/pull/11239)
* Move `Mapping` schema gen to `GenerateSchema` to complete removal of `prepare_annotations_for_known_type` workaround by sydney-runkle in [11247](https://github.com/pydantic/pydantic/pull/11247)
* Remove Python 3.8 Support by sydney-runkle in [11258](https://github.com/pydantic/pydantic/pull/11258)
* Disable `pydantic-core` core schema validation by sydney-runkle in [11271](https://github.com/pydantic/pydantic/pull/11271)

Performance

* Only evaluate `FieldInfo` annotations if required during schema building by Viicos in [10769](https://github.com/pydantic/pydantic/pull/10769)
* Optimize calls to `get_type_ref` by Viicos in [10863](https://github.com/pydantic/pydantic/pull/10863)
* Improve `__setattr__` performance of Pydantic models by caching setter functions by MarkusSintonen in [10868](https://github.com/pydantic/pydantic/pull/10868)
* Improve annotation application performance by Viicos in [11186](https://github.com/pydantic/pydantic/pull/11186)
* Improve performance of `_typing_extra` module by Viicos in [11255](https://github.com/pydantic/pydantic/pull/11255)
* Refactor and optimize schema cleaning logic by Viicos and MarkusSintonen in [11244](https://github.com/pydantic/pydantic/pull/11244)

Fixes

* Add validation tests for `_internal/_validators.py` by tkasuz in [10763](https://github.com/pydantic/pydantic/pull/10763)
* Improve `TypeAdapter` instance repr by sydney-runkle in [10872](https://github.com/pydantic/pydantic/pull/10872)
* Revert "ci: use locally built pydantic-core with debug symbols by sydney-runkle in [10942](https://github.com/pydantic/pydantic/pull/10942)
* Re-enable all FastAPI tests by tamird in [10948](https://github.com/pydantic/pydantic/pull/10948)
* Fix typo in HISTORY.md. by felixxm in [11077](https://github.com/pydantic/pydantic/pull/11077)
* Infer final fields with a default value as class variables in the mypy plugin by Viicos in [11121](https://github.com/pydantic/pydantic/pull/11121)
* Recursively unpack `Literal` values if using PEP 695 type aliases by Viicos in [11114](https://github.com/pydantic/pydantic/pull/11114)
* Override `__subclasscheck__` on `ModelMetaclass` to avoid memory leak and performance issues by Viicos in [11116](https://github.com/pydantic/pydantic/pull/11116)
* Remove unused `_extract_get_pydantic_json_schema()` parameter by Viicos in [11155](https://github.com/pydantic/pydantic/pull/11155)
* Add FastAPI and SQLModel to third-party tests by sydney-runkle in [11044](https://github.com/pydantic/pydantic/pull/11044)
* Fix conditional expressions syntax for third-party tests by Viicos in [11162](https://github.com/pydantic/pydantic/pull/11162)
* Move FastAPI tests to third-party workflow by Viicos in [11164](https://github.com/pydantic/pydantic/pull/11164)
* Improve discriminated union error message for invalid union variants by Viicos in [11161](https://github.com/pydantic/pydantic/pull/11161)
* Unpack PEP 695 type aliases if using the `Annotated` form by Viicos in [11109](https://github.com/pydantic/pydantic/pull/11109)
* Include `openapi-python-client` check in issue creation for third-party failures, use `main` branch by sydney-runkle in [11182](https://github.com/pydantic/pydantic/pull/11182)
* Add pandera third-party tests by Viicos in [11193](https://github.com/pydantic/pydantic/pull/11193)
* Add ODMantic third-party tests by sydney-runkle in [11197](https://github.com/pydantic/pydantic/pull/11197)
* Add missing stacklevel in `deprecated_instance_property` warning by Viicos in [11200](https://github.com/pydantic/pydantic/pull/11200)
* Copy `WithJsonSchema` schema to avoid sharing mutated data by thejcannon in [11014](https://github.com/pydantic/pydantic/pull/11014)
* Do not cache parametrized models when in the process of parametrizing another model by Viicos in [10704](https://github.com/pydantic/pydantic/pull/10704)
* Re-enable Beanie third-party tests by Viicos in [11214](https://github.com/pydantic/pydantic/pull/11214)
* Add discriminated union related metadata entries to the `CoreMetadata` definition by Viicos in [11216](https://github.com/pydantic/pydantic/pull/11216)
* Consolidate schema definitions logic in the `_Definitions` class by Viicos in [11208](https://github.com/pydantic/pydantic/pull/11208)
* Support initializing root model fields with values of the `root` type in the mypy plugin by Viicos in [11212](https://github.com/pydantic/pydantic/pull/11212)
* Fix various issues with dataclasses and `use_attribute_docstrings` by Viicos in [11246](https://github.com/pydantic/pydantic/pull/11246)
* Only compute normalized decimal places if necessary in `decimal_places_validator` by misrasaurabh1 in [11281](https://github.com/pydantic/pydantic/pull/11281)
* Fix two misplaced sentences in validation errors documentation by ananiavito in [11302](https://github.com/pydantic/pydantic/pull/11302)
* Fix mkdocstrings inventory example in documentation by pawamoy in [11311](https://github.com/pydantic/pydantic/pull/11311)
* Add support for `validation_alias` in the mypy plugin by Viicos in [11295](https://github.com/pydantic/pydantic/pull/11295)
* Do not transform model serializer functions as class methods in the mypy plugin by Viicos in [11298](https://github.com/pydantic/pydantic/pull/11298)
* Simplify `GenerateJsonSchema.literal_schema()` implementation by misrasaurabh1 in [11321](https://github.com/pydantic/pydantic/pull/11321)
* Add additional allowed schemes for `ClickHouseDsn` by Maze21127 in [11319](https://github.com/pydantic/pydantic/pull/11319)
* Coerce decimal constraints to `Decimal` instances by Viicos in [11350](https://github.com/pydantic/pydantic/pull/11350)
* Fix `ValueError` on year zero by davidhewitt in [pydantic-core1583](https://github.com/pydantic/pydantic-core/pull/1583)

New Contributors

* FyZzyss made their first contribution in [10789](https://github.com/pydantic/pydantic/pull/10789)
* tamird made their first contribution in [10948](https://github.com/pydantic/pydantic/pull/10948)
* felixxm made their first contribution in [11077](https://github.com/pydantic/pydantic/pull/11077)
* alexprabhat99 made their first contribution in [11082](https://github.com/pydantic/pydantic/pull/11082)
* Kharianne made their first contribution in [11111](https://github.com/pydantic/pydantic/pull/11111)
* mdaffad made their first contribution in [11177](https://github.com/pydantic/pydantic/pull/11177)
* thejcannon made their first contribution in [11014](https://github.com/pydantic/pydantic/pull/11014)
* thomasfrimannkoren made their first contribution in [11251](https://github.com/pydantic/pydantic/pull/11251)
* usernameMAI made their first contribution in [11275](https://github.com/pydantic/pydantic/pull/11275)
* ananiavito made their first contribution in [11302](https://github.com/pydantic/pydantic/pull/11302)
* pawamoy made their first contribution in [11311](https://github.com/pydantic/pydantic/pull/11311)
* Maze21127 made their first contribution in [11319](https://github.com/pydantic/pydantic/pull/11319)

2.10.6

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

What's Changed

Fixes

* Fix JSON Schema reference collection with `'examples'` keys by Viicos in [11325](https://github.com/pydantic/pydantic/pull/11325)
* Fix url python serialization by sydney-runkle in [11331](https://github.com/pydantic/pydantic/pull/11331)

2.10.5

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

What's Changed

Fixes

* Remove custom MRO implementation of Pydantic models by Viicos in [11184](https://github.com/pydantic/pydantic/pull/11184)
* Fix URL serialization for unions by sydney-runkle in [11233](https://github.com/pydantic/pydantic/pull/11233)

2.10.4

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

What's Changed

Packaging

* Bump `pydantic-core` to v2.27.2 by davidhewitt in [11138](https://github.com/pydantic/pydantic/pull/11138)

Fixes

* Fix for comparison of `AnyUrl` objects by alexprabhat99 in [11082](https://github.com/pydantic/pydantic/pull/11082)
* Properly fetch PEP 695 type params for functions, do not fetch annotations from signature by Viicos in [11093](https://github.com/pydantic/pydantic/pull/11093)
* Include JSON Schema input core schema in function schemas by Viicos in [11085](https://github.com/pydantic/pydantic/pull/11085)
* Add `len` to `_BaseUrl` to avoid TypeError by Kharianne in [11111](https://github.com/pydantic/pydantic/pull/11111)
* Make sure the type reference is removed from the seen references by Viicos in [11143](https://github.com/pydantic/pydantic/pull/11143)

New Contributors

* FyZzyss made their first contribution in [10789](https://github.com/pydantic/pydantic/pull/10789)
* tamird made their first contribution in [10948](https://github.com/pydantic/pydantic/pull/10948)
* felixxm made their first contribution in [11077](https://github.com/pydantic/pydantic/pull/11077)
* alexprabhat99 made their first contribution in [11082](https://github.com/pydantic/pydantic/pull/11082)
* Kharianne made their first contribution in [11111](https://github.com/pydantic/pydantic/pull/11111)

2.10.3

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

What's Changed

Fixes

* Set fields when `defer_build` is set on Pydantic dataclasses by Viicos in [10984](https://github.com/pydantic/pydantic/pull/10984)
* Do not resolve the JSON Schema reference for `dict` core schema keys by Viicos in [10989](https://github.com/pydantic/pydantic/pull/10989)
* Use the globals of the function when evaluating the return type for `PlainSerializer` and `WrapSerializer` functions by Viicos in [11008](https://github.com/pydantic/pydantic/pull/11008)
* Fix host required enforcement for urls to be compatible with v2.9 behavior by sydney-runkle in [11027](https://github.com/pydantic/pydantic/pull/11027)
* Add a `default_factory_takes_validated_data` property to `FieldInfo` by Viicos in [11034](https://github.com/pydantic/pydantic/pull/11034)
* Fix url json schema in `serialization` mode by sydney-runkle in [11035](https://github.com/pydantic/pydantic/pull/11035)

2.10.2

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

What's Changed

Fixes

* Only evaluate FieldInfo annotations if required during schema building by Viicos in [10769](https://github.com/pydantic/pydantic/pull/10769)
* Do not evaluate annotations for private fields by Viicos in [10962](https://github.com/pydantic/pydantic/pull/10962)
* Support serialization as any for `Secret` types and `Url` types by sydney-runkle in [10947](https://github.com/pydantic/pydantic/pull/10947)
* Fix type hint of `Field.default` to be compatible with Python 3.8 and 3.9 by Viicos in [10972](https://github.com/pydantic/pydantic/pull/10972)
* Add hashing support for URL types by sydney-runkle in [10975](https://github.com/pydantic/pydantic/pull/10975)
* Hide `BaseModel.__replace__` definition from type checkers by Viicos in [10979](https://github.com/pydantic/pydantic/pull/10979)

2.10.1

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

What's Changed

Packaging

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

Fixes

* Use the correct frame when instantiating a parametrized `TypeAdapter` by Viicos in [10893](https://github.com/pydantic/pydantic/pull/10893)
* Relax check for validated data in `default_factory` utils by sydney-runkle in [10909](https://github.com/pydantic/pydantic/pull/10909)
* Fix type checking issue with `model_fields` and `model_computed_fields` by sydney-runkle in [10911](https://github.com/pydantic/pydantic/pull/10911)
* Use the parent configuration during schema generation for stdlib `dataclass`es by sydney-runkle in [10928](https://github.com/pydantic/pydantic/pull/10928)
* Use the `globals` of the function when evaluating the return type of serializers and `computed_field`s by Viicos in [10929](https://github.com/pydantic/pydantic/pull/10929)
* Fix URL constraint application by sydney-runkle in [10922](https://github.com/pydantic/pydantic/pull/10922)
* Fix URL equality with different validation methods by sydney-runkle in [10934](https://github.com/pydantic/pydantic/pull/10934)
* Fix JSON schema title when specified as `''` by sydney-runkle in [10936](https://github.com/pydantic/pydantic/pull/10936)
* Fix `python` mode serialization for `complex` inference by sydney-runkle in [pydantic-core1549](https://github.com/pydantic/pydantic-core/pull/1549)

New Contributors

2.10.0

The code released in v2.10.0 is practically identical to that of v2.10.0b2.

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

See the [v2.10 release blog post](https://pydantic.dev/articles/pydantic-v2-10-release) for the highlights!

What's Changed

Packaging

* Bump `pydantic-core` to `v2.27.0` by sydney-runkle in [10825](https://github.com/pydantic/pydantic/pull/10825)
* Replaced pdm with uv by frfahim in [10727](https://github.com/pydantic/pydantic/pull/10727)

New Features

* Support `fractions.Fraction` by sydney-runkle in [10318](https://github.com/pydantic/pydantic/pull/10318)
* Support `Hashable` for json validation by sydney-runkle in [10324](https://github.com/pydantic/pydantic/pull/10324)
* Add a `SocketPath` type for `linux` systems by theunkn0wn1 in [10378](https://github.com/pydantic/pydantic/pull/10378)
* Allow arbitrary refs in JSON schema `examples` by sydney-runkle in [10417](https://github.com/pydantic/pydantic/pull/10417)
* Support `defer_build` for Pydantic dataclasses by Viicos in [10313](https://github.com/pydantic/pydantic/pull/10313)
* Adding v1 / v2 incompatibility warning for nested v1 model by sydney-runkle in [10431](https://github.com/pydantic/pydantic/pull/10431)
* Add support for unpacked `TypedDict` to type hint variadic keyword arguments with `validate_call` by Viicos in [10416](https://github.com/pydantic/pydantic/pull/10416)
* Support compiled patterns in `protected_namespaces` by sydney-runkle in [10522](https://github.com/pydantic/pydantic/pull/10522)
* Add support for `propertyNames` in JSON schema by FlorianSW in [10478](https://github.com/pydantic/pydantic/pull/10478)
* Adding `__replace__` protocol for Python 3.13+ support by sydney-runkle in [10596](https://github.com/pydantic/pydantic/pull/10596)
* Expose public `sort` method for JSON schema generation by sydney-runkle in [10595](https://github.com/pydantic/pydantic/pull/10595)
* Add runtime validation of `validate_call` callable argument by kc0506 in [10627](https://github.com/pydantic/pydantic/pull/10627)
* Add `experimental_allow_partial` support by samuelcolvin in [10748](https://github.com/pydantic/pydantic/pull/10748)
* Support default factories taking validated data as an argument by Viicos in [10678](https://github.com/pydantic/pydantic/pull/10678)
* Allow subclassing `ValidationError` and `PydanticCustomError` by Youssefares in [pydantic/pydantic-core1413](https://github.com/pydantic/pydantic-core/pull/1413)
* Add `trailing-strings` support to `experimental_allow_partial` by sydney-runkle in [10825](https://github.com/pydantic/pydantic/pull/10825)
* Add `rebuild()` method for `TypeAdapter` and simplify `defer_build` patterns by sydney-runkle in [10537](https://github.com/pydantic/pydantic/pull/10537)
* Improve `TypeAdapter` instance repr by sydney-runkle in [10872](https://github.com/pydantic/pydantic/pull/10872)

Changes

* Don't allow customization of `SchemaGenerator` until interface is more stable by sydney-runkle in [10303](https://github.com/pydantic/pydantic/pull/10303)
* Cleanly `defer_build` on `TypeAdapters`, removing experimental flag by sydney-runkle in [10329](https://github.com/pydantic/pydantic/pull/10329)
* Fix `mro` of generic subclass  by kc0506 in [10100](https://github.com/pydantic/pydantic/pull/10100)
* Strip whitespaces on JSON Schema title generation by sydney-runkle in [10404](https://github.com/pydantic/pydantic/pull/10404)
* Use `b64decode` and `b64encode` for `Base64Bytes` type by sydney-runkle in [10486](https://github.com/pydantic/pydantic/pull/10486)
* Relax protected namespace config default by sydney-runkle in [10441](https://github.com/pydantic/pydantic/pull/10441)
* Revalidate parametrized generics if instance's origin is subclass of OG class by sydney-runkle in [10666](https://github.com/pydantic/pydantic/pull/10666)
* Warn if configuration is specified on the `dataclass` decorator and with the `__pydantic_config__` attribute by sydney-runkle in [10406](https://github.com/pydantic/pydantic/pull/10406)
* Recommend against using `Ellipsis` (...) with `Field` by Viicos in [10661](https://github.com/pydantic/pydantic/pull/10661)
* Migrate to subclassing instead of annotated approach for pydantic url types by sydney-runkle in [10662](https://github.com/pydantic/pydantic/pull/10662)
* Change JSON schema generation of `Literal`s and `Enums` by Viicos in [10692](https://github.com/pydantic/pydantic/pull/10692)
* Simplify unions involving `Any` or `Never` when replacing type variables by Viicos in [10338](https://github.com/pydantic/pydantic/pull/10338)
* Do not require padding when decoding `base64` bytes by bschoenmaeckers in [pydantic/pydantic-core1448](https://github.com/pydantic/pydantic-core/pull/1448)
* Support dates all the way to 1BC by changhc in [pydantic/speedate77](https://github.com/pydantic/speedate/pull/77)

Performance

* Schema cleaning: skip unnecessary copies during schema walking by Viicos in [10286](https://github.com/pydantic/pydantic/pull/10286)
* Refactor namespace logic for annotations evaluation by Viicos in [10530](https://github.com/pydantic/pydantic/pull/10530)
* Improve email regexp on edge cases by AlekseyLobanov in [10601](https://github.com/pydantic/pydantic/pull/10601)
* `CoreMetadata` refactor with an emphasis on documentation, schema build time performance, and reducing complexity by sydney-runkle in [10675](https://github.com/pydantic/pydantic/pull/10675)

Fixes

* Remove guarding check on `computed_field` with `field_serializer` by nix010 in [10390](https://github.com/pydantic/pydantic/pull/10390)
* Fix `Predicate` issue in `v2.9.0` by sydney-runkle in [10321](https://github.com/pydantic/pydantic/pull/10321)
* Fixing `annotated-types` bound by sydney-runkle in [10327](https://github.com/pydantic/pydantic/pull/10327)
* Turn `tzdata` install requirement into optional `timezone` dependency by jakob-keller in [10331](https://github.com/pydantic/pydantic/pull/10331)
* Use correct types namespace when building `namedtuple` core schemas by Viicos in [10337](https://github.com/pydantic/pydantic/pull/10337)
* Fix evaluation of stringified annotations during namespace inspection by Viicos in [10347](https://github.com/pydantic/pydantic/pull/10347)
* Fix `IncEx` type alias definition by Viicos in [10339](https://github.com/pydantic/pydantic/pull/10339)
* Do not error when trying to evaluate annotations of private attributes by Viicos in [10358](https://github.com/pydantic/pydantic/pull/10358)
* Fix nested type statement by kc0506 in [10369](https://github.com/pydantic/pydantic/pull/10369)
* Improve typing of `ModelMetaclass.mro` by Viicos in [10372](https://github.com/pydantic/pydantic/pull/10372)
* Fix class access of deprecated `computed_field`s by Viicos in [10391](https://github.com/pydantic/pydantic/pull/10391)
* Make sure `inspect.iscoroutinefunction` works on coroutines decorated with `validate_call` by MovisLi in [10374](https://github.com/pydantic/pydantic/pull/10374)
* Fix `NameError` when using `validate_call` with PEP 695 on a class by kc0506 in [10380](https://github.com/pydantic/pydantic/pull/10380)
* Fix `ZoneInfo` with various invalid types by sydney-runkle in [10408](https://github.com/pydantic/pydantic/pull/10408)
* Fix `PydanticUserError` on empty `model_config` with annotations by cdwilson in [10412](https://github.com/pydantic/pydantic/pull/10412)
* Fix variance issue in `_IncEx` type alias, only allow `True` by Viicos in [10414](https://github.com/pydantic/pydantic/pull/10414)
* Fix serialization schema generation when using `PlainValidator` by Viicos in [10427](https://github.com/pydantic/pydantic/pull/10427)
* Fix schema generation error when serialization schema holds references by Viicos in [10444](https://github.com/pydantic/pydantic/pull/10444)
* Inline references if possible when generating schema for `json_schema_input_type` by Viicos in [10439](https://github.com/pydantic/pydantic/pull/10439)
* Fix recursive arguments in `Representation` by Viicos in [10480](https://github.com/pydantic/pydantic/pull/10480)
* Fix representation for builtin function types by kschwab in [10479](https://github.com/pydantic/pydantic/pull/10479)
* Add python validators for decimal constraints (`max_digits` and `decimal_places`) by sydney-runkle in [10506](https://github.com/pydantic/pydantic/pull/10506)
* Only fetch `__pydantic_core_schema__` from the current class during schema generation by Viicos in [10518](https://github.com/pydantic/pydantic/pull/10518)
* Fix `stacklevel` on deprecation warnings for `BaseModel` by sydney-runkle in [10520](https://github.com/pydantic/pydantic/pull/10520)
* Fix warning `stacklevel` in `BaseModel.__init__` by Viicos in [10526](https://github.com/pydantic/pydantic/pull/10526)
* Improve error handling for in-evaluable refs for discriminator application by sydney-runkle in [10440](https://github.com/pydantic/pydantic/pull/10440)
* Change the signature of `ConfigWrapper.core_config` to take the title directly by Viicos in [10562](https://github.com/pydantic/pydantic/pull/10562)
* Do not use the previous config from the stack for dataclasses without config by Viicos in [10576](https://github.com/pydantic/pydantic/pull/10576)
* Fix serialization for IP types with `mode='python'` by sydney-runkle in [10594](https://github.com/pydantic/pydantic/pull/10594)
* Support constraint application for `Base64Etc` types by sydney-runkle in [10584](https://github.com/pydantic/pydantic/pull/10584)
* Fix `validate_call` ignoring `Field` in `Annotated` by kc0506 in [10610](https://github.com/pydantic/pydantic/pull/10610)
* Raise an error when `Self` is invalid by kc0506 in [10609](https://github.com/pydantic/pydantic/pull/10609)
* Using `core_schema.InvalidSchema` instead of metadata injection + checks by sydney-runkle in [10523](https://github.com/pydantic/pydantic/pull/10523)
* Tweak type alias logic by kc0506 in [10643](https://github.com/pydantic/pydantic/pull/10643)
* Support usage of `type` with `typing.Self` and type aliases by kc0506 in [10621](https://github.com/pydantic/pydantic/pull/10621)
* Use overloads for `Field` and `PrivateAttr` functions by Viicos in [10651](https://github.com/pydantic/pydantic/pull/10651)
* Clean up the `mypy` plugin implementation by Viicos in [10669](https://github.com/pydantic/pydantic/pull/10669)
* Properly check for `typing_extensions` variant of `TypeAliasType` by Daraan in [10713](https://github.com/pydantic/pydantic/pull/10713)
* Allow any mapping in `BaseModel.model_copy()` by Viicos in [10751](https://github.com/pydantic/pydantic/pull/10751)
* Fix `isinstance` behavior for urls by sydney-runkle in [10766](https://github.com/pydantic/pydantic/pull/10766)
* Ensure `cached_property` can be set on Pydantic models by Viicos in [10774](https://github.com/pydantic/pydantic/pull/10774)
* Fix equality checks for primitives in literals by sydney-runkle in [pydantic/pydantic-core1459](https://github.com/pydantic/pydantic-core/pull/1459)
* Properly enforce `host_required` for URLs by Viicos in [pydantic/pydantic-core1488](https://github.com/pydantic/pydantic-core/pull/1488)
* Fix when `coerce_numbers_to_str` enabled and string has invalid Unicode character by andrey-berenda in [pydantic/pydantic-core1515](https://github.com/pydantic/pydantic-core/pull/1515)
* Fix serializing `complex` values in `Enum`s by changhc in [pydantic/pydantic-core1524](https://github.com/pydantic/pydantic-core/pull/1524)
* Refactor `_typing_extra` module by Viicos in [10725](https://github.com/pydantic/pydantic/pull/10725)
* Support intuitive equality for urls by sydney-runkle in [10798](https://github.com/pydantic/pydantic/pull/10798)
* Add `bytearray` to `TypeAdapter.validate_json` signature by samuelcolvin in [10802](https://github.com/pydantic/pydantic/pull/10802)
* Ensure class access of method descriptors is performed when used as a default with `Field` by Viicos in [10816](https://github.com/pydantic/pydantic/pull/10816)
* Fix circular import with `validate_call` by sydney-runkle in [10807](https://github.com/pydantic/pydantic/pull/10807)
* Fix error when using type aliases referencing other type aliases by Viicos in [10809](https://github.com/pydantic/pydantic/pull/10809)
* Fix `IncEx` type alias to be compatible with mypy by Viicos in [10813](https://github.com/pydantic/pydantic/pull/10813)
* Make `__signature__` a lazy property, do not deepcopy defaults by Viicos in [10818](https://github.com/pydantic/pydantic/pull/10818)
* Make `__signature__` lazy for dataclasses, too by sydney-runkle in [10832](https://github.com/pydantic/pydantic/pull/10832)
* Subclass all single host url classes from `AnyUrl` to preserve behavior from v2.9 by sydney-runkle in [10856](https://github.com/pydantic/pydantic/pull/10856)

New Contributors

* jakob-keller made their first contribution in [10331](https://github.com/pydantic/pydantic/pull/10331)
* MovisLi made their first contribution in [10374](https://github.com/pydantic/pydantic/pull/10374)
* joaopalmeiro made their first contribution in [10405](https://github.com/pydantic/pydantic/pull/10405)
* theunkn0wn1 made their first contribution in [10378](https://github.com/pydantic/pydantic/pull/10378)
* cdwilson made their first contribution in [10412](https://github.com/pydantic/pydantic/pull/10412)
* dlax made their first contribution in [10421](https://github.com/pydantic/pydantic/pull/10421)
* kschwab made their first contribution in [10479](https://github.com/pydantic/pydantic/pull/10479)
* santibreo made their first contribution in [10453](https://github.com/pydantic/pydantic/pull/10453)
* FlorianSW made their first contribution in [10478](https://github.com/pydantic/pydantic/pull/10478)
* tkasuz made their first contribution in [10555](https://github.com/pydantic/pydantic/pull/10555)
* AlekseyLobanov made their first contribution in [10601](https://github.com/pydantic/pydantic/pull/10601)
* NiclasvanEyk made their first contribution in [10667](https://github.com/pydantic/pydantic/pull/10667)
* mschoettle made their first contribution in [10677](https://github.com/pydantic/pydantic/pull/10677)
* Daraan made their first contribution in [10713](https://github.com/pydantic/pydantic/pull/10713)
* k4nar made their first contribution in [10736](https://github.com/pydantic/pydantic/pull/10736)
* UriyaHarpeness made their first contribution in [10740](https://github.com/pydantic/pydantic/pull/10740)
* frfahim made their first contribution in [10727](https://github.com/pydantic/pydantic/pull/10727)

2.10.0b2

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

2.10.0b1

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

<!-- package description limit -->

2.9.2

[GitHub release](https://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 in [10358](https://github.com/pydantic/pydantic/pull/10358)
* Adding notes on designing sound `Callable` discriminators by sydney-runkle in [10400](https://github.com/pydantic/pydantic/pull/10400)
* Fix serialization schema generation when using `PlainValidator` by Viicos in [10427](https://github.com/pydantic/pydantic/pull/10427)
* Fix `Union` serialization warnings by sydney-runkle in [pydantic/pydantic-core1449](https://github.com/pydantic/pydantic-core/pull/1449)
* Fix variance issue in `_IncEx` type alias, only allow `True` by Viicos in [10414](https://github.com/pydantic/pydantic/pull/10414)
* Fix `ZoneInfo` validation with various invalid types by sydney-runkle in [10408](https://github.com/pydantic/pydantic/pull/10408)

2.9.1

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

What's Changed

Fixes

* Fix Predicate issue in v2.9.0 by sydney-runkle in [10321](https://github.com/pydantic/pydantic/pull/10321)
* Fixing `annotated-types` bound to `>=0.6.0` by sydney-runkle in [10327](https://github.com/pydantic/pydantic/pull/10327)
* Turn `tzdata` install requirement into optional `timezone` dependency by jakob-keller in [10331](https://github.com/pydantic/pydantic/pull/10331)
* Fix `IncExc` type alias definition by Viicos in [10339](https://github.com/pydantic/pydantic/pull/10339)
* Use correct types namespace when building namedtuple core schemas by Viicos in [10337](https://github.com/pydantic/pydantic/pull/10337)
* Fix evaluation of stringified annotations during namespace inspection by Viicos in [10347](https://github.com/pydantic/pydantic/pull/10347)
* Fix tagged union serialization with alias generators by sydney-runkle in [pydantic/pydantic-core1442](https://github.com/pydantic/pydantic-core/pull/1442)

2.9.0

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

The code released in v2.9.0 is practically identical to that of v2.9.0b2.

What's Changed

Packaging

* Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by sydney-runkle in [9801](https://github.com/pydantic/pydantic/pull/9801)
* Bump `pydantic-extra-types` to `v2.9.0` by sydney-runkle in [9832](https://github.com/pydantic/pydantic/pull/9832)
* Support compatibility with `pdm v2.18.1` by Viicos in [10138](https://github.com/pydantic/pydantic/pull/10138)
* Bump `v1` version stub to `v1.10.18` by sydney-runkle in [10214](

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant