​ Una Apología Poética: Poetry para manejo de dependencias y empaquetado de módulos.

Accepted

Poetry es una herramienta para manejo de dependencias y empaquetado de módulos. Mostraremos, a través de un ejemplo, porque consideramos que es una versión superadora a alternativas preexistentes (como virtualenvs, setuptools y pipenv) y como integrarlo con otras herramientas modernas del ecosistema (como pyenv o pipx).


Type: Charla estandard, 25 minutos

Level: Medium

Speakers: Pedro Ferrari

Speakers Bio: Pedro Ferrari actualmente es Co-Founder de Mutt Data donde se dedica a liderar proyectos de Data Science con un enfoque en buenas prácticas de desarrollo de software combinadas con know how de implementación de modelos en producción. Es ademas profesor ayudante de la materia Machine Learning en la Maestría en Analytics de la UTDT y ayudante del Seminario de Tópicos Avanzados de Datos en la Especialización en Ciencia de Datos del ITBA. En su tiempo libre es un acérrimo usuario de Vim y Arch Linux y disfruta enormemente contribuyendo al mundo open source. Desde el lado académico es Licenciado en Economía de la Universidad Torcuato Di Tella (UTDT) y está finalizando su carrera de Actuario en la Universidad de Buenos Aires. Tiene asimismo una Maestría en Economía, también de la UTDT.

Time: 18:30 - 19:00 - 11/26/2020

Room: Sala 1

Labels: poetry dependency-management pip pipenv packaging

Description

El manejo de dependencias en Python ha sido históricamente problemático. Pip, por caso, recién en Octubre de 2020 será en principio capaz de resolver dependencias de forma consistente. El correlato de esto ha sido que para poder desarrollar aplicaciones o librerías en entornos aislados y replicables debamos recurrir, convencionalmente, a una combinación frágil y difícil de mantener de entornos virtuales con múltiples archivos de requerimientos. Si además deseamos empaquetar nuestro código debemos agregar una capa extra de complejidad dada por el script de buildeo de setuptools. Por último, para garantizar que dicho código funcione con distintas versiones de Python, debemos añadirle a esta combinación de por si endeble (y poco segura) algún mecanismo (como pueden plugins ad hoc de virtualenvs) que justamente permita hacer ejecuciones con versiones dispares. ​ Poetry es una herramienta que resuelve las dificultades mencionadas arriba de una forma centralizada, sencilla e intuitiva. Con el objeto de ilustrar porque es entonces a nuestro entender una solución superadora al problema de obtener dependencias consistentes en entornos aislados y replicables de un código empaquetado, iniciaremos la charla mostrando primero justamente las limitaciones que tienen las herramientas tradicionales (virtualenvs, requirements, setup.py, pipenv, etc). Discutiremos luego cómo Poetry soluciona estos problemas utilizando virtualmente un único archivo de configuración: el `pyproject.toml`. Señalaremos asimismo como se integra de forma transparente con otras herramientas ideadas para obtener entornos reproducibles como son pyenv y pipx.