Vue d'ensemble

Pydantic 2.1, publié le 18 août 2023, améliore les champs calculés et ajoute de nouvelles options de sérialisation.

Fonctionnalités principales

Champs calculés améliorés

Le décorateur @computed_field supporte désormais mieux la sérialisation JSON et l’inclusion dans le schéma JSON.

python
from pydantic import BaseModel, computed_field

class Produit(BaseModel):
    prix_ht: float
    tva: float = 0.20

    @computed_field
    @property
    def prix_ttc(self) -> float:
        return round(self.prix_ht * (1 + self.tva), 2)

Options de sérialisation

Le paramètre mode dans model_dump permet de choisir entre sérialisation Python et JSON.

python
from pydantic import BaseModel
from datetime import datetime

class Event(BaseModel):
    name: str
    date: datetime

e = Event(name='Conf', date=datetime(2023, 8, 18))
print(e.model_dump(mode='json'))
# {'name': 'Conf', 'date': '2023-08-18T00:00:00'}

Sources