#!/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()