File size: 1,216 Bytes
2e38127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# src/streamlit_app.py
"""
Small shim for Hugging Face Spaces compatibility.

Some Spaces start Streamlit with `streamlit run src/streamlit_app.py`.
If that happens, this shim forwards execution to the real launcher
at the repository root (streamlit_app.py), which in turn runs src/app.py.
"""
from pathlib import Path
import runpy
import sys
import os

ROOT = Path(__file__).parent.parent.resolve()

# Diagnostic print so we can see in HF container logs
print("shim: running src/streamlit_app.py -> delegating to ../streamlit_app.py")
sys.stdout.flush()

# If root streamlit_app.py exists, run it; otherwise directly run src/app.py as fallback
root_launcher = ROOT.joinpath("streamlit_app.py")
if root_launcher.exists():
    runpy.run_path(str(root_launcher), run_name="__main__")
else:
    # fallback: directly run the app (useful for local sanity checks)
    app_script = ROOT.joinpath("src", "app.py")
    if not app_script.exists():
        raise FileNotFoundError(f"Neither {root_launcher} nor {app_script} exist")
    # set a little diagnostic in the logs
    print("shim: root launcher missing — running src/app.py directly")
    sys.stdout.flush()
    runpy.run_path(str(app_script), run_name="__main__")