Skip to content

Commit ecf97a6

Browse files
committed
feat: add Streamlit Cloud deployment support
1 parent 4ef2f8c commit ecf97a6

4 files changed

Lines changed: 202 additions & 3 deletions

File tree

.streamlit/config.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[server]
2+
headless = true
3+
address = "0.0.0.0"
4+
port = 8501
5+
6+
[theme]
7+
primaryColor = "#1f77b4"
8+
backgroundColor = "#ffffff"
9+
secondaryBackgroundColor = "#f0f2f6"
10+
textColor = "#262730"

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,15 @@ poetry run python src/cte/data.py --in data/sample/my_data.csv --out data/sample
5555
PYTHONPATH=src poetry run python scripts/generate_demo_persona.py
5656
```
5757

58-
### Option C: Use Docker
58+
### Option C: Use Docker (requires Docker installed)
5959

6060
```bash
6161
docker compose up --build
6262
# Open http://localhost:8501
6363
```
6464

65+
Don't have Docker? Use Option A or B instead.
66+
6567
---
6668

6769
## Why Use CTE?

requirements.txt

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
altair==5.5.0
2+
annotated-types==0.7.0
3+
anyio==4.10.0
4+
appnope==0.1.4
5+
argon2-cffi==25.1.0
6+
argon2-cffi-bindings==25.1.0
7+
arrow==1.3.0
8+
asttokens==3.0.0
9+
async-lru==2.0.5
10+
attrs==25.3.0
11+
babel==2.17.0
12+
beautifulsoup4==4.13.4
13+
bleach==6.2.0
14+
blinker==1.9.0
15+
cachetools==6.1.0
16+
certifi==2025.8.3
17+
cffi==1.17.1
18+
charset-normalizer==3.4.3
19+
click==8.2.1
20+
cloudpickle==3.1.2
21+
comm==0.2.3
22+
contourpy==1.3.3
23+
coverage==7.13.0
24+
-e git+ssh://git@github.com/deepakdeo/cte-project.git@4ef2f8c693e164ab40e8a6848312b0476f09ceee#egg=cte_project
25+
cycler==0.12.1
26+
debugpy==1.8.16
27+
decorator==5.2.1
28+
defusedxml==0.7.1
29+
distro==1.9.0
30+
executing==2.2.0
31+
fastapi==0.116.1
32+
fastjsonschema==2.21.2
33+
filelock==3.19.1
34+
fonttools==4.59.1
35+
fqdn==1.5.1
36+
fsspec==2025.7.0
37+
gitdb==4.0.12
38+
GitPython==3.1.45
39+
h11==0.16.0
40+
hf-xet==1.1.8
41+
httpcore==1.0.9
42+
httptools==0.6.4
43+
httpx==0.28.1
44+
huggingface-hub==0.34.4
45+
idna==3.10
46+
iniconfig==2.3.0
47+
ipykernel==6.30.1
48+
ipython==9.4.0
49+
ipython_pygments_lexers==1.1.1
50+
ipywidgets==8.1.7
51+
isoduration==20.11.0
52+
jedi==0.19.2
53+
Jinja2==3.1.6
54+
jiter==0.11.1
55+
joblib==1.5.1
56+
json5==0.12.1
57+
jsonpointer==3.0.0
58+
jsonschema==4.25.1
59+
jsonschema-specifications==2025.4.1
60+
jupyter==1.1.1
61+
jupyter-console==6.6.3
62+
jupyter-events==0.12.0
63+
jupyter-lsp==2.2.6
64+
jupyter_client==8.6.3
65+
jupyter_core==5.8.1
66+
jupyter_server==2.17.0
67+
jupyter_server_terminals==0.5.3
68+
jupyterlab==4.4.6
69+
jupyterlab_pygments==0.3.0
70+
jupyterlab_server==2.27.3
71+
jupyterlab_widgets==3.0.15
72+
kiwisolver==1.4.9
73+
lark==1.2.2
74+
llvmlite==0.45.1
75+
markdown-it-py==4.0.0
76+
MarkupSafe==3.0.2
77+
matplotlib==3.10.5
78+
matplotlib-inline==0.1.7
79+
mdurl==0.1.2
80+
mistune==3.1.3
81+
mpmath==1.3.0
82+
narwhals==2.1.2
83+
nbclient==0.10.2
84+
nbconvert==7.16.6
85+
nbformat==5.10.4
86+
nest-asyncio==1.6.0
87+
networkx==3.5
88+
nltk==3.9.1
89+
notebook==7.4.5
90+
notebook_shim==0.2.4
91+
numba==0.62.1
92+
numpy==2.3.2
93+
openai==2.7.1
94+
overrides==7.7.0
95+
packaging==25.0
96+
pandas==2.3.2
97+
pandocfilters==1.5.1
98+
parso==0.8.4
99+
patsy==1.0.1
100+
pexpect==4.9.0
101+
pillow==12.0.0
102+
platformdirs==4.3.8
103+
plotly==6.4.0
104+
pluggy==1.6.0
105+
prometheus_client==0.22.1
106+
prompt_toolkit==3.0.51
107+
protobuf==6.32.0
108+
psutil==7.0.0
109+
ptyprocess==0.7.0
110+
pure_eval==0.2.3
111+
pyarrow==21.0.0
112+
pycparser==2.22
113+
pydantic==2.11.7
114+
pydantic_core==2.33.2
115+
pydeck==0.9.1
116+
Pygments==2.19.2
117+
pyparsing==3.2.3
118+
pytest==8.4.2
119+
pytest-cov==4.1.0
120+
python-dateutil==2.9.0.post0
121+
python-dotenv==1.1.1
122+
python-json-logger==3.3.0
123+
pytz==2025.2
124+
PyYAML==6.0.2
125+
pyzmq==27.0.2
126+
referencing==0.36.2
127+
regex==2025.7.34
128+
requests==2.32.5
129+
rfc3339-validator==0.1.4
130+
rfc3986-validator==0.1.1
131+
rfc3987-syntax==1.1.0
132+
rich==14.1.0
133+
rpds-py==0.27.0
134+
safetensors==0.6.2
135+
scikit-learn==1.7.2
136+
scipy==1.16.1
137+
seaborn==0.13.2
138+
Send2Trash==1.8.3
139+
sentence-transformers==5.1.0
140+
shap==0.49.1
141+
shellingham==1.5.4
142+
six==1.17.0
143+
slicer==0.0.8
144+
smmap==5.0.2
145+
sniffio==1.3.1
146+
soupsieve==2.7
147+
stack-data==0.6.3
148+
starlette==0.47.2
149+
statsmodels==0.14.5
150+
streamlit==1.51.0
151+
sympy==1.14.0
152+
tenacity==9.1.2
153+
terminado==0.18.1
154+
textblob==0.19.0
155+
threadpoolctl==3.6.0
156+
tinycss2==1.4.0
157+
tokenizers==0.21.4
158+
toml==0.10.2
159+
torch==2.8.0
160+
tornado==6.5.2
161+
tqdm==4.67.1
162+
traitlets==5.14.3
163+
transformers==4.55.3
164+
typer==0.16.1
165+
types-python-dateutil==2.9.0.20250822
166+
typing-inspection==0.4.1
167+
typing_extensions==4.14.1
168+
tzdata==2025.2
169+
uri-template==1.3.0
170+
urllib3==2.5.0
171+
uvicorn==0.35.0
172+
uvloop==0.21.0
173+
vaderSentiment==3.3.2
174+
watchfiles==1.1.0
175+
wcwidth==0.2.13
176+
webcolors==24.11.1
177+
webencodings==0.5.1
178+
websocket-client==1.8.0
179+
websockets==15.0.1
180+
widgetsnbextension==4.0.14
181+
wordcloud==1.9.4
182+
xgboost==3.0.4

scripts/cte_app.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
# scripts/cte_app.py
2-
import json, datetime
2+
import sys
33
from pathlib import Path
4+
5+
# Add src to path for imports (needed for Streamlit Cloud)
6+
sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
7+
8+
import json, datetime
49
import pandas as pd
510
import streamlit as st
611
import plotly.graph_objects as go
712

8-
# ---- Local imports (cte package must be importable; run with PYTHONPATH=src) ----
13+
# ---- Local imports ----
914
from cte.persona import load_persona
1015
from cte.requirements import extract_requirements_llm, extract_requirements_hybrid, union_requirements
1116
from cte.scoring import score_requirements

0 commit comments

Comments
 (0)