Tras ejecutar estos comandos tendremos una carpeta dist que contendra el paquete que hemos creado con los comandos anteriores (tanto la wheel como el sdist).
Una vez hemos generado las distribuciones, estariamos en disposicion de subir nuestro proyecto a pypi usando otra herramienta, twine:
Aparte de todo el proceso que hay que hacer para distribuir un paquete en pypi, durante el proceso de desarrollo tenemos que lidiar con:
entornos virtuales (virtualenv, pipenv)
distinas versiones de interpretes (pyenv)
gestion de dependencias en (requirements.txt y en setup.py)
configuracion de herramientas diversas(flake8, pytest, etc..)
Todo esto implica ficheros de configuacion distintos, comandos distintos, opciones distintas, etc..
¿No molaria poder usar la misma herramienta para gestionarlo todo? Pues ya se puede con poetry
Poetry
"Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you."
Si quisieramos actualizarlo usariamos el comando poetry update.
poetry update
Es muy recomendable incluir este fichero en el repositorio.
Instalando dependencias
Cuando ejecutamos el comando poetry install
Instalación con poetry.lock
Instalación sin poetry.lock
Construyendo
Cuando queremos construir el proyecto simplemente usamos el comando poetry build, al estar todo configurado en el fichero pyproject.toml no tenemos necesidad de hacer mucho mas
Construirá en sdist y wheel
poetry build
Publicando
Con el comando publish, publicamos el paquete
poetry publish
Tenemos parámetros para escoger el repositorio ya sea publico (pypi index por defecto) o uno privado
También podemos simular la publicación con el comando --dry-run
Otros comandos útiles
poetry config, nos ayuda a settear valores en el fichero de configuración
poetry export, nos ayuda a exportar el requrements.txt
poetry check, comprueba la estructura del pyproject.toml
poetry search, busca paquetes en indices remotos, publicos o privados.