Spaces:
Sleeping
Sleeping
| """Hugging Face Space entrypoint.""" | |
| from __future__ import annotations | |
| import os | |
| from pathlib import Path | |
| import socket | |
| import sys | |
| ROOT = Path(__file__).resolve().parent | |
| SRC = ROOT / "src" | |
| if str(SRC) not in sys.path: | |
| sys.path.insert(0, str(SRC)) | |
| from thirawat_demo.space_ui import build_demo | |
| def _is_port_free(port: int) -> bool: | |
| with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: | |
| sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | |
| return sock.connect_ex(("127.0.0.1", port)) != 0 | |
| def _resolve_server_port() -> int: | |
| """Use fixed PORT in managed environments; choose first free local port.""" | |
| port_env = os.getenv("PORT") | |
| if port_env: | |
| return int(port_env) | |
| gradio_port_env = os.getenv("GRADIO_SERVER_PORT") | |
| if gradio_port_env: | |
| return int(gradio_port_env) | |
| for candidate in range(7860, 7871): | |
| if _is_port_free(candidate): | |
| return candidate | |
| return 7860 | |
| demo = build_demo() | |
| if __name__ == "__main__": | |
| port = _resolve_server_port() | |
| print(f"Starting THIRAWAT Mapper Demo on http://127.0.0.1:{port}", flush=True) | |
| demo.launch(server_name="0.0.0.0", server_port=port, share=False, ssr_mode=False) | |