Release 0.1.0
Publication of %Version 0.1.0 requires completing several tasks:
-
Find a way in which the users can "install" the module on their computers and document it. -
Find a support (Wiki, PDF, IETR website...) to publish the documentation. -
Add version number to main init file. -
Add license to the project (all files!). -
Remove license from the project (explanation here) -
Add description to delete() method of Parameter class. -
Generate automatic documentation of the module. -
Add additional, manually typed, parts to the automatic documentation. -
Publish the documentation. -
Write README file. -
Merge the release branch to main and label it. -
Create GitLab release.
Installing the module
Ejemplo de archivo setup.py
El archivo setup.py es el script de configuración que usa setuptools para configurar tu paquete. Aquí tienes un ejemplo básico:
import os
import re
from setuptools import setup, find_packages
# Ruta al archivo __init__.py
init_py_path = os.path.join(os.path.dirname(__file__), 'mi_modulo', '__init__.py')
# Función para extraer la versión del archivo __init__.py
def get_version():
with open(init_py_path, 'r') as f:
for line in f:
match = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', line)
if match:
return match.group(1)
raise RuntimeError("No se encontró la versión en el archivo __init__.py")
def read_requirements():
with open('requirements.txt') as f:
return f.read().splitlines()
setup(
name='mi_modulo',
version=get_version(), # Usar la versión leída del archivo __init__.py
packages=find_packages(), # Encuentra y lista automáticamente los paquetes
install_requires=read_requirements(),
author='Tu Nombre', # Tu nombre como autor
author_email='tuemail@dominio.com', # Tu email
description='Una breve descripción de tu módulo', # Breve descripción de tu módulo
long_description=open('README.md').read(), # Descripción larga, generalmente leída desde un archivo README.md
long_description_content_type='text/markdown', # Formato del archivo README.md
url='https://gitlab.com/usuario/nombre-repositorio', # URL de tu repositorio
classifiers=[
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License', # O el tipo de licencia que uses
'Operating System :: OS Independent',
],
python_requires='>=3.6', # Versión mínima de Python requerida
)
Pasos detallados para crear setup.py
Crear el archivo setup.py:
En el directorio raíz de tu proyecto, crea un archivo llamado setup.py y copia el contenido del ejemplo anterior.
Personalizar el archivo setup.py
- name: El nombre de tu módulo. Este será el nombre que los usuarios utilizarán para instalar tu paquete.
- version: La versión actual de tu módulo. Puedes seguir el esquema de versiones semántico (por ejemplo, 0.1.0, 1.0.0).
- packages: find_packages() automáticamente encuentra todos los paquetes y subpaquetes de tu proyecto. Asegúrate de que tu código esté organizado en paquetes (directorios con un archivo init.py).
- install_requires: Lista de dependencias que tu módulo necesita. Cada dependencia puede tener una versión mínima o máxima especificada (por ejemplo, numpy>=1.18.0).
- author y author_email: Tu nombre y correo electrónico.
- description y long_description: Breve descripción y descripción larga de tu módulo. La long_description suele leerse desde un archivo README.md.
- long_description_content_type: El formato del archivo de descripción larga (por ejemplo, text/markdown).
- url: La URL de tu repositorio GitLab. classifiers: Lista de clasificadores que ayudan a otros a entender mejor tu paquete. Puedes encontrar una lista completa de clasificadores en el PyPI classifiers.
- python_requires: Especifica las versiones de Python compatibles.
Incluir un archivo README.md (opcional pero recomendado): Si no tienes un archivo README.md, crea uno en el directorio raíz de tu proyecto con una descripción detallada de tu módulo, cómo instalarlo y ejemplos de uso.
Ejemplo de estructura de proyecto
Aquí tienes un ejemplo de cómo podría verse la estructura de tu proyecto:
mi_proyecto/
│
├── mi_modulo/ # El directorio del paquete principal
│ ├── __init__.py
│ ├── modulo1.py
│ └── modulo2.py
│
├── tests/ # Directorio para pruebas (opcional)
│ ├── __init__.py
│ ├── test_modulo1.py
│ └── test_modulo2.py
│
├── README.md # Archivo README con la descripción del proyecto
├── setup.py # Archivo setup.py para configurar el paquete
└── requirements.txt # Archivo opcional para listar las dependencias
Edited by Lucas POLO-LOPEZ