Vue d'ensemble

Pydantic 2.3, publié le 13 octobre 2023, améliore la génération de schémas JSON et ajoute de nouveaux validateurs.

Fonctionnalités principales

Schéma JSON amélioré

La génération de schémas JSON est plus conforme à la spécification et supporte mieux les types Union et les références.

python
from pydantic import BaseModel

class Address(BaseModel):
    street: str
    city: str

class User(BaseModel):
    name: str
    address: Address

schema = User.model_json_schema()
print(schema)  # $defs avec références

Nouveaux validateurs

De nouveaux validateurs de champ sont disponibles, dont field_validator avec le mode wrap pour un contrôle total.

python
from pydantic import BaseModel, field_validator

class Product(BaseModel):
    name: str
    price: float

    @field_validator('price')
    @classmethod
    def check_price(cls, v: float) -> float:
        if v <= 0:
            raise ValueError('Price must be positive')
        return round(v, 2)

Sources