Pydantic
![Pydantic v2](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json)
Data validation using Python type hints.
Fast and extensible, Pydantic plays nicely with your linters/IDE/brain.
Define how data should be in pure, canonical Python 3.8+; validate it with Pydantic.
Pydantic Logfire :fire:
We've recently launched Pydantic Logfire to help you monitor your applications.
Learn more
Pydantic V1.10 vs. V2
Pydantic V2 is a ground-up rewrite that offers many new features, performance improvements, and some breaking changes compared to Pydantic V1.
If you're using Pydantic V1 you may want to look at the
pydantic V1.10 Documentation or,
1.10.X-fixes
git branch. Pydantic V2 also ships with the latest version of Pydantic V1 built in so that you can incrementally upgrade your code base and projects: from pydantic import v1 as pydantic_v1
.
Help
See documentation for more details.
Installation
Install using pip install -U pydantic
or conda install pydantic -c conda-forge
.
For more installation options to make Pydantic even faster,
see the Install section in the documentation.
A Simple Example
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str = 'John Doe'
signup_ts: Optional[datetime] = None
friends: List[int] = []
external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']}
user = User(**external_data)
print(user)
print(user.id)
Contributing
For guidance on setting up a development environment and how to make a
contribution to Pydantic, see
Contributing to Pydantic.
Reporting a Security Vulnerability
See our security policy.
Changelog
v2.10.6 (2025-01-23)
GitHub release
What's Changed
Fixes
v2.10.5 (2025-01-08)
GitHub release
What's Changed
Fixes
v2.10.4 (2024-12-18)
GitHub release
What's Changed
Packaging
Fixes
- 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
- 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
New Contributors
v2.10.3 (2024-12-03)
GitHub release
What's Changed
Fixes
- 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
- Add a
default_factory_takes_validated_data
property to FieldInfo
by @Viicos in #11034 - Fix url json schema in
serialization
mode by @sydney-runkle in #11035
v2.10.2 (2024-11-25)
GitHub release
What's Changed
Fixes
- Only evaluate FieldInfo annotations if required during schema building by @Viicos in #10769
- 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 - Add hashing support for URL types by @sydney-runkle in #10975
- Hide
BaseModel.__replace__
definition from type checkers by @Viicos in 10979
v2.10.1 (2024-11-21)
GitHub release
What's Changed
Packaging
Fixes
v2.10.0 (2024-11-20)
The code released in v2.10.0 is practically identical to that of v2.10.0b2.
GitHub release
See the v2.10 release blog post for the highlights!
What's Changed
Packaging
New Features
Changes
Performance
- Schema cleaning: skip unnecessary copies during schema walking by @Viicos in #10286
- Refactor namespace logic for annotations evaluation by @Viicos in #10530
- Improve email regexp on edge cases by @AlekseyLobanov in #10601
CoreMetadata
refactor with an emphasis on documentation, schema build time performance, and reducing complexity by @sydney-runkle in #10675
Fixes
New Contributors
v2.10.0b2 (2024-11-13)
Pre-release, see the GitHub release for details.
v2.10.0b1 (2024-11-06)
Pre-release, see the GitHub release for details.
... see here for earlier changes.