Migration V1 vers V2
Pydantic 2.0, publié en juillet 2023, réécrit le cœur en Rust (pydantic-core) pour des performances 5à 50× supérieures. L'API change : BaseSettings, les validateurs et la configuration sont refactorisés.
Changements clés
python
# Pydantic V1
# from pydantic import BaseModel, validator
# class User(BaseModel):
# name: str
# class Config:
# orm_mode = True
# @validator('name')
# def check(cls, v): ...
# Pydantic V2
from pydantic import BaseModel, field_validator, ConfigDict
class User(BaseModel):
model_config = ConfigDict(from_attributes=True)
name: str
@field_validator('name')
@classmethod
def check(cls, v: str) -> str:
if not v.strip():
raise ValueError('name must not be blank')
return v.strip()
u = User(name=' Alice ')
print(u.name) # 'Alice'
