mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
47362e33b630ed60e27ec95d798ca013f602b4e4
* generate history from changes, uprev * Pydantic V2 blog (#4218) * first draft of pydantic V2 blog * more blog * blog rendering and formatting * more section * completing conversion table * prompt build * reviewing blog post * more reviewing and extending * recommendations from @Rabscuttler and @PrettyWood * add implementation details and more suggestions * comment about breaking changes * convert namespae to table, more removals * Apply suggestions from code review by @tiangolo Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com> * feedback from @tiangolo's review * changes from @adriangb's review * Apply suggestions from code review Co-authored-by: Zac Hatfield-Dodds <zac.hatfield.dodds@gmail.com> * convert namespace info to psuedo-code * rename property, remove schema_json() * adding validation context * remove 'model_schema_json', take 2 * more tweaks while reviewing * comment about pypy and tagged unions * add thanks :prey:, prepare for release * suggestions from @PrettyWood * suggestions from @PrettyWood, model_dump_json comment Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com> Co-authored-by: Zac Hatfield-Dodds <zac.hatfield.dodds@gmail.com> * comments mostly from @PrettyWood (#4226) * comments mostly from @PrettyWood * add updated comment * fix pre-commit * allow for shallow copies (#4093) * allow for shallow copies * Add changes file * tweak change * update for comments * rename attr * use single quotes * bump ci * add warning if not a string, switch to string literals * fix linting, prompt ci * fix ci * extend and fix tests * change default to "shallow" Co-authored-by: Samuel Colvin <s@muelcolvin.com> * uprev and prepare for release * linting Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com> Co-authored-by: Zac Hatfield-Dodds <zac.hatfield.dodds@gmail.com> Co-authored-by: Tim Paine <t.paine154@gmail.com>
pydantic
Data validation and settings management 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.7+; 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%