Flask: routing, request y response en profundidad
Rutas con parámetros tipados, manejo de request y response, blueprints para organizar código y el contexto de request en Flask.
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.
Cómo CPython gestiona memoria con ob_refcnt, por qué las referencias circulares crean leaks y cómo el módulo gc los detecta con un collector generacional de tres niveles.
Cómo usar dis para desensamblar funciones Python, entender LOAD_FAST vs LOAD_GLOBAL, y verificar que tus optimizaciones existen en bytecode real.
Cómo CPython transforma código fuente en bytecode ejecutable: tokenización, AST, compilación, caché `.pyc` e inspección con `dis`.
Cuándo y cómo usar Cython, Numba y mypyc para eliminar el overhead del intérprete CPython en código de alto rendimiento, con sus trade-offs reales.