- 1

Calidad, automatización y asincronía en Python profesional
02:08 - 2

Configuración inicial del proyecto Platy News con Python
08:13 - 3

Configuración y uso de Ruf como formateador automático en Python
06:15 - 4

Configuración de MyPy para validación estática de tipos en Python
13:58 - 5

Configuración y uso de ruff para análisis estático en Python
09:43 - 6

Configuración de pre-commit con Ruff y MyPy para validar código
10:53 - 7

Ejecución paralela de pruebas unitarias con pytest y coverage
08:45 - 8

Configuración de GitHub Actions para CI/CD con Python
10:55 - 9

Configuración de logging y Sentry para monitoreo en producción
09:20 quiz de Calidad de Código: Automatización y Validación
Publicación de paquetes Python con UV y TestPyPI
Clase 17 de 17 • Curso de Python Profesional: Arquitectura de Proyectos, Entornos y PyPI
Contenido del curso
- 12

Programación asíncrona en Python con AsyncIO para operaciones I/O
04:53 - 13

Sintaxis async y await en Python para concurrencia eficiente
05:30 - 14

Event loop de asyncio: creación manual y debugging avanzado
05:31 - 15

Migración de Request síncrono a HTTPX asíncrono en Python
12:57 quiz de Programación concurrente con asyncio
Publicar un paquete de Python con UV y Hatchling es rápido y seguro. Aquí verás, paso a paso, cómo configurar el build backend en pyproject.toml, generar artefactos distribuibles y hacer la publicación en TestPyPI con buenas prácticas de seguridad como 2FA y tokens. Ideal para proyectos Python puro y flujos de CI/CD.
¿Cómo elegir y configurar el build backend con uv?
Seleccionar el build backend correcto es clave. Python ofrece varias opciones: SetopToast es flexible pero complejo. Hatchling es moderno, minimalista y veloz. Fleet es extremadamente simple para paquetes puros de Python. Poetry integra backend y gestión de dependencias. UV funciona con cualquiera que declares en pyproject.toml y recomienda Hatchling por defecto para nuevos proyectos.
¿Qué build backends existen y para qué usar Hatchling?
- SetopToast: el más antiguo y tradicional. Muy flexible.
- Hatchling: moderno, minimalista y rápido. Recomendado por UV.
- Fleet: extremadamente simple para Python puro.
- Poetry: backend con gestor de dependencias integrado.
Hatchling destaca por su simplicidad y eficiencia. Perfecto para empezar a distribuir sin fricción.
¿Cómo declarar build_system en pyproject.toml?
Define el backend y sus requisitos en la sección correspondiente. La idea es especificar require y el build backend apuntando a “.build”.
[build_system]
require = ["hatchling"]
build_backend = "hatchling.build"
Guarda y ya podrás construir tu paquete con UV.
¿Cómo construir el paquete y qué archivos genera uv?
Con el proyecto listo y UV configurado, construye los artefactos distribuibles. El comando central es simple y muestra el output con los archivos resultantes.
¿Qué hace el comando uv build?
- Ejecuta el proceso de empaquetado del proyecto.
- Genera dos archivos listos para publicar: el sdist y el wheel.
uv build
¿Qué significan sdist tar.gz y wheel whl?
- tar.gz: el source distribution (sdist). Código fuente empaquetado.
- whl: el wheel. Distribución binaria lista para instalar.
Estos son los dos archivos que se suben al manejador de paquetes.
¿Cómo publicar en TestPyPI con seguridad y tokens?
Antes de publicar en PyPI, usa su entorno de pruebas: test.pypi. Así validas que el sistema de build y publicación funciona sin afectar el índice principal.
¿Cómo crear cuenta y activar 2FA en TestPyPI?
- Regístrate y verifica tu correo con el enlace enviado.
- Activa two factor authentication: genera y guarda códigos de recuperación.
- Escanea el QR en tu app de autenticación y valida el código.
Con esto, tu cuenta queda lista y protegida para publicar.
¿Cómo generar y usar un token con uv publish?
- Crea un token con alcance al proyecto que vas a publicar.
- En tu Makefile, define un comando de publicación usando el token y el índice de pruebas.
publish:
uv publish \
--index test-pypi \
--username __token \
--password $(TOKEN)
- Ejecuta el objetivo de Make:
make publish
Si aparece un error, probablemente falta registrar el índice en pyproject.toml.
¿Cómo registrar el index en tool.uv.index?
Declara la lista de índices que usarás en UV con nombre, URL, publish URL y explicit true.
[tool.uv.index."test-pypi"]
url = "test.pypi.org"
publish-url = "test.pypi.org"
explicit = true
Ahora vuelve a publicar con UV y revisa el output. Deberías ver que sube los artefactos, incluso menciona que subió dos versiones.
¿Cómo verificar, buscar e instalar el paquete?
- Ve a test.pypi y busca “Platsy News”. Deberías ver la página pública con descripción y README.
- Instala con pip usando la URL del índice de prueba y el nombre del paquete.
pip install -i <URL> Platsy News
Con esto, ya puedes instalar, configurar tu entorno y empezar a usar la librería. Felicidades: lograste publicar tu primer paquete en el manejador de paquetes principal de Python. Inspírate, crea librerías open source, y comparte tu trabajo con la comunidad. Como referencia, Luis Martínez menciona su experiencia con Django, FastAPI y arquitecturas en la nube, e invita a pensar como desarrollador avanzado: código limpio, ideas que escalan y despliegue a producción.
¿Tienes dudas o quieres contar cómo te fue publicando tu paquete? Escribe en los comentarios y comparte tu experiencia.