Pydantic

Frameworks & LibrariesMIT

Data validation for Python, driven by type hints.

Latest v2.13.5 · by PydanticWritten in PythonWebsitepydantic/pydanticRSS

Release activity

Release activity — 11 releases across 10 days since Dec 18, 2025. Each cell is one day; darker means more releases that day. Nothing is recorded before Dec 18, 2025. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 20261 release on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

11 releases since Dec 18, 2025, busiest day 2

Changelog

What changed from 1 to 2

v2.13.5

Latest
Fixed 4
  • Allow reuse of validators when plugins are set
  • Fix missing GC traversal on some pydantic-core struct fields
  • Fix missing GC traversal in pydantic-core for GeneralFieldsSerializer
  • Count validated model fields once in smart unions

From Pydantic

v2.13.5 (2026-08-28)
What's Changed
Fixes
  • Allow reuse of validators when plugins are set by @Viicos in #13535
  • Fix missing GC traversal on some pydantic-core struct fields by @Viicos in #13624
  • Fix missing GC traversal in pydantic-core for GeneralFieldsSerializer by @Viicos in #13629
  • Count validated model fields once in smart unions by @tamird in #13731
View originalPermalink
How v2.13.5 went
v2.14.0a1Pre-release

v2.14.0a1 2026-05-22

Added 1
  • Add PyEmscripten platform tag support with pydantic-core 3.14 wheel published with the pyemscripten_2026_0 platform tag
Changed 2
  • Accept None in MultiHostUrl.build()'s hosts parameter
  • Only deepcopy non-updated fields in model_copy()
Fixed 2
  • Add Mypy plugin workaround for dynamic models defined in functions
  • Fallback to create_model() overload definition when __base__ is set to a type variable in the Mypy plugin
Removed 2
  • Drop support for Python 3.9
  • Remove support for eval_type_backport()

From Pydantic

v2.14.0a1 (2026-05-22)
What's Changed
Packaging
  • Add PyEmscripten platform tag support by @Viicos, @greateggsgreg and @sinaatalay in #13199: pydantic-core now has a 3.14 wheel published with the pyemscripten_2026_0 platform tag. Note that this wheel can only be used with Pyodide 314.0 and greater, still in development. It is recommended to wait for the final 314.0 release (and for Pydantic to publish a new wheel in a future 2.14 release).
Changes
  • Accept None in MultiHostUrl.build()'s hosts parameter by @Viicos in #13068
  • Drop support for Python 3.9 by @Viicos in #13070
  • Remove support for eval_type_backport() by @Viicos in #13133
  • Only deepcopy non-updated fields in model_copy() by @connorcarpenter15 in #13087
Fixes
  • Add Mypy plugin workaround for dynamic models defined in functions by @ilevkivskyi in #13177
  • Fallback to create_model() overload definition when __base__ is set to a type variable in the Mypy plugin by @cyphercodes in #13146
New Contributors
  • @ilevkivskyi made their first contribution in #13177
  • @cyphercodes made their first contribution in #13146
  • @connorcarpenter15 made their first contribution in #13087

Full Changelog: https://github.com/pydantic/pydantic/compare/v2.13.4...v2.14.0a1

View originalPermalink
How v2.14.0a1 went
v2.13.4

v2.13.4 2026-05-06

Fixed 1
  • Preserve RootModel core metadata

From Pydantic

v2.13.4 (2026-05-06)
What's Changed
Packaging
  • Bump libc from 0.2.155 to 0.2.185 by @Viicos in #13109
  • Adapt pydantic-core linker flags on macOS by @washingtoneg and @Viicos in #13147
Fixes
  • Preserve RootModel core metadata by @Viicos in #13129

Full Changelog: https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4

View originalPermalink
How v2.13.4 went
v2.13.0

v2.13.0 2026-04-13

Added 1
  • Allow default factories of private attributes to take validated model data
Changed 2
  • Warn when serializing fixed length tuples with too few items
  • Update jiter to v0.14.0 to fix a segmentation fault on musl Linux
Fixed 2
  • Change type of Any when synthesizing _build_sources for BaseSettings.__init__() signature in the mypy plugin
  • Fix model equality when using runtime extra configuration

From Pydantic

v2.13.0 (2026-04-13)

The highlights of the v2.13 release are available in the blog post. Several minor changes (considered non-breaking changes according to our versioning policy) are also included in this release. Make sure to look into them before upgrading.

This release contains the updated pydantic.v1 namespace, matching version 1.10.26 which includes support for Python 3.14.

What's Changed

See the beta releases for all changes sinces 2.12.

Packaging
  • Add zizmor for GitHub Actions workflow linting by @Viicos in #13039
  • Update jiter to v0.14.0 to fix a segmentation fault on musl Linux by @Viicos in #13064
New Features
  • Allow default factories of private attributes to take validated model data by @Viicos in #13013
Changes
  • Warn when serializing fixed length tuples with too few items by @arvindsaripalli in #13016
