Explicación del Archivo 'pyproject.toml' de Ejemplo
| Sitio: | STRATIO Training & Certification |
| Curso: | Creación de un chain con datos Estructurados (Virtualizador) |
| Libro: | Explicación del Archivo 'pyproject.toml' de Ejemplo |
| Imprimido por: | Invitado |
| Día: | lunes, 27 de octubre de 2025, 03:10 |
Descripción
El archivo pyproject.toml es la pieza central de configuración en un proyecto gestionado por Poetry. Este archivo define aspectos clave del proyecto como el nombre, la versión, las dependencias, y las configuraciones adicionales para herramientas de desarrollo. A continuación, se describen los apartados principales del archivo de ejemplo.
1. [tool.poetry]
Este apartado define la información básica del proyecto.
name: Especifica el nombre del proyecto, en este caso"genai-chain-examples". Este nombre es utilizado para identificar el paquete cuando se distribuye.version: Indica la versión actual del proyecto, aquí"0.3.0a0", dondea0señala que es una versión alfa.description: Un campo opcional para una breve descripción del proyecto.authors: Una lista de autores del proyecto. Este campo puede estar vacío, como en el ejemplo, pero normalmente contiene nombres y correos electrónicos de los desarrolladores.packages: Este campo define qué subdirectorios contienen paquetes de Python que deben ser incluidos en la distribución del proyecto. En este caso, se incluye el paquete"genai_chain_joke".
2. [tool.poetry.dependencies]
Aquí se definen las dependencias principales del proyecto.
python: Especifica la versión de Python requerida. En este ejemplo, el proyecto requiere cualquier versión de Python mayor o igual a 3.9 (^3.9).genai-core: Dependencia específica del proyecto, con la versión exacta"0.2.0".Otras dependencias: Como
lmdb,langchain,langchain-core, ylangchain-openai. Cada una con su versión especificada. Estas son bibliotecas que el proyecto necesita para funcionar correctamente.
3. [tool.poetry.group.dev.dependencies]
Este apartado se utiliza para las dependencias de desarrollo, que no son necesarias para la ejecución del proyecto en producción, pero sí para tareas como pruebas, linting y formateo de código.
pytest: Herramienta para realizar pruebas unitarias.pytest-asyncio: Extensión depytestpara manejar código asíncrono.pylint: Herramienta de análisis estático de código para identificar problemas en el código.black: Formateador de código que asegura que todo el código siga un estilo consistente.- Otras dependencias: Como
mypypara chequeo de tipos ypytest-covpara la cobertura de pruebas, entre otras.
4. [tool.poetry.scripts]
Este apartado define comandos personalizados que se pueden ejecutar usando Poetry.
start_joke: Este script ejecuta el métodomaindel módulogenai_chain_joke.main. Los estudiantes pueden ejecutar este comando para iniciar su aplicación directamente conpoetry run start_joke.
5. [[tool.poetry.source]]
Aquí se configuran fuentes adicionales desde donde Poetry puede buscar e instalar dependencias.
nameyurl: Define repositorios personalizados, como"stratio-releases","stratio-snapshots", y"stratio-staging", que son repositorios internos donde se alojan dependencias específicas de la empresa.priority: Define la prioridad del repositorio. En este caso, están marcados comosupplemental, lo que indica que son repositorios adicionales a los predeterminados.
6. [tool.coverage.run]
Este apartado se utiliza para la configuración de cobertura de código (con pytest-cov en este caso).
omit: Define qué archivos o directorios deben ser omitidos al calcular la cobertura de código, comotests/*yscripts/*.
7. [tool.pylint.*]
Varios apartados bajo tool.pylint configuran pylint, una herramienta de análisis de código.
main: Especifica la versión de Python y otros ajustes generales depylint, como los patrones de archivos a ignorar y los plugins a cargar.basic: Configura opciones básicas como expresiones regulares para nombres de funciones sin docstring.messages control: Aquí se deshabilitan ciertos mensajes de advertencia quepylintpodría generar, como los relacionados con "too-few-public-methods".format: Define el formato del código, por ejemplo,max-line-lengthestablece un límite de 120 caracteres por línea.variables: Configura los nombres de variables quepylintdebería ignorar.
8. [build-system]
Este apartado es estándar en proyectos de Poetry y define cómo se debe construir el proyecto.
requires: Indica que se necesitapoetry-corepara construir el proyecto.build-backend: Define el backend de construcción, en este casopoetry.core.masonry.api.