Gestores de paquetes de Python
De pipenv a uv o poetry
Las versiones antiguas de GenericSuite usaban "pipenv" como la herramienta de gestión de paquetes y dependencias de Python. Ahora, estamos migrando a "uv" como la herramienta predeterminada. Poetry también es compatible.
Para convertir una aplicación de pipenv a uv o poetry, siga estos pasos:
- Vaya al directorio raíz del proyecto, inicialice "uv" o "poetry" y agregue las dependencias de GenericSuite:
Para uv:
# Inicializar "uv" y agregar dependencias de GenericSuite
uv init
# NOTA: modifique el archivo pyproject.toml para añadir los campos "name", "version" y "description".
nano pyproject.toml
# Añadir las dependencias de backend y AI de GenericSuite
uv add genericsuite-be genericsuite-be-ai
# Añadir las dependencias del framework de backend
uv add chalice
# o
uv add fastapi fastapi-cors mangum "uvicorn[standard]" python-multipart
# o
uv add flask flask-cors gunicorn python-multipart
# Añadir las dependencias de desarrollo
uv add --dev pytest coverage cfn-lint
Para poetry:
# Inicializar "poetry" y añadir dependencias de GenericSuite
poetry init
# NOTA: modifique el archivo pyproject.toml para añadir los campos "name", "version" y "description".
nano pyproject.toml
# Añadir las dependencias de backend y AI de GenericSuite
poetry add genericsuite-be genericsuite-be-ai
# Añadir las dependencias del framework de backend
poetry add chalice
# o
poetry add fastapi fastapi-cors mangum "uvicorn[standard]" python-multipart
# o
poetry add flask flask-cors gunicorn python-multipart
# Añadir las dependencias de desarrollo
poetry add --dev pytest coverage cfn-lint
- Reinstale GS BE Scripts
npm install genericsuite-be-scripts@latest
- Actualice el archivo
Makefilecambiando cada referencia apipenvporbash node_modules/genericsuite-be-scripts/scripts/run_pem.sh+ la etiqueta de Makefile:
Por ejemplo:
Reemplace:
npm install
Con:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh install
Aquí tienes el ejemplo completo:
install:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh install
npm install
install_dev:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh install_dev
npm install
update:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh update
npm update
update_dev:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh update_dev
npm update
locked_dev:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh locked_dev
locked_install:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh locked_install
lock:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh lock
requirements:
bash node_modules/genericsuite-be-scripts/scripts/aws/run_aws.sh requirements
.
.
.
clean_rm:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh clean_rm
.
.
.
lint:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh lint
types:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh types
coverage:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh coverage
format:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh format
format_check:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh format_check
pycodestyle:
bash node_modules/genericsuite-be-scripts/scripts/run_pem.sh pycodestyle
-
Busque todas las referencias no implementadas a
pipenven el archivoMakefiley reemplácelas poruvopoetry. Las referencias no implementadas son aquellas diferentes de:install,install_dev,update,update_dev,locked_dev,locked_install,lock,requirements,clean_rm,lint,types,coverage,format,format_check, -
Busque todas las referencias a "pipenv" en los archivos *.sh y reemplácelas por:
PEM_TOOL=uv
.
.
# Reemplace "pipenv" por "${PEM_TOOL}"
-
Busque todas las referencias a
pipenven el archivopackage.jsony reemplácelas poruvopoetry. -
Actualice los archivos
.envy.env.exampleañadiendo la referencia a la variablePEM_TOOLy eliminando el comentario#de la línea que contiene la herramienta de gestión de dependencias que desea usar:
# Python package and dependency management tool (uv, pipenv, and poetry), default to "uv"
# PEM_TOOL=pipenv
# PEM_TOOL=uv
# PEM_TOOL=poetry