single |
# Pydantic Validation
[CI]
[Coverage]
[pypi]
[CondaForge]
[downloads]
[versions]
[license]
[Pydantic v2]
[![llms.txt]](https://docs.pydantic.dev/latest/llms.txt)
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.9+; 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
```python
from datetime import datetime
from typing import 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)
#> User id=123 name='John Doe' signup_ts=datetime.datetime(2017, 6, 1, 12,
22) friends=[1, 2, 3]
print(user.id)
#> 123
```
## 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.12.0 (2025-10-07)
[GitHub release]
### 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])
are also included in this release. Make sure to look into them before
upgrading.
|