Skip to content

Commit 5607f22

Browse files
committed
Refactor dependency files to remove version pinning and improve clarity. Update fiscalberry_app.py to enhance shutdown process with multiple exit strategies and improved logging.
1 parent 84eede8 commit 5607f22

File tree

4 files changed

+89
-15
lines changed

4 files changed

+89
-15
lines changed

requirements.cli.txt

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
1-
python-escpos[all]==3.1
2-
python-socketio[client]==5.11.4
3-
requests==2.32.3
4-
aiohttp==3.10.2
5-
argparse==1.4.0
6-
appdirs==1.4.4
7-
platformdirs==4.2.2
1+
# Fiscalberry CLI Dependencies
2+
# Última actualización: 2025-07-19
3+
# Usa las últimas versiones estables de todas las dependencias
4+
5+
# Core dependencies
6+
python-escpos[all]
7+
python-socketio[client]
8+
requests
9+
aiohttp
10+
11+
# Utility libraries
12+
appdirs
13+
platformdirs
14+
15+
# Message broker
816
pika
17+
18+
# Windows-specific dependencies
919
pywin32; sys_platform == 'win32'

requirements.kivy.txt

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,22 @@
1-
kivy[base]==2.3.1
1+
# Fiscalberry GUI (Kivy) Dependencies
2+
# Última actualización: 2025-07-19
3+
# Usa las últimas versiones estables de todas las dependencias
4+
5+
# GUI Framework
6+
kivy[base]
7+
8+
# Core dependencies (from CLI)
9+
python-escpos[all]
10+
python-socketio[client]
11+
requests
12+
aiohttp
13+
14+
# Utility libraries
15+
appdirs
16+
platformdirs
17+
18+
# Message broker
19+
pika
20+
21+
# Windows-specific dependencies
22+
pywin32; sys_platform == 'win32'

requirements.txt

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1-
python-escpos[all]==3.1
2-
python-socketio[client]==5.11.4
3-
requests==2.32.3
4-
platformdirs==4.2.2
1+
# Fiscalberry CLI Dependencies
2+
# Última actualización: 2025-07-19
3+
# Usa las últimas versiones estables de todas las dependencias
4+
5+
# Core dependencies
6+
python-escpos[all]
7+
python-socketio[client]
8+
requests
9+
aiohttp
10+
11+
# Utility libraries
12+
appdirs
13+
platformdirs
14+
15+
# Message broker
516
pika
17+
18+
# Windows-specific dependencies
619
pywin32; sys_platform == 'win32'

src/fiscalberry/ui/fiscalberry_app.py

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import time
1616
import sys
1717
import os
18+
import signal
1819

1920

2021
from fiscalberry.version import VERSION
@@ -135,10 +136,12 @@ def on_stop_service(self):
135136
# Evitar múltiples llamadas
136137
if self._stopping:
137138
return
138-
self._stopping = True
139139

140-
# Usar _stop_services_only() para evitar que Kivy se cierre automáticamente
140+
print("Deteniendo servicios desde la GUI...")
141+
142+
# Solo detener los servicios, no forzar salida de la aplicación
141143
self._service_controller._stop_services_only()
144+
print("Servicios detenidos desde la GUI")
142145

143146

144147
def on_stop(self):
@@ -153,11 +156,38 @@ def on_stop(self):
153156
self._service_controller._stop_services_only()
154157
print("Servicios detenidos...")
155158

156-
# Usar Clock.schedule_once para forzar la salida después de la limpieza
159+
# Usar múltiples estrategias para forzar la salida
157160
Clock.schedule_once(self._force_exit, 0.1)
158161

159162
def _force_exit(self, dt):
160163
"""Método auxiliar para forzar la salida después de la limpieza."""
164+
import signal
165+
import threading
166+
167+
print("Forzando salida de la aplicación...")
168+
169+
# Estrategia 1: Detener el Clock de Kivy
170+
try:
171+
Clock.stop()
172+
except:
173+
pass
174+
175+
# Estrategia 2: Terminar threads activos
176+
try:
177+
for thread in threading.enumerate():
178+
if thread != threading.current_thread() and thread.is_alive():
179+
if hasattr(thread, '_stop'):
180+
thread._stop()
181+
except:
182+
pass
183+
184+
# Estrategia 3: Usar signal para terminar el proceso
185+
try:
186+
os.kill(os.getpid(), signal.SIGTERM)
187+
except:
188+
pass
189+
190+
# Estrategia 4: Exit forzado como último recurso
161191
os._exit(0)
162192

163193

0 commit comments

Comments
 (0)