Crea tus propias librerías en Python
Y te lo voy a explicar fácil y para toda la familia.
Vamos a allá 👇
En el camino del desarrollador se dan situaciones en las que necesitamos repetir ciertas acciones, o mejor dicho, necesitamos reutilizar módulos o componentes en nuevos desarrollos.
Por eso, la mejor forma de reaprovechar código es creando nuestras propias librerías para poder agilizar y tener controlados nuestros proyectos de una forma mucho más clara.
Y eso es lo que te voy a explicar hoy.
Cuales son los pasos que debes dar para crear una librería en Python.
NOTA: Voy a utilizar como base comandos Linux para el desarrollo del proyecto. En caso de que estés en Windows, puedes hacerlo tanto por terminal como con interfaz.
1. Crea un nuevo proyecto
El primer paso y más obvio.
Necesitamos crear un nuevo directorio donde vamos a poner todos los ficheros necesarios para desplegar nuestra librería.
Para hacerlo fácil, crea un directorio con el nombre:
Opcionalmente, puedes crear un entorno virtual donde instalar todos los paquetes requeridos.
Si no puedes instalarlos en tu propia máquina directamente con los siguientes comandos:
2. Dale forma a la estructura de tu proyecto
Con el proyecto ya creado, lo que tienes que hacer es seguir la siguiente receta:
Crea un README.md. Documentar siempre debe estar en tu lista de tareas prioritarias y más aún si se trata de una librería. Así que incluye toda la información que creas necesaria y que ayude a los futuros usuarios a saber que hace y como funciona tu librería.
Crea un directorio con el nombre de la libreria. Para seguir con el nombre del ejemplo, crea un directorio con el nombre de library_tutorial. NOTA: Si vas a queres hacerla pública en un futuro, asegurate que el nombre sea único y no exista en el repo de librerías Python.
Crea un fichero con el nombre __init__.py dentro del directorio que has creado en el punto anterior. Para nuestro tutorial, puedes dejar el fichero vacío ya que la función del mismo es decirle al build que todos los ficheros que haya ahí debe incluirlos como parte de la librería.
Aún en el mismo directorio, ahora sí, crea un fichero donde vamos a incluir nuestro código de la librería. Por ejemplo, dale el nombre my_tutorial_functions.py.
Como buena práctica en el desarrollo de software (y de creación de una librería) añade un directorio de ‘tests’ con donde incluir todos los tests que deberá pasar el código de tu librería. Recuerda: Debes crear un fichero __init__.py y además el fichero de pruebas de tu código, por ejemplo con el nombre de test_mytutorialfunctions.py (importante el prefijo de 'test_')
Por último y no por ello menos importante, crea el fichero setup.py. Es el fichero donde añadiremos toda la configuración de la librería para el despliegue.
Hasta el momento, deberías tener una estructura como la siguiente:
3. Es el momento de darle contenido a la librería
Con la estructura del proyecto lista, es hora de empezar a generar código en nuestra librería.
Siguiendo la estructura anterior, todo el código que incluyas debe ir dentro del fichero my_tutorial_functions.py.
Vamos a probar con algo sencillo:
Ya tenemos nuestras dos funciones sum y square que lo que hacen es sumar dos números y obtener el cuadrado de un número respectivamente.
Como ves, algo sencillito.
Pues bien, ahora con el código ya listo, es importante que dejemos también preparados nuestros ficheros de test.
Para ello, vamos a utilizar la librería pytest y dentro del fichero que hemos creado previamente en tests/test_my_tutorial_functions.py vamos a incluir las siguientes comprobaciones:
Ahora si, ya tenemos todo el contenido de nuestra librería.
Pero nos falta el último paso: la configuración.
4. Configura tu librería
¿Te acuerdas del fichero setup.py que hemos creado al principio?
Pues es hora de darle forma.
Primero te enseño el contenido y luego te explico:
name: contiene el nombre de la librería. Así que no tiene complicaciones.
packages: La función find_packages incluye automáticamente todos los directorios del proyecto, pero si queremos dejar fuera el directorio de tests (cosa que haremos) debes solo incluir los directorios donde hemos añadido el código de la librería.
version: Contiene la versión de la librería. Para nuevos y futuros cambios deberás cambiar ese número de forma incremental.
description: Blanco y en botella. Descripción del proyecto.
author: Lugar donde incluir los autores de la librería
license: Contine la licencia de software asociada a la librería (si la hay).
install_requires: Este es lugar donde añadir todas las dependencias que tiene nuestro código de paquetería externa (si las hay).
tests_require: Especifica el framework para el testing que queremos aplicar en nuestro proyecto.
test_suite: Indicamos el directorio donde van a estar ubicados nuestros tests.
Como ves, solo son algunos pequeños pasos de configuración necesarios para dejar a punto de caramelo nuestra librería.
5. Compila tu libreria
Con todo el trabajo hecho solo queda hacer dos cosas.
Colocate en el directorio raíz de la libreria: library_tutorial
Ejecuta el comando python setup.py bdist_wheel. Con esto compilarás la libreria y generarás los ficheros necesarios para tener una librería.
Eso te generará un directorio /dist que contiene el fichero compilado con la librería.
Lista para ser instalada.
6. Instala tu librería
Solo te queda instalar la librería que acabas de crear.
pip install dist/library_tutorial-1.0.0-py3-none-any.whl
Tienes toda la librería que acabo de mostrarte completa en mi perfil de git.
Dale apoyo y una estrellita al repo 😉
Repo: https://gitlab.com/justoherrero/python-library-tutorial
Nos vemos en la próxima 🙋♂️