Skip to main content

Plantilla para desarrollo fluido en Python

Project description

codecov PyPI version Documentation Status Linting Status

Python Poetry Template

Este proyecto, "Python Poetry Template", es una plantilla versátil para proyectos de Python, diseñada para facilitar la gestión de dependencias, la publicación de módulos, el análisis estático de código, las pruebas y la generación de documentación. Utilizando herramientas modernas como Poetry, PyPI, Flake8, Pytest, Coverage y Sphinx con tema Read The Docs, esta plantilla está orientada a maximizar la eficiencia y calidad en el desarrollo de software en Python.

Herramientas Utilizadas

  • Poetry: Gestión de dependencias y empaquetado en Python.
  • PyPI: Plataforma para la publicación de paquetes Python.
  • Flake8: Análisis estático de código para cumplimiento de estilo.
  • Pytest y Coverage: Framework de pruebas y medición de cobertura de código.
  • Sphinx (Tema RTD): Generación de documentación del proyecto.

Configuración del Proyecto

Para configurar el entorno de desarrollo:

  1. Clone el repositorio: git clone [URL del repositorio].
  2. Instale Poetry si aún no está instalado en su sistema.
  3. Ejecute poetry install para instalar las dependencias del proyecto.

Renombrar el contenedor principal de código

El código se encuentra por defecto bajo el directorio python_poetry_template, debemos renombrarla, al nombre deseado.

Configuración de pyproject.toml

Asegúrate de que tu archivo pyproject.toml esté correctamente configurado. Esto incluye especificar el nombre del paquete, la versión, la descripción, los autores y cualquier otra información relevante que PyPI necesite para mostrar tu paquete correctamente.

Por ejemplo:

[tool.poetry]
name = "nombre-de-tu-paquete"
version = "0.1.0"
description = "Una breve descripción de tu paquete"
authors = ["Tu Nombre <tu_email@example.com>"]

...

[tool.taskipy.tasks]
html_docs = "make html -C docs"
lint = "poetry run flake8 <ruta-directorio-principal>"
coverage = "poetry run coverage run -m --source=<ruta-directorio-principal> pytest tests && poetry run coverage report -m"

Configuración del la documentación

En el fichero de configuración de sphinx docs/source/conf.py debemos configurar con los valores de nuestro proyecto.

project = 'python_poetry_template'
copyright = '2023, frapercan'
author = 'frapercan'

también debemos configurar docs/source/index.rst haciendo referencia a los ficheros .rst que gestionan nuestros módulos de programación , teniendo docs/source/template.rst cómo ejemplo de muestra.

En caso de dudas atender a la documentación oficial de sphinx.

Comandos

Generar Documentación

poetry run task html_docs

Este comando construye la documentación del proyecto con Sphinx y el tema RTD, ubicándola en docs/build.

Análisis Estático de Código (Linting)

poetry run task lint

Ejecuta Flake8 para análisis estático del código, ayudando a identificar problemas de estilo y errores.

Cobertura de Pruebas

poetry run task coverage

Realiza pruebas con Pytest y genera un informe de cobertura con Coverage.

Publicación del Paquete

Para compilar y publicar tu paquete Python utilizando Poetry, sigue estos pasos:

Compilación del Paquete

Antes de publicar, es una buena práctica compilar el paquete para asegurarse de que todo esté configurado correctamente. Para compilar tu paquete, ejecuta:

poetry build

Este comando generará los archivos de distribución en los formatos de archivo Wheel y Source. Los archivos se crearán en el directorio dist/ de tu proyecto.

Publicación en PyPI

Una vez que hayas compilado tu paquete, puedes publicarlo en PyPI para que otros puedan instalarlo fácilmente. Asegúrate de tener una cuenta en PyPI y haber configurado tus credenciales de autenticación.

poetry publish

Este comando te pedirá tus credenciales de PyPI (si no están ya almacenadas) y luego subirá los archivos de distribución a PyPI.

Python Poetry Template

Este proyecto, "Python Poetry Template", es una plantilla versátil para proyectos de Python, diseñada para facilitar la gestión de dependencias, la publicación de módulos, el análisis estático de código, las pruebas y la generación de documentación. Utilizando herramientas modernas como Poetry, PyPI, Flake8, Pytest, Coverage y Sphinx con tema Read The Docs, esta plantilla está orientada a maximizar la eficiencia y calidad en el desarrollo de software en Python.

Herramientas Utilizadas

  • Poetry: Gestión de dependencias y empaquetado en Python.
  • PyPI: Plataforma para la publicación de paquetes Python.
  • Flake8: Análisis estático de código para cumplimiento de estilo.
  • Pytest y Coverage: Framework de pruebas y medición de cobertura de código.
  • Sphinx (Tema RTD): Generación de documentación del proyecto.

