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'

Sources