Abhishek
fix: disable Gradio watchdog in HF Spaces to prevent port collisions
8c671b6
Raw
History Blame Contribute Delete
1.45 kB
from __future__ import annotations
import os
import socket
import sys
from pathlib import Path
import os
# Disable Gradio auto-reload watchdog in HF Spaces to prevent port collisions
os.environ.pop("GRADIO_WATCH_DIRS", None)
ROOT_DIR = Path(__file__).resolve().parent
SRC_DIR = ROOT_DIR / "src"
if str(SRC_DIR) not in sys.path:
sys.path.insert(0, str(SRC_DIR))
os.environ.setdefault("APP_ROOT_DIR", str(ROOT_DIR))
os.environ.setdefault("DATA_DIR", str(ROOT_DIR / "data"))
os.environ.setdefault("MODEL_REGISTRY_PATH", str(ROOT_DIR / "configs" / "model_registry.yaml"))
os.environ.setdefault("MODEL_CACHE_DIR", str(ROOT_DIR / "models"))
os.environ.setdefault("ARTIFACT_DIR", str(ROOT_DIR / "data" / "artifacts"))
import shutil
sqlite_src = ROOT_DIR / "data" / "sqlite" / "p1.sqlite3"
sqlite_tmp = Path("/tmp/p1.sqlite3")
if sqlite_src.exists() and not sqlite_tmp.exists():
shutil.copy2(sqlite_src, sqlite_tmp)
os.environ.setdefault("SQLITE_PATH", str(sqlite_tmp))
from apps.p1_elder_paperwork.app import main as p1_main # noqa: E402
def _pick_port() -> int:
port_env = os.environ.get("PORT")
if port_env:
return int(port_env)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.bind(("127.0.0.1", 0))
return sock.getsockname()[1]
def main() -> int:
os.environ.setdefault("PORT", str(_pick_port()))
return p1_main()
if __name__ == "__main__":
raise SystemExit(main())