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())
