← ClaudeAtlas

pydantic-patternslisted

Pydantic v2 patterns — models, validators, serialization, computed fields, discriminated unions, settings management, and integration with FastAPI/SQLAlchemy.
Izangi2714/claude-code-python-stack · ★ 0 · Data & Documents · score 65
Install: claude install-skill Izangi2714/claude-code-python-stack
# Pydantic v2 Patterns Data validation and serialization patterns using Pydantic v2. ## When to Activate - Defining request/response schemas for APIs - Validating external data (user input, API responses, file content) - Managing application settings with environment variables - Converting between domain models and DTOs ## Basic Models ```python from pydantic import BaseModel, Field, EmailStr from datetime import datetime class UserCreate(BaseModel): email: EmailStr name: str = Field(min_length=1, max_length=255) password: str = Field(min_length=8, max_length=128) age: int | None = Field(None, ge=0, le=150) class UserResponse(BaseModel): id: int email: str name: str created_at: datetime model_config = {"from_attributes": True} # Enable ORM mode ``` ## Validators ### Field Validators ```python from pydantic import BaseModel, field_validator, model_validator import re class UserCreate(BaseModel): username: str password: str password_confirm: str @field_validator("username") @classmethod def username_alphanumeric(cls, v: str) -> str: if not re.match(r"^[a-zA-Z0-9_]+$", v): raise ValueError("Username must be alphanumeric") return v.lower() @field_validator("password") @classmethod def password_strength(cls, v: str) -> str: if not re.search(r"[A-Z]", v): raise ValueError("Password must contain uppercase letter") if not re.search(r"[0-9]", v