Establecer y aplicar prácticas estandarizadas para el desarrollo en Python, promoviendo la colaboración entre equipos de desarrollo, QA y soporte. Esto garantizará la calidad, mantenibilidad y facilidad de soporte del código, mediante la implementación de un framework inspirado en el REFramework de UiPath.
Seguir el estándar PEP 8, la guía oficial de estilo para Python que define convenciones para la indentación, nombres de variables, longitud de líneas, organización de funciones y comentarios.
Organiza el código en módulos reutilizables y funciones con única responsabilidad, mejorando legibilidad, mantenimiento, pruebas y escalabilidad.
Usa try/except con logging estructurado y diferencia:
- 🖧 Errores de sistema → 🔁 reintentar o escalar.
- 📊 Errores de negocio → 📝 registrar y continuar.
- No incluyas credenciales ni rutas sensibles en el código.
- Usa archivos .env, JSON, YAML o variables de entorno.
- Mantén estos archivos fuera del control de versiones y ofrecer un .env.example.
- Implementar logging con niveles (DEBUG, INFO, ERROR).
- Generar logs fáciles de rastrear para soporte y auditoría.
-
Escribe pruebas unitarias con pytest.
-
Valida los cambios en un entorno de prueba staging antes de desplegar.
Estructura base del framework, inspirada en UiPath REFramework:
automation_project/
│
├── config/
│ ├── settings.json # Configuración general
│ ├── credentials.json # Credenciales (encriptadas o mock)
│
├── data/
│ ├── input/ # Archivos de entrada
│ └── output/ # Resultados
│
├── framework/
│ ├── init.py # Inicialización: logs, configs, colas
│ ├── get_transaction.py # Obtención de ítems a procesar
│ ├── process.py # Lógica principal de negocio
│ ├── handle_error.py # Manejo de excepciones
│ └── end.py # Limpieza y cierre
│
├── tests/
│ └── test_process.py # Pruebas unitarias
│
├── main.py # Punto de entrada
└── requirements.txt # Dependencias
- Initialization – Configuraciones, credenciales, logging y verificación de dependencias.
- Get Transaction Data – Obtener y validar ítems de entrada.
- Process Transaction – Ejecutar lógica de negocio, devolver
Success
,BusinessException
oSystemException
. - Handle Errors – Registrar excepciones. Reintentar o escalar según tipo.
- End Process – Generar reporte final y liberar recursos.
from framework import init, get_transaction, process, handle_error, end
if __name__ == "__main__":
config = init.load_config()
queue = init.load_queue("data/input/data.csv")
for item in queue:
try:
tx = get_transaction.run(item)
result = process.run(tx, config)
print(f"[OK] {item} -> {result}")
except Exception as e:
handle_error.run(item, e)
end.run()
- Versionamiento: usar Git con ramas claras (
feature/
,fix/
,release/
). - Entornos virtuales: crear con
venv
opoetry
. - Documentación mínima: incluir
README
con dependencias, pasos de ejecución y diagrama de flujo. - Estandarización: todos los proyectos deben seguir esta misma estructura.
Este marco asegura que todas las automatizaciones en Python tengan orden, trazabilidad, sean fáciles de mantener y permitan escalar de manera segura dentro del equipo.