api

HTTP API (FastAPI) for linXiv — JSON backend for external clients.

1"""HTTP API (FastAPI) for linXiv — JSON backend for external clients."""
2
3from .run_api import run
4
5__all__ = ["run"]
def run() -> None:
23def run() -> None:
24    # reload=True requires the source tree — disabled in frozen PyInstaller builds
25    should_reload = not getattr(sys, "frozen", False)
26    raw_port = os.environ.get("LINXIV_PORT", "8000")
27    try:
28        port = int(raw_port)
29    except ValueError:
30        sys.stderr.write(f"[linxiv] LINXIV_PORT={raw_port!r} is not a valid integer\n")
31        sys.exit(2)
32    uvicorn.run(
33        "api.app:app",
34        host="127.0.0.1",
35        port=port,
36        reload=should_reload,
37        reload_dirs=[str(Path(__file__).resolve().parent.parent)] if should_reload else None,
38    )