Práctica focalizada · Bloque 2 · Unidad 2.3
EX-B2-07
Field, field_validator o model_validator
Un modelo concentra patrón, normalización, fechas cruzadas y duplicados en un único `model_validator`.
Cómo abordarla
Haz explícitas las reglas del modelo
Ejecuta primero el baseline. Después modifica la frontera indicada, escribe una regresión positiva y otra negativa y conserva la salida real.
Evidencia objetivo: El modelo acepta, normaliza o rechaza con reglas localizables y separa entrada, actualización y salida.
Abrir laboratorio de código
1. Descarga y arranca
- Modelo con validación concentradaCódigo parcial con reglas deliberadamente mal ubicadas.
2. Escribe y prueba
- Clasifica seis reglas antes de editar.
- Refactoriza restricciones declarativas, normalización y comparación cruzada.
- Extrae la comprobación de duplicados de los validadores.
3. Demuestra el comportamiento
- Clasificación de las seis reglas por frontera y dependencia de estado.
- Modelo refactorizado con pruebas positivas y negativas.
- Explicación de una regla que deliberadamente no pertenece a Pydantic.
La respuesta principal es tu código y sus pruebas. Usa este espacio solo para anotar la predicción inicial y el resultado observado.
Predicción breve antes de ejecutar
¿Qué regla pertenece a cada mecanismo y cuál no pertenece a Pydantic?
Comprueba estas tres cosas
- ¿Qué comportamiento observas y qué parte es todavía una hipótesis?
- ¿Cuál es el cambio mínimo que permite verificar la causa o el contrato?
- ¿Qué evidencia conservarías para demostrar que no rompiste otra frontera?
Anota predicción, comando ejecutado y diferencia observada; el código vive en tu workspace.
Sin respuesta guardada.
Pistas opcionales
Pista 1 · Localiza la frontera
- Separa importación, enrutado, extracción, validación, operación y serialización.
- Lee el status, los headers y la ubicación del error antes de editar.
Pista 2 · Reduce la prueba
- Usa una petición válida y una inválida que difieran en una sola variable.
- Compara el comportamiento con `/openapi.json` cuando el contrato esté documentado.
Profundización opcional
Mover cada regla a la frontera más estrecha y dejar fuera el estado externo.
Contexto adicional
- Trabaja únicamente dentro del alcance del bloque: una aplicación pequeña y estado en memoria.
- No hay solución oficial publicada; el material contiene huecos y defectos deliberados.
- Justifica las decisiones por el mensaje HTTP y el contrato observable, no solo porque el código arranque.
Cómo revisar tu respuesta
- Los rangos simples usan `Field`.
- La relación entre fechas usa `model_validator` y devuelve `self`.
- Ningún validador consulta estado externo.
Evidencia, revisión y reinicio
- Decisión razonada guardada localmente en la web.
- Código o informe ejecutable en el workspace temporal, más una captura de curl/OpenAPI cuando proceda.
Revisión: con Codex, utilizando la evidencia y los criterios anteriores; no se publica una solución oficial.
Reinicio: Eliminar el workspace temporal y volver a descargar el material inicial; no hay estado persistente externo.