Skip to content

Data parsing and validation using Python type hints

License

Notifications You must be signed in to change notification settings

florianfischer91/pydantic

 
 

Repository files navigation

Pydantic

CI Coverage pypi CondaForge downloads versions license

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.7+; validate it with pydantic.

Pydantic Company 🚀

We've started a company based on the principles that I believe have led to Pydantic's success. Learning more from the Company Announcement.

Pydantic V1.10 vs. V2

This branch relates to development of pydantic V2 which is not yet ready for production use.

If you're a Pydantic user, you probably want either pydantic V1.10 Documentation or, 1.10.X-fixes git branch.

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.

About

Data parsing and validation using Python type hints

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.7%
  • Other 0.3%