8000 Releases Β· pydantic/pydantic Β· GitHub
[go: up one dir, main page]

Skip to content

Releases: pydantic/pydantic

v2.11.5 2025-05-22

23 May 08:58
Compare
Choose a tag to compare

What's Changed

Fixes

  • Check if FieldInfo is complete after applying type variable map by @Viicos in #11855
  • Do not delete mock validator/serializer in model_rebuild() by @Viicos in #11890
  • Do not duplicate metadata on model rebuild by @Viicos in #11902

Full Changelog: v2.11.4...v2.11.5

v2.11.4 2025-04-29

29 Apr 20:25
Compare
Choose a tag to compare

What's Changed

Packaging

Changes

  • Allow config and bases to be specified together in create_model() by @Viicos in #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
  • Remove coercion of decimal constraints by @Viicos in #11772
  • Fix crash when expanding root type in the mypy plugin by @Viicos in #11735
  • Fix issue with recursive generic models by @Viicos in #11775
  • Traverse function-before schemas during schema gathering by @Viicos in #11801

v2.11.3 2025-04-08

08 Apr 13:26
876bf76
Compare
Choose a tag to compare

What's Changed

Packaging

Fixes

  • Preserve field description when rebuilding model fields by @Viicos in #11698

Full Changelog: v2.11.2...v2.11.3

v2.11.2 2025-04-03

03 Apr 13:14
bd1f8cf
Compare
Choose a tag to compare

What's Changed

Fixes

  • Bump pydantic-core to v2.33.1 by @Viicos in #11678
  • Make sure __pydantic_private__ exists before setting private attributes by @Viicos in #11666
  • Do not override FieldInfo._complete when using field from parent class by @Viicos in #11668
  • Provide the available definitions when applying discriminated unions by @Viicos in #11670
  • Do not expand root type in the mypy plugin for variables by @Viicos in #11676
  • Mention the attribute name in model fields deprecation message by @Viicos in #11674
  • Properly validate parameterized mappings by @Viicos in #11658
  • Prepare release v2.11.2 by @Viicos in #11684

Full Changelog: v2.11.1...v2.11.2

v2.11.1 2025-03-28

28 Mar 21:04
6c38dc9
Compare
Choose a tag to compare

What's Changed

Fixes

  • Do not override 'definitions-ref' schemas containing serialization schemas or metadata by @Viicos in #11644

Full Changelog: v2.11.0...v2.11.1

v2.11.0 2025-03-27

27 Mar 18:01
58e61fa
Compare
Choose a tag to compare

What's Changed

Packaging

New Features

  • Support unsubstituted type variables with both a default and a bound or constraints by @FyZzyss in #10789
  • Add a default_factory_takes_validated_data property to FieldInfo by @Viicos in #11034
  • Raise a better error when a generic alias is used inside type[] by @Viicos in #11088
  • Properly support PEP 695 generics syntax by @Viicos in #11189
  • Properly support type variable defaults by @Viicos in #11332
  • Add support for validating v6, v7, v8 UUIDs by @astei in #11436
  • Improve alias configuration APIs by @sydney-runkle in #11468
  • Add experimental support for free threading by @Viicos in #11516
  • Add encoded_string() method to the URL types by @YassinNouh21 in #11580
  • Add support for defer_build with @validate_call decorator by @Viicos in #11584
  • Allow @with_config decorator to be used with keyword arguments by @Viicos in #11608
  • Simplify customization of default value inclusion in JSON Schema generation by @Viicos in #11634
  • Add generate_arguments_schema() function by @Viicos in #11572

Changes

  • Rework create_model field definitions format by @Viicos in #11032
  • Raise a deprecation warning when a field is annotated as final with a default value by @Viicos in #11168
  • Deprecate accessing model_fields and model_computed_fields on instances by @Viicos in #11169
  • Move core schema generation logic for path types inside the GenerateSchema class by @sydney-runkle in #10846
  • Move Mapping schema gen to GenerateSchema to complete removal of prepare_annotations_for_known_type workaround by @sydney-runkle in #11247
  • Remove Python 3.8 Support by @sydney-runkle in #11258
  • Optimize calls to get_type_ref by @Viicos in #10863
  • Disable pydantic-core core schema validation by @sydney-runkle in #11271

Performance

  • Only evaluate FieldInfo annotations if required during schema building by @Viicos in #10769
  • Improve __setattr__ performance of Pydantic models by caching setter functions by @MarkusSintonen in #10868
  • Improve annotation application performance by @Viicos in #11186
  • Improve performance of _typing_extra module by @Viicos in #11255
  • Refactor and optimize schema cleaning logic by @Viicos in #11244
  • Create a single dictionary when creating a CoreConfig instance by @sydney-runkle in #11384
  • Reuse cached core schemas for parametrized generic Pydantic models by @MarkusSintonen in #11434