Configuración del Proyecto

Para configurar el entorno de desarrollo:

  1. Clone el repositorio: git clone [URL del repositorio].
  2. Instale Poetry si aún no está instalado en su sistema.
  3. Ejecute poetry install para instalar las dependencias del proyecto.

Renombrar el contenedor principal de código

El código se encuentra por defecto bajo el directorio template, debemos renombrarla, al nombre deseado.

Configuración de pyproject.toml

Asegúrate de que tu archivo pyproject.toml esté correctamente configurado. Esto incluye especificar el nombre del paquete, la versión, la descripción, los autores y cualquier otra información relevante que PyPI necesite para mostrar tu paquete correctamente.

Por ejemplo:

[tool.poetry]
name = "nombre-de-tu-paquete"
version = "0.1.0"
description = "Una breve descripción de tu paquete"
authors = ["Tu Nombre <tu_email@example.com>"]

...

[tool.taskipy.tasks]
html_docs = "make html -C docs"
lint = "poetry run flake8 <ruta-directorio-principal>"
coverage = "poetry run coverage run -m --source=<ruta-directorio-principal> pytest tests && poetry run coverage report -m"

Configuración del la documentación

En el fichero de configuración de sphinx docs/source/conf.py debemos configurar con los valores de nuestro proyecto.

project = 'template'
copyright = '2023, frapercan'
author = 'frapercan'

también debemos configurar docs/source/index.rst haciendo referencia a los ficheros .rst que gestionan nuestros módulos dep programación , teniendo docs/source/template.rst cómo ejemplo de muestra.

En caso de dudas atender a la documentación oficial de sphinx.

Comandos

Generar Documentación

poetry run task html_docs

Este comando construye la documentación del proyecto con Sphinx y el tema RTD, ubicándola en docs/build.

Análisis Estático de Código (Linting)

poetry run task lint

Ejecuta Flake8 para análisis estático del código, ayudando a identificar problemas de estilo y errores.

Cobertura de Pruebas

poetry run task coverage

Realiza pruebas con Pytest y genera un informe de cobertura con Coverage.

Publicación del Paquete

Para compilar y publicar tu paquete Python utilizando Poetry, sigue estos pasos:

Aumentar la versión del proyecto.

poetry version minor
poetry version major

Compilación del Paquete

Antes de publicar, es una buena práctica compilar el paquete para asegurarse de que todo esté configurado correctamente. Para compilar tu paquete, ejecuta:

poetry build

Este comando generará los archivos de distribución en los formatos de archivo Wheel y Source. Los archivos se crearán en el directorio dist/ de tu proyecto.

Publicación en PyPI

Una vez que hayas compilado tu paquete, puedes publicarlo en PyPI para que otros puedan instalarlo fácilmente. Asegúrate de tener una cuenta en PyPI y haber configurado tus credenciales de autenticación.

poetry publish

Este comando te pedirá tus credenciales de PyPI (si no están ya almacenadas) y luego subirá los archivos de distribución a PyPI.

Configurar credenciales de PiPy

Para configurar la github actions, debemos de añadir la clave secreta en la configuración del repositorio bajo el nombre PYPI_API_TOKEN. Este token lo sacamos tras haber configurado nuestra cuenta de pipy.

Configurar Codecov y ReadTheDocs

A través de la página de la aplicación CodeCov y ReadTheDocs podemos configurar los repositorios bajo nuestro usuario de github para que sean monitorizados por estos servicios.

Configurar los badges:

Tomando las primeras lineas de este README.md de muestra, podemos reemplazar los valores de nuestro template, por los de nuestro proyecto deseado de forma intuitiva.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_poetry_template-1.0.0.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

python_poetry_template-1.0.0-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file python_poetry_template-1.0.0.tar.gz.

File metadata

  • Download URL: python_poetry_template-1.0.0.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.13 Linux/6.2.0-1016-azure

File hashes

Hashes for python_poetry_template-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b1df58edd853e0e8dc6de8e16fcfe3b4326ac513fdc575a13a0f448ff44ee6d6
MD5 0971477d2357736a368aca3511820b5e
BLAKE2b-256 5d4066ddfdb8b64b004c9397894496830464413a4f7c9a75a980663a3840fc77

See more details on using hashes here.

File details

Details for the file python_poetry_template-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_poetry_template-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7fb23b1fc092d5889537562108673da77bfed62911dd54241c5d2fa1b1125323
MD5 4d19503dd6facc3b27bd5a54304ef95f
BLAKE2b-256 a6151244d3cda8d5648b904b8ed8e37c285eec621f76de055b9dcb48ef904165

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page