mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
2f439eff0d2f9272aad00a13669ac54c1d00a216
* fix: ignore `__doc__` as valid private attribute (#2091) closes #2090 * Fixes a regression where Enum fields would not propagate keyword arguments to the schema (#2109) fix #2108 * Fix schema extra not being included when field type is Enum * Code format * More code format * Add changes file Co-authored-by: Ben Martineau <b.martineau@iwoca.co.uk> * fix: update all modified field values in `root_validator` when `validate_assignment` is on (#2119) * fix: update all modified field values in `root_validator` when `validate_assignment` is on closes #2116 * chore: update root_validator name Co-authored-by: Arthur Pastel <arthur.pastel@gmail.com> Co-authored-by: Arthur Pastel <arthur.pastel@gmail.com> * fix: support `underscore_attrs_are_private` with generic models (#2139) closes #2138 * fix: set right default value for required (optional) fields (#2143) closes #2142 * Fix #2111: support pickle for built-in dataclasses (#2114) * 2111: support pickle for built-in dataclasses * 2111: add changes * 2111: simplify test * return original name + handle similar names * add additional check * fix a misspell * remove useless f-string * cleanup test Co-authored-by: Samuel Colvin <s@muelcolvin.com> * uprev and add history * tempoarily pin pip Co-authored-by: Eric Jolibois <em.jolibois@gmail.com> Co-authored-by: Ben Martineau <bm424@cam.ac.uk> Co-authored-by: Ben Martineau <b.martineau@iwoca.co.uk> Co-authored-by: Arthur Pastel <arthur.pastel@gmail.com> Co-authored-by: aimestereo <aimestereo@gmail.com>
build(deps): bump to pytest 6.2.1, pytest-mock 3.4.0, mkdocs-material 6.1.7 and codecov-action v1.0.15 (#2201)
pydantic
Data validation and settings management using Python type hinting.
Fast and extensible, pydantic plays nicely with your linters/IDE/brain. Define how data should be in pure, canonical Python 3.6+; validate it with pydantic.
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 = '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.
Languages
Python
99.7%
Makefile
0.3%