Fixes
  • Change type of Any when synthesizing _build_sources for BaseSettings.__init__() signature in the mypy plugin by @Viicos in #13049
  • Fix model equality when using runtime extra configuration by @Viicos in #13062
New Contributors
  • @arvindsaripalli made their first contribution in #13016

Full Changelog: https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0

View originalPermalink
How v2.13.0 went
v2.13.0b3Pre-release

v2.13.0b3 2026-03-31

Added 4
  • Add ascii_only option to StringConstraints
  • Support exclude_if in computed fields
  • Push down constraints in unions involving MISSING sentinel
  • Add riscv64 build target for manylinux
Changed 3
  • Track extra fields set after init in model_fields_set
  • Do not include annotations that are not part of named tuple fields
  • No longer fall back to trying all union members when the variant selected by discriminator fails to serialize
Fixed 9
  • Support discriminator metadata outside union type alias
  • Respect extras_schema when only extra_fields_behavior is set on the config in JSON Schema generation for typed dictionaries
  • Ensure __pydantic_private__ is set in model_construct() with user-defined model_post_init()
  • Handle all schema generation errors in InstanceOf
  • Allow dynamic models created with create_model() to be used as annotations in the Mypy plugin
  • Check for PlaceholderNode in Mypy plugin

From Pydantic

What's Changed
Packaging
  • Add riscv64 build target for manylinux by @boosterl in #12723
New Features
  • Add ascii_only option to StringConstraints by @ai-man-codes in #12907
  • Support exclude_if in computed fields by @andresliszt in #12748
  • Push down constraints in unions involving MISSING sentinel by @Viicos in #12908
Changes
  • Track extra fields set after init in model_fields_set by @navalprakhar in #12817
  • Do not include annotations that are not part of named tuple fields by @galuszkak in #12951
  • No longer fall back to trying all union members when the variant selected by discriminator fails to serialize by @navalprakhar in #12825
Fixes
  • Support discriminator metadata outside union type alias by @Viicos in #12785
  • Respect extras_schema when only extra_fields_behavior is set on the config in JSON Schema generation for typed dictionaries by @Viicos in #12810
  • Ensure __pydantic_private__ is set in model_construct() with user-defined model_post_init() by @nightcityblade in #12816
  • Handle all schema generation errors in InstanceOf by @Viicos in #12705
  • Allow dynamic models created with create_model() to be used as annotations in the Mypy plugin by @Br1an67 in #12879
  • Check for PlaceholderNode in Mypy plugin by @Viicos in #12929
  • Try other branches in smart union in case of omit errors by @mikeedjones in #12758
  • Patch unset attributes with MISSING during model serialization with exclude_unset by @davidhewitt in #12905
  • Ensure custom __init__() is called when using model_validate_strings() by @siewcapital in #12897
New Contributors
  • @kelsonbrito50 made their first contribution in #12860
  • @boosterl made their first contribution in #12723
  • @adityagiri3600 made their first contribution in #12868
  • @navalprakhar made their first contribution in #12817
  • @Br1an67 made their first contribution in #12879
  • @rmorshea made their first contribution in #12910
  • @N3XT3R1337 made their first contribution in #12922
  • @ai-man-codes made their first contribution in #12907
  • @Yume05-dev made their first contribution in #12953
  • @galuszkak made their first contribution in #12951
  • @siewcapital made their first contribution in #12897

Full Changelog: https://github.com/pydantic/pydantic/compare/v2.13.0b2...v2.13.0b3

View originalPermalink
How v2.13.0b3 went
v2.13.0b2Pre-release

v2.13.0b2 2026-02-24

Changed 1
  • Allow any type form to be used in validate_as()
Fixed 2
  • Fix backported V1 namespace
  • Fix walrus operator precedence in UrlConstraints.__get_pydantic_core_schema__()

From Pydantic

What's Changed
Fixes
  • Fix backported V1 namespace by @Viicos in #12855
  • Allow any type form to be used in validate_as() by @bledden in #12846
  • Fix walrus operator precedence in UrlConstraints.__get_pydantic_core_schema__() by @bysiber in #12826
New Contributors
  • @bledden made their first contribution in #12846
  • @bysiber made their first contribution in #12827
View originalPermalink
How v2.13.0b2 went
v2.13.0b1Pre-release

v2.13.0b1 2026-02-23

Added 2
  • Add a new `polymorphic_serialization` option to solve issues with `serialize_as_any` introduced in 2.12
  • Support Root models with `Literal` root types as discriminator field types
Changed 10
  • Merge the `pydantic-core` repository into the main `pydantic` repository
  • Bump Rust minimum version to 1.88 and use edition 2024
  • Bump PyO3 to 0.28 and jiter to 0.13
  • Use the `complex()` constructor unconditionally when validating `complex` Python data
  • Add support for three-tuple input for `Decimal`
  • Align `@field_serializer` logic with `@field_validator`
