From 31936e0c38f040a8de122fee61d05e6e0a1a7ad5 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 8 Feb 2025 19:37:03 -0300 Subject: [PATCH] =?UTF-8?q?A=C3=B1adir=20Home?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Home.md | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 Home.md diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..363d95a --- /dev/null +++ b/Home.md @@ -0,0 +1,117 @@ +# Gestor de Configuraciones y Ejecución de Scripts + +## 1. Resumen y Objetivo + +El software es una aplicación web desarrollada con **Flask** y **Tailwind CSS** (vía [cdn.tailwindcss.com](https://cdn.tailwindcss.com)), diseñada para ejecutarse en una única PC con Windows sin requerir autenticación. La aplicación tiene dos objetivos principales: + +- **Gestión de Configuraciones:** + Permite editar y mantener configuraciones en tres niveles: + - **Nivel 1:** Configuración general (ej. modelo LLM, API keys). + - **Nivel 2:** Configuración específica para cada grupo de scripts. + - **Nivel 3:** Configuración del entorno de trabajo donde se ejecutan los scripts. + +- **Ejecución de Scripts:** + Facilita la ejecución de scripts Python agrupados en directorios, pasando como parámetros las configuraciones de los tres niveles y capturando su salida en un bloque de logs. + +--- + +## 2. Requisitos Funcionales + +### 2.1 Gestión de Configuraciones + +La aplicación gestiona tres niveles de configuración: + +#### Nivel 1 – Configuración General +- **Propósito:** + Almacenar parámetros globales (ej. modelo LLM, API keys). +- **Archivos:** + - `data.json`: Contiene los valores actuales. + - `esquema.json`: Define la estructura y validaciones. +- **Ubicación:** + Directorio `/data`. + +#### Nivel 2 – Configuración del Grupo de Scripts +- **Propósito:** + Parámetros específicos para cada grupo de scripts (por ejemplo, rutas y opciones de ejecución). +- **Archivos:** + - `data.json`: Configuración específica de cada grupo, ubicado en + `backend/script_groups/{script_groups_name}`. + - `esquema.json`: Archivo único que define el esquema común para todos los grupos, ubicado en + `backend/script_groups/`. + - **Archivo de Directorio de Trabajo:** + La cadena de texto que indica el camino al directorio de trabajo se almacena en un archivo separado, por ejemplo, `work_dir.txt`, ubicado en + `backend/script_groups/{script_groups_name}/work_dir.txt`. + +#### Nivel 3 – Configuración del Directorio de Trabajo +- **Propósito:** + Almacenar parámetros específicos del entorno de trabajo donde se ejecutan los scripts. +- **Archivos:** + - `data.json`: Contiene la configuración del directorio de trabajo. + - `esquema.json`: Define la estructura y validaciones para este nivel, ubicado en + `backend/script_groups/{script_groups_name}`. +- **Nota:** + La cadena del directorio de trabajo **no se almacena en este nivel**, ya que se gestiona desde el Nivel 2 en un archivo separado. + +--- + +### 2.2 Ejecución de Scripts + +- **Detección de Scripts:** + Cada grupo de scripts, ubicado en `backend/script_groups/{script_groups_name}`, contiene archivos Python nombrados `x1.py`, `x2.py`, ..., `xn.py`. + +- **Descripción de Scripts:** + Se extrae una breve descripción de cada script (por ejemplo, del docstring o comentario inicial). + +- **Ejecución:** + Cada script se ejecuta mediante un botón "Ejecutar" que le pasa como parámetros los datos actuales de los tres niveles (1, 2 y 3). + +- **Captura de Salida:** + Toda la salida que se genere en consola durante la ejecución se redirige al bloque de logs de la aplicación. + +--- + +### 2.3 Bloque de Logs + +- **Visualización:** + Un área en la página principal muestra en tiempo real la salida de la ejecución de los scripts y otras actividades. +- **Acción:** + Un botón "Limpiar" permite borrar el contenido del log. + +--- + +### 2.4 Persistencia + +- **Combo List:** + La selección del grupo de scripts se mantiene persistente entre recargas de la página. +- **Directorio de Trabajo:** + La ruta al directorio de trabajo se almacena en `backend/script_groups/{script_groups_name}/work_dir.txt` y se mantiene persistente. + +--- + +## 3. Estructura de Archivos y Directorios + +La organización de archivos y directorios es la siguiente: + +```plaintext +/data + ├── data.json # Configuración general (Nivel 1) + └── esquema.json # Esquema para Nivel 1 + +/backend + └── script_groups + ├── esquema.json # Esquema común para Nivel 2 (configuración del grupo) + ├── {script_groups_name_1} + │ ├── data.json # Configuración del grupo (Nivel 2) + │ ├── work_dir.txt # Cadena de texto con el directorio de trabajo + │ ├── x1.py # Script 1 + │ ├── x2.py # Script 2 + │ └── esquema.json # Esquema para Nivel 3 (configuración del directorio de trabajo) + ├── {script_groups_name_2} + │ ├── data.json # Configuración del grupo (Nivel 2) + │ ├── work_dir.txt # Cadena de texto con el directorio de trabajo + │ ├── x1.py + │ └── esquema.json # Esquema para Nivel 3 + └── ... (otros grupos) + +/(Directorio de Trabajo Variable) + └── data.json # Configuración del directorio de trabajo (Nivel 3)