ai-time-machine / scripts /run_gradio_modal.py
manikandanj's picture
Prepare AI Time Machine hackathon Space
5862322 verified
Raw
History Blame Contribute Delete
1.58 kB
from __future__ import annotations
import os
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
SRC = ROOT / "src"
ROOT_ENV = ROOT / ".env"
LOCAL_ENV = ROOT / "data" / "local.env"
if str(SRC) not in sys.path:
sys.path.insert(0, str(SRC))
def main() -> int:
_load_local_env(ROOT_ENV, override=True)
_load_local_env(LOCAL_ENV, override=True)
os.environ.setdefault("TIME_MACHINE_ADAPTER_PROFILE", "modal")
from time_machine.application.container import create_container
from time_machine.ui.gradio_app import create_app
container = create_container()
demo = create_app(container)
server_name = os.getenv("GRADIO_SERVER_NAME", "0.0.0.0")
server_port = int(os.getenv("GRADIO_SERVER_PORT", "7862"))
demo.launch(
server_name=server_name,
server_port=server_port,
prevent_thread_lock=True,
)
print(f"AI Time Machine running on http://127.0.0.1:{server_port}", flush=True)
demo.block_thread()
return 0
def _load_local_env(path: Path, *, override: bool = False) -> None:
if not path.exists():
return
for raw_line in path.read_text(encoding="utf-8").splitlines():
line = raw_line.strip()
if not line or line.startswith("#") or "=" not in line:
continue
key, value = line.split("=", 1)
key = key.strip()
value = value.strip().strip('"').strip("'")
if key and (override or key not in os.environ):
os.environ[key] = value
if __name__ == "__main__":
raise SystemExit(main())