Fixed 7
  • Fix `FieldInfo` rebuilding when parameterizing generic models with an `Annotated` type
  • Fix nested model schema deduplication in JSON schema generation
  • Fix `InitVar` being ignored when using with the `pydantic.Field()` function
  • Fix support for enums with `NamedTuple` as values
  • Fix serialization of typed dict unions when `exclude_none` is set
  • Fix type annotation of `field_definitions` in `create_model()`
  • Fix incorrect dataclass constructor signature when overriding class `kw_only` with `Field()`

From Pydantic

This is the first beta release of the 2.13 version, mainly providing bug fixes and performance improvements for validation and serialization.

Notable changes include:

  • Add a new polymorphic_serialization option, solving issues with serialize_as_any introduced in 2.12.
  • Latest V1.10.26 release under the pydantic.v1 namespace. This version includes support for Python 3.14.
  • The pydantic-core repository was merged inside the main pydantic one.
What's Changed
Packaging
  • Bump Rust url dependency from 2.5.4 to 2.5.7 in pydantic-core by @dependabot[bot] in #12508
  • Bump Rust minimum version to 1.88, use edition 2024 by @davidhewitt and @Viicos in #12551 and #12752
  • Bump PyO3 to 0.28, jiter to 0.13 by @davidhewitt in #12767
New Features
  • Add polymorphic_serialization option by @davidhewitt in #12518
  • Support Root models with Literal root types as discriminator field types by @YassinNouh21 in #12680
Changes
  • Migrate pydantic-core CI by @Viicos in #12752
  • Import pydantic-core into pydantic by @davidhewitt in #12481
  • Backport V1 changes up to v1.10.26 by @Viicos in #12663
  • Use the complex() constructor unconditionally when validating complex Python data by @tanmaymunjal in #12498
  • Add support for three-tuple input for Decimal by @tanmaymunjal in #12500
  • Align @field_serializer logic with @field_validator by @Viicos in #12577
  • Make PydanticUserError a RuntimeError instead of a TypeError by @poliakovva in #12579
  • Remove redundant serialization attempts in nested unions by @davidhewitt in #12604
  • Copy root value when making root model shallow copies by @YassinNouh21 in #12679
  • Ensure deterministic JSON schema defaults by sorting sets by @drshvik in #12760
Performance
  • Refactor DecoratorInfos.build() implementation by @Viicos in #12536
  • Cache compiled regex in pydantic-core by @Viicos in #12549
  • Optimize creation of Literal validators by @davidhewitt in #12569
  • Optimize implementation of LookupKey by @davidhewitt in #12571
  • Use python strings for field names by @davidhewitt in #12631
  • Optimize datetime formatting code by @davidhewitt in #12626
  • Validate JSON model data by iteration by @davidhewitt in #12550
  • Optimize annotations evaluation of Pydantic models by @Viicos in #12681
  • Optimize FieldInfo._copy() by @Viicos in #12727
Fixes
  • Fix FieldInfo rebuilding when parameterizing generic models with an Annotated type by @Viicos in #12463
  • Fix nested model schema deduplication in JSON schema generation by @marwan-alloreview in #12494
  • Fix InitVar being ignored when using with the pydantic.Field() function by @Viicos in #12495
  • Fix support for enums with NamedTuple as values by @Viicos in #12506
  • Do not delete mock validator/serializer in rebuild_dataclass() by @Viicos in #12513
  • Require test suite to pass with free threading, switch back to global generic types cache by @davidhewitt in #12537
  • Refactor __pydantic_extra__ annotation handling by @Viicos in #12563
  • Do not add claim of UUID "safety" provision by @davidhewitt in #12567
  • Use Python hash to perform lookup in tagged union serializer by @davidhewitt in #12594
  • Do not emit serialization warning MISSING sentinel is present in a nested model by @Viicos in #12635
  • Do not eagerly evaluate annotations in signature logic by @Viicos in #12660
  • Fix serialization of typed dict unions when exclude_none is set by @davidhewitt in #12677
  • Do not reuse prebuilt serializers/validators on rebuilds by @lmmx in #12689
  • Fix type annotation of field_definitions in create_model() by @lehmann-hqs in #12734
  • Fix incorrect dataclass constructor signature when overriding class kw_only with Field() by @jfadia in #12741
  • Use typing.Union when replacing types under Python 3.14 by @Viicos in #12733
  • Improve ImportString error when internal imports fail by @tsembp in #12740
  • Fix serializing complex numbers with negative zero imaginary part by @lhnwrk in #12770
  • Preserve custom docstrings on stdlib dataclasses in JSON schema by @nightcityblade in #12815
New Contributors
  • @marwan-alloreview made their first contribution in #12494
  • @tanmaymunjal made their first contribution in #12498
  • @poliakovva made their first contribution in #12579
  • @lehmann-hqs made their first contribution in #12734
  • @jfadia made their first contribution in #12741
  • @tsembp made their first contribution in #12740
  • @drshvik made their first contribution in #12760
  • @lhnwrk made their first contribution in #12770
  • @nightcityblade made their first contribution in #12815
View originalPermalink
How v2.13.0b1 went
View all

Discussion

If you publish Pydantic, you can claim this product by proving you administer its repository.