single |
# Pydantic
[CI]
[Coverage]
[pypi]
[CondaForge]
[downloads]
[versions]
[license]
[Pydantic v2]
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
```python
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)
#> 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.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]
|