Fixes

  • Add validation tests for _internal/_validators.py by @tkasuz in #10763
  • Subclass all single host url classes from AnyUrl to preserve behavior from v2.9 by @sydney-runkle in #10856
  • Improve TypeAdapter instance repr by @sydney-runkle in #10872
  • Use the correct frame when instantiating a parametrized TypeAdapter by @Viicos in #10893
  • Relax check for validated data in default factory utils by @sydney-runkle in #10909
  • Fix type checking issue with model_fields and model_computed_fields by @sydney-runkle in #10911
  • Use the parent configuration during schema generation for stdlib dataclasses by @sydney-runkle in #10928
  • Use the globals of the function when evaluating the return type of serializers and computed_fields by @Viicos in #10929
  • Fix url constraint application by @sydney-runkle in #10922
  • Fix URL equality with different validation methods by @sydney-runkle in #10934
  • Fix JSON schema title when specified as '' by @sydney-runkle in #10936
  • Do not evaluate annotations for private fields by @Viicos in #10962
  • Support serialization as any for Secret types and Url types by @sydney-runkle in #10947
  • Fix type hint of Field.default to be compatible with Python 3.8 and 3.9 by @Viicos in #10972
  • hashing support for urls by @sydney-runkle in #10975
  • Hide BaseModel.__replace__ definition from type checkers by @Viicos in #10979
  • Set fields when defer_build is set on Pydantic dataclasses by @Viicos in #10984
  • Do not resolve the JSON Schema reference for dict core schema keys by @Viicos in #10989
  • Use the globals of the function when evaluating the return type for PlainSerializer and WrapSerializer functions by @Viicos in #11008
  • Fix host required enforcement for urls to be compatible with v2.9 behavior by @sydney-runkle in #11027
  • Fix url json schema in serialization mode by @sydney-runkle in #11035
  • Fix for comparison of AnyUrl objects by @alexprabhat99 in #11082
  • Properly fetch PEP 695 type params for functions, do not fetch annotations from signature by @Viicos in #11093
  • Infer final fields with a default value as class variables in the mypy plugin by @Viicos in #11121
  • Recursively unpack Literal values if using PEP 695 type aliases by @Viicos in #11114
  • Override __subclasscheck__ on ModelMetaclass to avoid memory leak and performance issues by @Viicos in #11116
  • Include JSON Schema input core schema in function schemas by @Viicos in #11085
  • Add len to _BaseUrl to avoid TypeError by @Kharianne in #11111
  • Make sure the type reference is removed from the seen references by @Viicos in #11143
  • Add FastAPI and SQLModel to third-party tests by @sydney-runkle in #11044
  • Improve discriminated union error message for invalid union variants by @Viicos in #11161
  • Unpack PEP 695 type aliases if using the Annotated form by @Viicos in #11109
  • Remove custom MRO implementation of Pydantic models by @Viicos in #11184
  • Add pandera third-party tests by @Viicos in #11193
  • Add ODMantic third-party tests by @sydney-runkle in #11197
  • Copy WithJsonSchema schema to avoid sharing mutated data by @thejcannon in #11014
  • Do not cache parametrized models when in the process of parametrizing another model by @Viicos in #10704
  • Add discriminated union related metadata entries to the CoreMetadata definition by @Viicos in #11216
  • Consolidate schema definitions logic in the _Definitions class by @Viicos in #11208
  • Fix url serialization for unions by @sydney-runkle in #11227
  • Support initializing root model fields with values of the root type in the mypy plugin by @Viicos in #11212
  • Move deque schema gen to GenerateSchema class by @sydney-runkle in https://github.com/pydantic/pydanti...
Read more

v2.11.0b2 2025-03-17

17 Mar 16:17
d76d942
Compare
Choose a tag to compare
v2.11.0b2 2025-03-17 Pre-release
Pre-release

What's Changed

Packaging

New Features

  • Add experimental support for free threading by @Viicos in #11516

Fixes

  • Fix NotRequired qualifier not taken into account in stringified annotation by @Viicos in #11559

New Contributors

Full Changelog: v2.11.0b1...v2.11.0b2

v2.11.0b1 2025-03-06

06 Mar 16:23
bff7477
Compare
Choose a tag to compare
v2.11.0b1 2025-03-06 Pre-release
Pre-release

GitHub release

What's Changed

Note

Addendum: 2.11 introduced a small behavior change with Final attributes with an underscore:

class Model(BaseModel):
    _var: Final[int] = 1

In 2.10, _var would be considered as a class variable, but as a private attribute in 2.11.
As documented in the blog post, you can make use of ClassVar instead of Final to keep it as a class variable.

Packaging

New Features

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

Changes

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

Performance

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

Fixes

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

New Contributors

Read more

v2.11.0a2 2025-02-10

10 Feb 11:32
a1f12c7
Compare
Choose a tag to compare
v2.11.0a2 2025-02-10 Pre-release
Pre-release

What's Changed

Note

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

Performance

Fixes

  • Use the correct JSON Schema mode when handling function schemas by @Viicos in #11367
  • Fix F438 JSON Schema reference logic with examples keys by @Viicos in #11366
  • Improve exception message when encountering recursion errors during type evaluation by @Viicos in #11356
  • Always include additionalProperties: True for arbitrary dictionary schemas by @austinyu in #11392
  • Expose fallback parameter in serialization methods by @Viicos in #11398
  • Fix path serialization behavior by @sydney-runkle in #11416

New Contributors

Full Changelog: v2.11.0a1...v2.11.0a2

v2.11.0a1 2025-01-30

30 Jan 19:22
5e36892
Compare
Choose a tag to compare
v2.11.0a1 2025-01-30 Pre-release
Pre-release

v2.11.0a1 (2025-01-30)

What's Changed

Note

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

New Features

  • Support unsubstituted type variables with both a default and a bound or constraints by @FyZzyss in #10789
  • Add a default_factory_takes_validated_data property to FieldInfo by @Viicos in #11034
  • Raise a better error when a generic alias is used inside type[] by @Viicos in #11088
  • Properly support PEP 695 generics syntax by @Viicos in #11189
  • Properly support type variable defaults by @Viicos in #11332

Changes

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

Performance

Fixes

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

New Contributors

0