Table of Contents
- LocalScriptsWeb
- Descripción General
- Objetivos
- Arquitectura
- Convenciones y Estándares
- Flujo de Trabajo
- Ventajas del Diseño
- Desarrollo de Nuevos Scripts
- Limitaciones y Consideraciones
- Requerimientos Técnicos
- Instalación y Configuración
- Desarrollo y Contribución
- Estado Actual y Roadmap
- Conclusión
LocalScriptsWeb
Descripción General
LocalScriptsWeb es una aplicación web local diseñada para simplificar la gestión y ejecución de scripts Python en entornos Windows. El proyecto surge de la necesidad de unificar diferentes scripts y funciones utilizadas en distintos proyectos, proporcionando una interfaz web centralizada para su gestión y ejecución.
Objetivos
- Unificar scripts de diferentes proyectos en una única aplicación
- Minimizar el tiempo de desarrollo para nuevos grupos de scripts
- Facilitar la reutilización de funciones comunes
- Proporcionar una interfaz web intuitiva y fácil de usar
- Mantener configuraciones específicas por directorio de trabajo
- Gestionar perfiles globales para configuraciones comunes
Arquitectura
Estructura del Proyecto
LocalScriptsWeb/
├── backend/
│ ├── app.py # Aplicación Flask principal
│ ├── core/ # Funciones compartidas
│ │ ├── profile_manager.py
│ │ ├── workdir_config.py
│ │ └── directory_handler.py
│ └── script_groups/ # Grupos de scripts
│ ├── group1/
│ │ ├── x1.py
│ │ └── x2.py
│ └── group2/
│ ├── x1.py
│ └── x2.py
├── frontend/
│ ├── static/
│ │ ├── css/
│ │ └── js/
│ └── templates/
└── data/ # Datos locales
└── profiles.json
Componentes Principales
1. Gestor de Scripts
- Descubrimiento automático de scripts (x1.py a x10.py)
- Organización por grupos funcionales
- Sistema de descripción basado en docstrings
- Ejecución unificada con acceso a configuraciones
2. Sistema de Perfiles
- Gestión de configuraciones globales
- Almacenamiento de API keys y preferencias de LLM
- Configuración de directorios de trabajo
- Interfaz de edición y gestión
3. Configuración por Directorio
- Configuraciones específicas por grupo de scripts
- Almacenamiento local en script_config.json
- Versionado y seguimiento de cambios
- Independencia entre directorios de trabajo
Convenciones y Estándares
Estructura de Scripts
"""
Nombre del Script
Descripción detallada del script y su funcionalidad
"""
from ..base_script import BaseScript
class MiScript(BaseScript):
def run(self, work_dir: str, profile: Dict[str, Any]) -> Dict[str, Any]:
# Implementación
return {"status": "success", "data": {...}}
Configuración del Directorio
{
"version": "1.0",
"created_at": "2024-02-07T10:00:00",
"updated_at": "2024-02-07T10:00:00",
"group_settings": {
"group_id": {
// Configuración específica del grupo
}
}
}
Perfiles
{
"id": "default",
"name": "Default Profile",
"work_dir": "",
"llm_settings": {
"model": "gpt-4",
"temperature": 0.7,
"api_key": ""
}
}
Flujo de Trabajo
-
Configuración Inicial
- Selección o creación de perfil
- Configuración de API keys y preferencias globales
- Selección de directorio de trabajo
-
Ejecución de Scripts
- Selección del grupo de scripts
- Configuración específica del grupo (si es necesaria)
- Ejecución y monitoreo de resultados
-
Gestión de Configuraciones
- Edición de perfiles globales
- Modificación de configuraciones por directorio
- Actualización de parámetros específicos por grupo
Ventajas del Diseño
-
Modularidad
- Separación clara entre grupos de scripts
- Reutilización de código común
- Fácil adición de nuevos grupos
-
Mantenibilidad
- Estructura consistente para todos los scripts
- Configuraciones centralizadas
- Documentación integrada
-
Usabilidad
- Interfaz web intuitiva
- Configuración visual de parámetros
- Retroalimentación inmediata
-
Extensibilidad
- Fácil adición de nuevos scripts
- Sistema de plugins potencial
- Soporte para diferentes tipos de tareas
Desarrollo de Nuevos Scripts
-
Crear Nuevo Grupo
- Crear directorio en script_groups/
- Definir scripts x1.py, x2.py, etc.
- Documentar funcionalidad en docstrings
-
Implementar Scripts
- Heredar de BaseScript
- Implementar método run()
- Definir configuraciones necesarias
-
Configuración
- Definir parámetros en script_config.json
- Implementar validación si es necesaria
- Documentar opciones de configuración
Limitaciones y Consideraciones
-
Entorno
- Diseñado para Windows
- Ejecución local únicamente
- Requiere Python instalado
-
Seguridad
- Sin autenticación de usuarios
- Almacenamiento local de API keys
- Acceso solo desde localhost
-
Rendimiento
- Limitado por recursos locales
- Procesamiento secuencial de scripts
- Interface web para monitoreo
Requerimientos Técnicos
Software
- Python 3.8+
- Flask
- Navegador web moderno
Librerías Python
flask>=2.0.0
python-dotenv>=1.0.0
requests>=2.25.0
Instalación y Configuración
- Preparación del Entorno
git clone [repository-url]
cd LocalScriptsWeb
python -m venv venv
source venv/bin/activate # o venv\Scripts\activate en Windows
pip install -r requirements.txt
- Configuración Inicial
python backend/app.py
- Acceso
- Abrir navegador
- Acceder a http://localhost:5000
- Crear perfil inicial
Desarrollo y Contribución
-
Guías de Contribución
- Seguir convenciones de nomenclatura
- Documentar nuevo código
- Mantener estructura modular
-
Testing
- Pruebas unitarias para scripts
- Validación de configuraciones
- Testing de interfaz
Estado Actual y Roadmap
Versión Actual (1.0.0)
- Funcionalidad base implementada
- Sistema de perfiles
- Gestión de configuraciones por directorio
- Interfaz web básica
Próximas Características
- Sistema de logging mejorado
- Ejecución asíncrona de scripts
- Mejoras en la interfaz de usuario
- Sistema de plugins
Conclusión
LocalScriptsWeb proporciona una solución práctica para la gestión y ejecución de scripts Python, con un enfoque en la reutilización de código y la facilidad de uso. La arquitectura modular y las convenciones establecidas facilitan la adición de nuevos scripts y el mantenimiento del sistema.