Qué es GIL en Python y cómo afecta al rendimiento
Entiende Global Interpreter Lock de CPython, por qué threads no aceleran código CPU-bound, cuándo usar threading, multiprocessing y la compilación free-threaded.
Entiende Global Interpreter Lock de CPython, por qué threads no aceleran código CPU-bound, cuándo usar threading, multiprocessing y la compilación free-threaded.
Guía para empaquetar una biblioteca Python con pyproject.toml, construir wheel, probar en TestPyPI y publicar en PyPI usando token o Trusted Publishing.
Por qué threading no acelera el código intensivo en CPU, y cómo usar multiprocessing, Pool, ProcessPoolExecutor para aprovechar todos los núcleos.
Configuración de logging en Python para producción: logger por módulo, dictConfig, log en JSON, request_id con contextvars, QueueHandler y test con caplog.
Usa pathlib.Path en lugar de os.path y os para unir, dividir, leer, escribir y recorrer archivos. Incluye tabla de comparación, pruebas con pytest y errores comunes.
Cómo usar try/except/else/finally, excepciones personalizadas, raise from, logging, ExceptionGroup y cómo testear excepciones con pytest.
Cómo usar Pydantic v2 para validar datos de entrada: BaseModel, Field, field_validator, model_validator, strict mode, TypeAdapter y cómo testear con pytest.
Construye una API REST con FastAPI y Pydantic v2 para bloquear datos inválidos desde la entrada, incluyendo cómo personalizar el error 422 y escribir tests con pytest.
Guía para escribir pruebas con pytest, usar fixtures para preparar datos, limpiar recursos, compartir a través de conftest.py y parametrizar pruebas.
Cómo usar list, dict, set comprehension y generator expression en Python de forma concisa y legible, incluyendo errores comunes y cuándo volver a for.
Entiende cómo funciona la sentencia with, escribe tus propios context managers usando clases o contextlib, maneja excepciones correctamente y evita errores comunes.
Cómo crear entornos virtuales, gestionar paquetes con pip y declarar un proyecto Python con pyproject.toml, con ejemplos funcionales y errores comunes.
Aprende sobre decoradores en Python: desde la sintaxis @, closure, functools.wraps hasta decoradores con parámetros y decoradores basados en clases.
Aprende sobre generators, yield y cómo te ayudan a procesar archivos enormes o streams de datos sin cargar todo en memoria.
Distingue asyncio de threading en Python con 3 preguntas prácticas, ayudándote a elegir el modelo de concurrencia correcto para cada tipo de problema.
Aprende el módulo dataclasses de Python para escribir clases que contienen datos de forma compacta, generando automáticamente __init__, __repr__, __eq__ sin necesidad de boilerplate.
Aprende a usar type hints para código Python más claro y mypy para detectar errores de tipo antes de ejecutar.