11 puntos por darjeeling 2025-06-06 | Aún no hay comentarios. | Compartir por WhatsApp

Contenido de una presentación de PyCon US 2025.

Guía para pasar de Jupyter Notebook a un sistema escalable

Jupyter Notebook es una herramienta muy útil para el análisis interactivo, como la exploración de datos, la visualización y la enseñanza. Sin embargo, cuando llega el momento de desplegar código en producción y la reutilización, la automatización y la robustez se vuelven importantes, empiezan a aparecer las limitaciones de los notebooks. En este artículo se presenta el proceso y los puntos clave para transformar código escrito en Jupyter Notebook en un sistema escalable que facilite el mantenimiento y la reproducibilidad.

Ventajas y desventajas de los notebooks

  • Ventajas: Permiten ver código y texto juntos y comprobar los resultados de inmediato, por lo que son excelentes para el análisis exploratorio de datos y la enseñanza. [00:03:18]
  • Desventajas: El estado de las variables puede cambiar según el orden de ejecución de las celdas, el control de versiones se complica y la automatización y reutilización del código se vuelven difíciles, lo que obstaculiza la escalabilidad. [00:04:24]

¿Cuándo conviene pasar a scripts?

  • Cuando necesitas desplegar código en producción
  • Cuando otras personas necesitan reutilizar el código
  • Cuando necesitas ejecutar el código automáticamente
  • Cuando la robustez del código es importante
  • Cuando el notebook se ha vuelto demasiado complejo [00:05:32]

Etapas clave y herramientas para la transición

1. Extracción y conversión del código

  • NBConvert & Jupytext: Permiten extraer fácilmente el código del notebook a scripts de Python. En particular, Jupytext también ofrece sincronización entre notebooks y scripts, lo que lo hace especialmente útil. [00:10:44]

2. Proceso de refactorización

  • Separar el trabajo por unidades funcionales: Identifica cada etapa del notebook, crea una función para cada una y mueve el código a esas funciones. [00:12:52]
  • Escribir pruebas: Crea pruebas unitarias o de integración para garantizar la precisión del código. Esto es especialmente importante para evitar errores que pueden surgir durante el proceso de copiar y pegar. [00:13:08]
  • Gestión de requisitos y dependencias: Deja claros los módulos y sus dependencias para que el código pueda ejecutarse fácilmente en otros entornos. [00:13:15]
  • Adopción de CI/CD: Construye un pipeline de CI/CD (integración continua/despliegue continuo) para automatizar el proceso de despliegue. [00:13:15]

Consejos adicionales para mejorar la calidad del código

  • Formato de código consistente: Usa un formateador de código para mantener la consistencia.
  • Documentación: Acostúmbrate a documentar claramente el propósito del código y cómo usarlo.
  • Separación de configuración: Administra la información de configuración y ajustes en archivos separados. [00:21:11]

Habilidades clave y cambio de mentalidad

  • Modularización: Es importante tener la capacidad de descomponer el código en funciones modulares reutilizables.
  • Automatización: Automatiza el flujo de trabajo para mejorar la eficiencia.
  • Refactorización guiada por pruebas: Mejora el código manteniendo la estabilidad funcional mediante pruebas.

En la fase de exploración, es importante aprovechar al máximo la flexibilidad de Jupyter Notebook, y para el código de producción adoptar la mentalidad de convertirlo en scripts automatizados, robustos y reproducibles. [00:22:16]

Aún no hay comentarios.

Aún no hay comentarios.