1 of 25

¡Construyamos juntos!

Cómo y por qué tener un PyPI interno en tu organización.

Sofía Denner

2 of 25

¿Quién soy?

Sofía Denner

Machine Learning Technology @ Mercado Libre

@sofide_

Icons made by Pixel perfect, DinosoftLabs and Freepik from www.flaticon.com

3 of 25

¿Qué es PyPI?

4 of 25

¿Qué es PyPI?

PyPI (Python Package Index) es el repositorio de software oficial para aplicaciones de terceros en el lenguaje de programación Python.

5 of 25

PyPI Server

> pip

> twine

Upload packages

Install packages

PyPI, pip y twine son mantenidos por PyPA (Python Package Authority)

6 of 25

¿Cómo crear una librería?

7 of 25

¿Cómo crear una librería?

  1. Tener una estructura de archivos modularizada

my_lib/

my_lib_package/

__init__.py

8 of 25

¿Cómo crear una librería?

  • Tener una estructura de archivos modularizada
  • Crear un setup.py con las configs de la lib.

import setuptools

setuptools.setup(

name="my_lib”

version="0.0.1",

author="Example Author",

description="A small example package",

packages=setuptools.find_packages(), # [“my_lib_package”],

python_requires='>=3.6',

# (...)

)

9 of 25

¿Cómo crear una librería?

  • Tener una estructura de archivos modularizada
  • Crear un setup.py con las configs de la lib.
  • Instalar librerías para empaquetar librerías

> pip install setuptools wheel

10 of 25

¿Cómo crear una librería?

  • Tener una estructura de archivos modularizada
  • Crear un setup.py con las configs de la lib.
  • Instalar librerías para empaquetar librerías
  • Generar los binarios

> python3 setup.py sdist bdist_wheel

11 of 25

¿Cómo crear una librería?

  • Tener una estructura de archivos modularizada
  • Crear un setup.py con las configs de la lib.
  • Instalar librerías para empaquetar librerías
  • Generar los binarios

LISTO!

> twine upload dist/*

12 of 25

¿Por qué tener librerías internas?

13 of 25

¿Por qué tener librerías internas?

Facilita la colaboración entre equipos

14 of 25

¿Por qué tener librerías internas?

Colabora con propagar buenas prácticas

15 of 25

¿Por qué tener librerías internas?

Ahorra tiempo de desarrollo y testing

16 of 25

¿Por qué tener librerías internas?

Permite generalizar soluciones complejas del negocio

17 of 25

¿Por qué tener librerías internas?

Ayuda a abstraer el código de las decisiones de infraestructura

18 of 25

¿Por qué tener un PyPI interno?

19 of 25

¿Por qué tener un PyPI interno?

Permite administrar y distribuir librerías internas que no pueden ser públicas.

20 of 25

¿Por qué tener un PyPi interno?

Facilita la auditoría

21 of 25

¿Cómo lo hacemos?

22 of 25

¿Cómo lo hacemos?

Live Demo de Pypicloud!

23 of 25

¿Cómo lo hacemos?

Resumen:

> pip install pypicloud[server]

> pypicloud-make-config -t local.ini

> pserve local.ini

24 of 25

We are hiring!

sofia.denner@mercadolibre.com

25 of 25

FIN

¡Gracias!

¿Preguntas?