Spaces:
Running
on
Zero
Running
on
Zero
import os | |
import socket | |
import subprocess | |
import time | |
import requests | |
import sys | |
import json | |
now_dir = os.getcwd() | |
sys.path.append(now_dir) | |
config_file = os.path.join(now_dir, "assets", "config.json") | |
env_path = os.path.join(now_dir, "env", "python.exe") | |
host = "localhost" | |
port = 8000 | |
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
sock.settimeout(2) | |
def start_flask(): | |
try: | |
sock.connect((host, port)) | |
print( | |
f"Something is listening on port {port}; Probably the Flask server is already running." | |
) | |
print("Trying to start it anyway") | |
sock.close() | |
requests.post("http://localhost:8000/shutdown") | |
time.sleep(3) | |
script_path = os.path.join(now_dir, "assets", "flask", "routes.py") | |
try: | |
subprocess.Popen( | |
[env_path, script_path], creationflags=subprocess.CREATE_NEW_CONSOLE | |
) | |
except Exception as e: | |
print(f"Failed to start the Flask server") | |
print(e) | |
except Exception as e: | |
sock.close() | |
script_path = os.path.join(now_dir, "assets", "flask", "routes.py") | |
try: | |
subprocess.Popen( | |
[env_path, script_path], creationflags=subprocess.CREATE_NEW_CONSOLE | |
) | |
except Exception as e: | |
print("Failed to start the Flask server") | |
print(e) | |
def load_config_flask(): | |
with open(config_file, "r") as file: | |
config = json.load(file) | |
return config["flask_server"] | |
def save_config(value): | |
with open(config_file, "r", encoding="utf8") as file: | |
config = json.load(file) | |
config["flask_server"] = value | |
with open(config_file, "w", encoding="utf8") as file: | |
json.dump(config, file, indent=2) | |