From d63abc971c1ec19352a2662d47f909ec7ccf4824 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 3 May 2025 17:26:55 +0200 Subject: [PATCH] Eliminada la ventana emergente de cmd al ejecutar los scripts en windows --- __pycache__/config_manager.cpython-312.pyc | Bin 44549 -> 44746 bytes .../script_groups/example_group/log_x1.txt | 35 ++++++++++++++ .../script_groups/example_group/log_x2.txt | 20 ++++++++ .../example_group/script_config.json | 4 +- config_manager.py | 7 +++ data/log.txt | 43 +++++++++--------- static/js/scripts.js | 7 +-- 7 files changed, 89 insertions(+), 27 deletions(-) create mode 100644 backend/script_groups/example_group/log_x1.txt create mode 100644 backend/script_groups/example_group/log_x2.txt diff --git a/__pycache__/config_manager.cpython-312.pyc b/__pycache__/config_manager.cpython-312.pyc index 99d47917c98c355a1d837f0475c0613c150e5b4d..4a46e5dd175f7ce7c76c4e5dd47f4b1aaa92aef8 100644 GIT binary patch delta 2478 zcmd5-YfKbZ6rMY?v&+6;EW69HFIL!v1yoQJp&%$yw1UsDpbf79bw$+KwJ5#otCUC7 zR&qt^gS7o+E0ESqe;CuIP5o2)NYTXb5ZlExX`3`DSkpF5n)c4D+uc%aoBrx+M0JOoC%6)1(ECT&pxvN$LUgKVMXHeiBZY*<$3Vgt&6^uwhA$Pm% zS2<|p#;X)6@E&(>=XDv-bLV%RN&wYd>H&ioaNNr0z7v7ZxU}bU04dUO+hHy(W+Wj) zFbDOWuzB`+2!hoFa|PDe_?Jb!*cF5G&~GQK`V1x$N_J6D9>XJWCQ-KFmhm#lOcs+J zEJRB~dQgO}>Gk&Hk(}sopkZY3urOGH2Gv|yVDld)YkBn_oN zEsJA}T&VS67U?_-W_gU6z)I_{Mw|C0qtAV^MFJo{27oEdicTdamGZ|!q@bl;8MGBz z{hN6L#+5?zf*~rdDwS+v6R4^gzhht)L$Hpb*`n3@E2NF&a^qFQ~veFlt#6YVoeE zTad$}qbi00`u?~Hz27YbPouGJOLircT_T3aIIIPl@IFS?utOQM;j#$o*mOZ7+8!f_ zC}lfOUWSS4SPxDWqeh&HNLEOpD?Jv_g&KPeXtJjje27YV3#x6*dcGawgf`q%6tV}c z(N_xE<0wSs8yBl37<5P0=ObhkG}L)kC(N} z8Q0Ab>lPPvqGNr|w2jcg?>}_%9Ah}FN2{RLKfMZ)Djq!~`rm7``myiC-)L05Del>$ zavVPuks}tG!NC-E;t~H9rQWh2hS6&0f>^v97oX0qu`yc(Rgj_7xE)E2RYeuho)A;O zVXBtsz#k~+fKF!HWvZDJQ0k-V|03DSGfu4Tf3I;3AUcG9ghs}8PWw_WC8j&}wCClb zvi>DNiUR%l>S<*&+tL`^v%kHyt#Ma?d$V6dfoyc+TxS*)I1-pnIMCJ@Y~9c9o0bI* zH6390H@5@=)0#C~%1gJE*H=~7*Hl)mt*${O11aDev~$1>zC~RFUf@D+4}6_At%|N* zFD%a%<4u`XG`F=hwzn|#ZF|~V*m*Q^zD?x93FI8Kq9uc3R6Mv!d> z#hWBJf}BIu_|!f)bb~xrV<$e!Pp;8XW10l)kL9gPt926NW|c387l8p9%{6z_XW6Prso&Fd9n@Gj@O za-0%d@WIR4(HB?EK*{}l)k0?YDB3+~FwIedF7(VBoUfSDI+EQ;nxh;wlfr1LkpooY=yXlna7D3zw%4KSYObgBhPu)c2 zL)2JLltsXeCCiq;Ox%f?S(X^GKhteavrQSyfo6;Qv1I6$EdDUrIqhmmU>`qsf4uiO z@7HPky5gY$*3pr5$tmy?`qT3l^)Qv5 z-PWyx>uB~aISGD9m%sXp27W5$g0ys5TM6SzLSV9Kc z+>(stW((7mvXzUBw~1Ogl!N798CxsJ94sdTS}U}X;r&*lZ4k!tKyY+38E*3kVLPck zm}zog2e!7dv4ov0RYf#?fTy=xuwB)@JRg9Npe|^Fsv+!BGq8ieZkbFTOfFl9gF97VK6FTaBz1 zH;dCn{oJJNNS2s}(}HVw)9jB&cP;8iQ=;OwVhmXo{uym0*f67Q_=tS6+oqJp)6M7< zIXp{t$h~y z>%3%jdvX+W{nd7zY31}dxQaYz&wv4z#iux4a zN1crowwosGX;I;nG~s1RpKfQ=*>N;brKlUCgA~HEr?h-_!aqL3CS7cVd*NR2 z8rlT*vR?-F;&k=dK2$G6y%Ofn5QDCHdh>%sx z`sF|%30|P``){BmnO!y^C+Qt@!en}3&@E(bKw{>I?3hGRkeM9=6OysB{zO6N_AbwF zBDYL#Cl5aG8I2(m>wBo0i~A)1T()_VLoFBlJ`8!t?sJZ1>1-Q*tu_0Ym_!i5F(8cr g!x*qcfq5MGz6L&~xdoIzbhRevzYn+!rL%xP0c@5$#{d8T diff --git a/backend/script_groups/example_group/log_x1.txt b/backend/script_groups/example_group/log_x1.txt new file mode 100644 index 0000000..cad1585 --- /dev/null +++ b/backend/script_groups/example_group/log_x1.txt @@ -0,0 +1,35 @@ +--- Log de Ejecución: x1.py --- +Grupo: example_group +Directorio de Trabajo: C:\Estudio +Inicio: 2025-05-03 17:26:22 +Fin: 2025-05-03 17:26:27 +Duración: 0:00:05.167151 +Estado: SUCCESS (Código de Salida: 0) + +--- SALIDA ESTÁNDAR (STDOUT) --- +=== Ejecutando Script de Prueba 1 === + +Configuraciones cargadas: +Nivel 1: { + "api_key": "your-api-key-here", + "model": "gpt-3.5-turbo" +} +Nivel 2: { + "input_dir": "D:/Datos/Entrada", + "output_dir": "D:/Datos/Salida", + "batch_size": 50 +} +Nivel 3: {} + +Simulando procesamiento... +Progreso: 20% +Progreso: 40% +Progreso: 60% +Progreso: 80% +Progreso: 100% + +¡Proceso completado! + +--- ERRORES (STDERR) --- +Ninguno +--- FIN DEL LOG --- diff --git a/backend/script_groups/example_group/log_x2.txt b/backend/script_groups/example_group/log_x2.txt new file mode 100644 index 0000000..8bbea37 --- /dev/null +++ b/backend/script_groups/example_group/log_x2.txt @@ -0,0 +1,20 @@ +--- Log de Ejecución: x2.py --- +Grupo: example_group +Directorio de Trabajo: C:\Estudio +Inicio: 2025-05-03 17:26:13 +Fin: 2025-05-03 17:26:14 +Duración: 0:00:01.149705 +Estado: SUCCESS (Código de Salida: 0) + +--- SALIDA ESTÁNDAR (STDOUT) --- +=== Ejecutando Script de Prueba 2 === + +Iniciando análisis de datos simulado... +Analizando lote 1... + +ERROR: Error simulado en el procesamiento +El proceso se detuvo debido a un error + +--- ERRORES (STDERR) --- +Ninguno +--- FIN DEL LOG --- diff --git a/backend/script_groups/example_group/script_config.json b/backend/script_groups/example_group/script_config.json index 8f70403..2b3959c 100644 --- a/backend/script_groups/example_group/script_config.json +++ b/backend/script_groups/example_group/script_config.json @@ -8,8 +8,6 @@ "output_dir": "D:/Datos/Salida", "batch_size": 50 }, - "level3": { - "in_dir": "ingesta" - }, + "level3": {}, "working_directory": "C:\\Estudio" } \ No newline at end of file diff --git a/config_manager.py b/config_manager.py index e510401..7e868e1 100644 --- a/config_manager.py +++ b/config_manager.py @@ -4,6 +4,7 @@ import subprocess import re import traceback from typing import Dict, Any, List, Optional +import sys # Import sys to check the platform import time # Add this import from datetime import datetime # Add this import @@ -814,6 +815,11 @@ class ConfigurationManager: start_msg = f"[{start_time.strftime('%H:%M:%S')}] Iniciando ejecución de {script_name} en {working_dir}..." broadcast_fn(start_msg) + # Determine creation flags for subprocess based on OS + creation_flags = 0 + if sys.platform == "win32": + creation_flags = subprocess.CREATE_NO_WINDOW + # Execute the script process = subprocess.Popen( ["python", "-u", script_path], # Added -u for unbuffered output @@ -825,6 +831,7 @@ class ConfigurationManager: errors="replace", bufsize=1, env=dict(os.environ, PYTHONIOENCODING="utf-8"), + creationflags=creation_flags, # Add this line ) # Real-time stdout reading and broadcasting diff --git a/data/log.txt b/data/log.txt index dc990f9..15570d3 100644 --- a/data/log.txt +++ b/data/log.txt @@ -1,21 +1,22 @@ -[17:15:12] Iniciando ejecución de x1.py en C:\Trabajo\SIDEL\EMAILs\I_ E5.007727 _ Evo On - SFSRFH300172 + SFSRFH300109 - ANDIA LACTEOS... -[17:15:14] Working directory: C:\Trabajo\SIDEL\EMAILs\I_ E5.007727 _ Evo On - SFSRFH300172 + SFSRFH300109 - ANDIA LACTEOS -[17:15:14] Input directory: C:\Trabajo\SIDEL\EMAILs\I_ E5.007727 _ Evo On - SFSRFH300172 + SFSRFH300109 - ANDIA LACTEOS -[17:15:14] Output directory: C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/00 - MASTER/EMAILs -[17:15:14] Cronologia file: C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/00 - MASTER/EMAILs\cronologia.md -[17:15:14] Attachments directory: C:\Trabajo\SIDEL\EMAILs\I_ E5.007727 _ Evo On - SFSRFH300172 + SFSRFH300109 - ANDIA LACTEOS\adjuntos -[17:15:14] Beautify rules file: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\EmailCrono\config\beautify_rules.json -[17:15:14] Found 1 .eml files -[17:15:14] Loaded 0 existing messages -[17:15:14] Processing C:\Trabajo\SIDEL\EMAILs\I_ E5.007727 _ Evo On - SFSRFH300172 + SFSRFH300109 - ANDIA LACTEOS\I_ E5.007727 _ Evo On - SFSRFH300172 + SFSRFH300109 - ANDIA LACTEOS.eml -[17:15:14] Aplicando reglas de prioridad 1 -[17:15:14] Aplicando reglas de prioridad 2 -[17:15:14] Aplicando reglas de prioridad 3 -[17:15:14] Aplicando reglas de prioridad 4 -[17:15:14] Estadísticas de procesamiento: -[17:15:14] - Total mensajes encontrados: 1 -[17:15:14] - Mensajes únicos añadidos: 1 -[17:15:14] - Mensajes duplicados ignorados: 0 -[17:15:14] Writing 1 messages to C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/00 - MASTER/EMAILs\cronologia.md -[17:15:14] Ejecución de x1.py finalizada (success). Duración: 0:00:01.628641. -[17:15:14] Log completo guardado en: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\EmailCrono\log_x1.txt +[17:26:22] Iniciando ejecución de x1.py en C:\Estudio... +[17:26:22] === Ejecutando Script de Prueba 1 === +[17:26:22] Configuraciones cargadas: +[17:26:22] Nivel 1: { +[17:26:22] "api_key": "your-api-key-here", +[17:26:22] "model": "gpt-3.5-turbo" +[17:26:22] } +[17:26:22] Nivel 2: { +[17:26:22] "input_dir": "D:/Datos/Entrada", +[17:26:22] "output_dir": "D:/Datos/Salida", +[17:26:22] "batch_size": 50 +[17:26:22] } +[17:26:22] Nivel 3: {} +[17:26:22] Simulando procesamiento... +[17:26:23] Progreso: 20% +[17:26:24] Progreso: 40% +[17:26:25] Progreso: 60% +[17:26:26] Progreso: 80% +[17:26:27] Progreso: 100% +[17:26:27] ¡Proceso completado! +[17:26:27] Ejecución de x1.py finalizada (success). Duración: 0:00:05.167151. +[17:26:27] Log completo guardado en: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\example_group\log_x1.txt diff --git a/static/js/scripts.js b/static/js/scripts.js index aaa89a6..7936e53 100644 --- a/static/js/scripts.js +++ b/static/js/scripts.js @@ -1030,8 +1030,8 @@ function fetchLogs() { fetch('/api/logs') .then(response => response.json()) .then(data => { - const logOutput = document.getElementById('log-output'); - logOutput.textContent = data.logs || 'No hay logs.'; + const logOutput = document.getElementById('log-area'); // Corregido ID a log-area + logOutput.innerHTML = data.logs || 'No hay logs.'; // Usar innerHTML para mantener formato si existe logOutput.scrollTop = logOutput.scrollHeight; // Scroll to bottom }) .catch(error => console.error('Error fetching logs:', error)); @@ -1043,7 +1043,8 @@ function clearLogs() { .then(response => response.json()) .then(data => { if (data.status === 'success') { - fetchLogs(); // Refresh logs after clearing + // Limpiar el área de log visualmente AHORA + document.getElementById('log-area').innerHTML = ''; showToast('Logs borrados correctamente.'); } else { showToast('Error al borrar los logs.', 'error');