Using concrete types instead of abstract container classes in data models improves validation performance. More specific types require fewer checks and coercion attempts, resulting in faster validation. Additionally, ensure proper model parametrization to prevent unnecessary revalidation, which can trigger validators repeatedly.
Using concrete types instead of abstract container classes in data models improves validation performance. More specific types require fewer checks and coercion attempts, resulting in faster validation. Additionally, ensure proper model parametrization to prevent unnecessary revalidation, which can trigger validators repeatedly.
For example, prefer:
from pydantic import BaseModel
class Model(BaseModel):
items: list[str] # Concrete type
Instead of:
from collections.abc import Sequence
from pydantic import BaseModel
class Model(BaseModel):
items: Sequence[str] # Abstract type - incurs more validation overhead
This optimization is particularly important in performance-sensitive code paths where validation occurs frequently.
Enter the URL of a public GitHub repository