Validation Python data-class based
Pydantic — creato da Samuel Colvin nel 2017 — è libreria Python per validation di dati tramite type hints. Type hints come validation schema al posto di JSON Schema esterno. Diventa popolare grazie all’adozione di FastAPI (Sebastián Ramírez, 2018) che la usa come foundation.
from pydantic import BaseModel, EmailStr
from datetime import datetime
class User(BaseModel):
id: int
name: str
email: EmailStr
created_at: datetime
user = User(id=1, name="Anna", email="anna@example.com",
created_at="2023-01-15T10:30:00")
# Valida automaticamente tipi, parsa datetime stringa, verifica email
Pydantic 2.0 e Rust
Pydantic 2.0, rilasciato il 30 giugno 2023, è una riscrittura del core in Rust tramite crate pydantic-core. Miglioramenti prestazionali di 5-50x su validation. L’API Python rimane mostly backward-compatible (con migration guide).
Licenza MIT.
Funzionalità
- Models con type hints
- Field validators custom
- Serializers (JSON, dict, custom)
- Alias per mappature field
- JSON Schema generation automatica
- Generics per types parametrici
- Strict mode — niente coercion implicita
Ecosystema dipendente
- FastAPI — validation di request/response
- SQLModel (Sebastián Ramírez, 2021) — ORM basato su Pydantic + SQLAlchemy
- LangChain — structured output di LLM
- Prefect, Argilla, migliaia di librerie moderne
Nel contesto italiano
Pydantic è nel backend di ogni applicazione FastAPI italiana; cresce in ML/AI per structured output di LLM.
Riferimenti: Pydantic 2.0 (30 giugno 2023). Samuel Colvin. Licenza MIT. Core riscritto in Rust (pydantic-core). Backward-compat API. Base di FastAPI, SQLModel, LangChain.
