Poetry és una eina de gestió de dependències i creació de biblioteques.
A partir d’ara utilitzarem uv per fer les activitats enlloc de poetry.
Instal.lació
Instal.la poetry:
| Tanca la sessió i obre una nova sessió.
Verifica que poetry funciona:
Afegeix les ajudes de Shell per tal que Poetry t’ajudi a completar les ordres amb la tecla “Tab”:
Projecte
Crea un projecte amb el nom de poetry:
Pots veure que es crea un projecte amb aquesta estructura:
genbu
├── pyproject.toml
├── README.md
├── app
│ └── __init__.py
└── tests
└── __init__.pyObre la carpeta amb VS Code:
TODO Operation mode Basic usage
Versiona el projecte amb Git:
Dependències
En la biblioteca estàndar de Python no està tots el moduls que necessites per implementar un projecte.
Però això hi ha repositoris de paquets: un d’ells és Pyhton Package Index.
Per exemple, instal.la el paquet Emoji:
Pots veure que la secció [tool.poetry.dependencies] del fitxer pyproject.toml s’ha modificat:

De manera automàtica Poetry busca una versió adequada a PyPI, a no ser que hagis registrar altres “repositoris” en la secció tool.poetry.source, i instal.la la llibreria i les seves dependències.
Poetry et permet especificar les depenències de manera molt flexible, inclós restriccions mútliples.
Entorn virtual
Crea el fitxer test_emoji.py a la carpeta tests:
=
Amb import pots importar un mòdul a l’entorn d’execució de l’script.
Executa l’script:
Python diu que no pot trobar el mòdul emoji encara que poetry diu que l’ha instal.lat!
🤔
Poetry gestiona un projecte en un entorn virtual, que és un espai aïllat en que només estan les depndències que el projecte vol i cap altre.
Si preguntes a poetry et dirà que l’“evn” està actiu:
El que has de fer és executar l’script des de poetry:
Shell
Si vols pots activar un shell anidat on pots executar les ordres dins de l’entorn virtual:
()Ara pots executar directament el fitxer test_emoji.py:
()
Pots sortir del shell amb l’ordre deactivate:
()
I que passa si executo directament amb el botó “Run Pyhton File”?

Doncs que VS Code ja sap el que ha de fer (des de fa molt poc!):
😄
Gitlab
Crea un projecte a Gitlab:
- Escull Create blank project
- Desactiva l’opció de “Initialize repository with a README”
Segueix les instruccions de “Push an existing folder” per HTTPS:
Activitats
Colorama
Afageix el paquet Colorama:
Crea un fitxer test_colorama que faci un print al terminal amb el text ALARMA!, però en color vermell:
Show solution
Executa l’script.
Pendulum
Afegeix una dependència a Pendulum:
Crea el fitxer test_pendulum.py:
=
# Changing timezone
# Default support for common datetime formats
# Shifting
Executa el fitxer.
Flask
Afegeix una dependència a Flask.
Crea el fitxer server.py:
=
return Excuta flask:
Obre el navegador a http://127.0.0.1:5000
TODO