Vue d'ensemble

Pydantic 1.10, publié le 16 juillet 2022, introduit le mode strict et model_rebuild pour la reconstruction dynamique des modèles.

Fonctionnalités principales

Mode strict

Le mode strict désactive la coercition automatique des types, rejetant les valeurs qui ne correspondent pas exactement au type déclaré.

python
from pydantic import BaseModel, validator

class Utilisateur(BaseModel):
    nom: str
    age: int

    class Config:
        strict = True

# OK
u = Utilisateur(nom='Alice', age=30)
print(u)

# En mode strict, age='30' lèverait une erreur
# car la coercition str -> int est désactivée

model_rebuild

La méthode model_rebuild permet de reconstruire un modèle après modification de ses références, utile pour les modèles avec des dépendances circulaires.

python
from __future__ import annotations
from pydantic import BaseModel
from typing import Optional, List

class Noeud(BaseModel):
    valeur: int
    enfants: List[Noeud] = []

Noeud.model_rebuild()  # résout les références

arbre = Noeud(valeur=1, enfants=[
    Noeud(valeur=2),
    Noeud(valeur=3, enfants=[Noeud(valeur=4)]),
])
print(arbre.json())

Sources