Estructura del repositorio
El proyecto CPM se organiza de la siguiente manera dentro del repositorio:
CPM/
├── config/
│ ├── config.py
│ └── settings.py
├── src/
│ ├── __init__.py
│ ├── main.py
│ └── utils/
│ ├── __init__.py
│ └── helper.py
├── tests/
│ ├── __init__.py
│ └── test_main.py
├── README.md
└── requirements.txt
Descripción de los directorios
- config/: Contiene los archivos de configuración del sistema, específicamente
config.pyysettings.py. - src/: Directorio principal del código fuente donde reside la lógica de negocio y las funciones auxiliares.
- main.py: Punto de entrada de la aplicación.
- utils/: Funciones utilitarias reutilizables.
- tests/: Conjunto de pruebas del proyecto.
- README.md: Documentación genarel.
- requirements.txt: Lista de dependencias de Python.
Archivo de inicio
El punto de partida de la aplicación se encuentra en src/main.py. Este módulo se encarga de leer las configuraciones, preparar el entorno y ejecutar la aplicación.
Estructura del código de arranque
from config.config import obtener_configuracion
from src.utils.helper import preparar_aplicacion
def iniciar():
parametros = obtener_configuracion()
instancia = preparar_aplicacion(parametros)
instancia.ejecutar()
if __name__ == "__main__":
iniciar()
Responsabilidades del módulo
- obtener_configuracion(): Recupera los parámetros de configuración desde las variables de entorno o valores predeterminados.
- preparar_aplicacion(): Construye la instancia de la aplicación usando los parámetros recibidos.
- instancia.ejecutar(): Pone en marcha la aplicación.
Archivos de configuración
Los archivos de configuarción se ubican en el directorio config/ y están formados por config.py y settings.py.
Contenido de config.py
import os
def obtener_configuracion():
parametros = {
"modo_debug": os.getenv("DEBUG", False),
"ruta_bd": os.getenv("DATABASE_URI", "sqlite:///default.db"),
"clave_secreta": os.getenv("SECRET_KEY", "default_secret_key")
}
return parametros
Contenido de settings.py
# Valores predeterminados del sistema
CONFIGURACION_BASE = {
"modo_debug": False,
"ruta_bd": "sqlite:///default.db",
"clave_secreta": "default_secret_key"
}
Función de los archivos
- config.py: Lee las variables de entorno y construye un diccionario con la configuración activa.
- settings.py: Define los valores predeterminados que
config.pyutiliza como respaldo.
Mediante estos archivos es posible personalizar el comportamiento del proyecto, incluyendo el entorno de ejecución y la conexión a la base de datos.