import socket import threading import time import webview from backend.server import HOST, PORT, app def run_server(): app.run(host=HOST, port=PORT, debug=False, use_reloader=False, threaded=True) def wait_for_server(timeout=10): start = time.time() while time.time() - start < timeout: try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(1) if sock.connect_ex((HOST, PORT)) == 0: sock.close() return True sock.close() except OSError: pass time.sleep(0.1) return False if __name__ == "__main__": threading.Thread(target=run_server, daemon=True).start() if not wait_for_server(): raise SystemExit("Server Flask non risponde: avvio interrotto") webview.create_window( "PowerBricks — prototipo", f"http://{HOST}:{PORT}", width=1280, height=800, min_size=(900, 600), ) webview.start()