SQLAlchemy Core vs ORM y cuándo usar cada uno
Diferencias entre Core y ORM en SQLAlchemy, cuándo elegir cada capa, Session como unidad de trabajo y cómo evitar el problema N+1 con eager loading.
Diferencias entre Core y ORM en SQLAlchemy, cuándo elegir cada capa, Session como unidad de trabajo y cómo evitar el problema N+1 con eager loading.
PEP 249 define la interfaz común de todos los adaptadores de BD en Python; sqlite3 la implementa con conexiones, cursores, parámetros seguros y gestión de transacciones.
Contratos WSGI y ASGI desde sus mecanismos internos: por qué uno bloquea y el otro no, qué habilita cada uno y cómo elegir servidor en producción.
FastAPI usa anotaciones de tipo y Pydantic para validar requests, serializar respuestas y generar documentación OpenAPI interactiva sin configuración adicional.
Rutas con parámetros tipados, manejo de request y response, blueprints para organizar código y el contexto de request en Flask.
Diferencias entre wheel y sdist, manylinux, cibuildwheel para CI multiplataforma, y cómo empaquetar extensiones Cython, cffi y ctypes correctamente.
Construcción de sdist y wheel con python -m build, validación con twine check, publicación en PyPI y Test PyPI, y automatización del release en CI con GitHub Actions.
Diferencias estructurales entre src-layout y flat-layout, por qué src-layout previene falsos positivos en tests, y configuración mínima de pyproject.toml.
Cómo PEP 517, 518 y 621 separaron frontend, backend y metadatos en Python packaging, y por qué setup.py quedó obsoleto.
Cómo CPython representa cada llamada como un PyFrameObject, cómo recorrer el stack programáticamente y por qué la recursión tiene un límite real.