Ezequiel Lara Gomez 2ac10affe5 Allow ellipsis on Fields inside Annotated (#3133)
* Allow ellipsis on Fields within annotated types

The usecase is TypedDicts, which can't have default values otherwise.
Meaning that adding Optionals to Annotated drops them from the list of
required fields, which the patch fixes.

* Add test for TypedDict required optionals

Clarifies what's required with TypedDicts schemas.

* Add description of changes

* PR feedback

* extra tests as requested

Co-authored-by: Samuel Colvin <s@muelcolvin.com>
2022-08-04 14:21:05 +00:00
2022-07-28 12:37:22 +01:00
2022-04-02 13:44:30 +01:00
2022-07-06 08:52:01 +02:00
2022-07-04 22:53:11 +02:00
2021-02-26 16:38:26 +00:00
2022-07-06 08:52:01 +02:00
2022-01-02 13:53:45 +00:00
2022-07-27 10:11:19 +01:00

pydantic

CI Coverage pypi CondaForge downloads versions license

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.

S
Description
No description provided
Readme MIT 5.9 MiB
Languages
Python 99.7%
Makefile 0.3%