mirror of
https://github.com/gradio-app/gradio.git
synced 2024-12-21 02:19:59 +08:00
cc0cff893f
- black formatting - isort formatting
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
import importlib
|
|
import json
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
import threading
|
|
import time
|
|
|
|
import requests
|
|
|
|
LAUNCH_PERIOD = 60
|
|
GRADIO_DEMO_DIR = "../../demo"
|
|
sys.path.insert(0, GRADIO_DEMO_DIR)
|
|
|
|
with open("demos.json") as demos_file:
|
|
demo_port_sets = json.load(demos_file)
|
|
|
|
|
|
def launch_demo(demo_folder):
|
|
subprocess.call(f"cd {demo_folder} && python run.py", shell=True)
|
|
|
|
|
|
for demo_name, port in demo_port_sets:
|
|
demo_folder = os.path.join(GRADIO_DEMO_DIR, demo_name)
|
|
demo_file = os.path.join(demo_folder, "run.py")
|
|
with open(demo_file, "r") as file:
|
|
filedata = file.read()
|
|
filedata = filedata.replace(f"iface.launch()", f"iface.launch(server_port={port})")
|
|
with open(demo_file, "w") as file:
|
|
file.write(filedata)
|
|
demo_thread = threading.Thread(target=launch_demo, args=(demo_folder,))
|
|
demo_thread.start()
|
|
|
|
start_time = time.time()
|
|
while True:
|
|
for demo_name, _ in demo_port_sets:
|
|
r = requests.head(f"http://localhost:80/demo/{demo_name}/")
|
|
if r.status_code != 200:
|
|
print(demo_name, "down")
|
|
if time.time() - start_time > LAUNCH_PERIOD:
|
|
raise ValueError(f"{demo_name} is down.")
|
|
else:
|
|
print(demo_name, "up")
|
|
time.sleep(10)
|