Pydantic

Latest version: v2.10.6

Safety actively analyzes 712615 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 27

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)

Page 1 of 27

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.