yakvrz's picture
Request zeroGPU via @spaces.GPU and lock out hot reload
c3eca8b
#!/usr/bin/env python3
"""Launch the modular Landing Site Safety Analyzer Gradio demo."""
from __future__ import annotations
import os
import spaces
# Disable Gradio Spaces hot reload/watch to avoid version pin errors on Spaces.
os.environ["GRADIO_HOT_RELOAD"] = "0"
os.environ["GRADIO_WATCH_MODE"] = "0"
from app.ui import build_ui
@spaces.GPU
def main() -> None:
# Ensure hot reload/watch stays off even if overridden upstream.
os.environ["GRADIO_HOT_RELOAD"] = "0"
os.environ["GRADIO_WATCH_MODE"] = "0"
demo = build_ui()
use_queue = os.getenv("DA_USE_QUEUE")
use_queue_flag = False if use_queue is None else use_queue.lower() not in {"0", "false", "no"}
share = os.getenv("DA_SHARE")
share_flag = False if share is None else share.lower() not in {"0", "false", "no"}
server_port_str = os.getenv("GRADIO_SERVER_PORT")
server_port = int(server_port_str) if server_port_str else None
server_port_range = None
range_env = os.getenv("GRADIO_SERVER_PORT_RANGE")
if range_env:
try:
start_str, end_str = range_env.split(",", 1)
server_port_range = (int(start_str), int(end_str))
except ValueError:
server_port_range = None
launch_kwargs = {"share": share_flag, "ssr_mode": False}
if server_port is not None:
launch_kwargs["server_port"] = server_port
if server_port_range is not None:
launch_kwargs["server_port_range"] = server_port_range
if use_queue_flag:
try:
demo.queue().launch(**launch_kwargs)
except TypeError:
launch_kwargs.pop("server_port_range", None)
demo.queue().launch(**launch_kwargs)
else:
try:
demo.launch(**launch_kwargs)
except TypeError:
launch_kwargs.pop("server_port_range", None)
demo.launch(**launch_kwargs)
if __name__ == "__main__":
main()