Type Hints & Pydantic
1.2 Advanced Typing & Validation
Sección titulada «1.2 Advanced Typing & Validation»Objetivo: Validación de datos robusta con type hints y Pydantic v2.
📖 Teoría Profunda
Sección titulada «📖 Teoría Profunda»Nominal vs Structural Typing
Sección titulada «Nominal vs Structural Typing»Nominal (Inheritance):
from abc import ABC, abstractmethod
class LLMProvider(ABC): @abstractmethod def generate(self, prompt: str) -> str: pass
class OpenAIProvider(LLMProvider): def generate(self, prompt: str) -> str: return "response"Structural (Protocol):
from typing import Protocol
class LLMProvider(Protocol): def generate(self, prompt: str) -> str: ...
# No necesita herencia!class OpenAIProvider: def generate(self, prompt: str) -> str: return "response"Pydantic v2 Deep Dive
Sección titulada «Pydantic v2 Deep Dive»from pydantic import BaseModel, Field, SecretStr, model_validator
class Config(BaseModel): env: str = Field(..., pattern="^(dev|staging|prod)$") debug: bool = True openai_key: SecretStr
@model_validator(mode='after') def check_prod_no_debug(self): if self.env == "prod" and self.debug: raise ValueError("DEBUG must be False in prod") return self⚔️ Pregunta de Entrevista
Sección titulada «⚔️ Pregunta de Entrevista»“En un sistema distribuido, ¿cómo garantizas que el JSON del Agente A cumple el contrato del Agente B sin compartir código?”
Respuesta: Pydantic schemas publicados como OpenAPI/JSON Schema + validation en el edge.
🧪 Lab Práctico: “The Secure Config Manager”
Sección titulada «🧪 Lab Práctico: “The Secure Config Manager”»Ver contenido completo en COURSE.md línea 166-172.