File tree Expand file tree Collapse file tree 3 files changed +295
-0
lines changed
Expand file tree Collapse file tree 3 files changed +295
-0
lines changed Original file line number Diff line number Diff line change 1+ aiohappyeyeballs==2.6.1
2+ aiohttp==3.12.15
3+ aiohttp-retry==2.9.1
4+ aiosignal==1.4.0
5+ alembic==1.16.5
6+ annotated-types==0.7.0
7+ anyio==4.10.0
8+ asyncer==0.0.8
9+ attrs==25.3.0
10+ babel==2.17.0
11+ backoff==2.2.1
12+ black==24.8.0
13+ blinker==1.9.0
14+ cachetools==6.2.0
15+ certifi==2025.8.3
16+ cfgv==3.4.0
17+ charset-normalizer==3.4.3
18+ click==8.2.1
19+ cloudpickle==3.1.1
20+ colorama==0.4.6
21+ colorlog==6.9.0
22+ coverage==7.10.6
23+ Deprecated==1.2.18
24+ diskcache==5.6.3
25+ distlib==0.4.0
26+ distro==1.9.0
27+ dspy==3.0.3
28+ dspy-ai==3.0.3
29+ fastuuid==0.12.0
30+ filelock==3.19.1
31+ Flask==3.0.3
32+ Flask-Limiter==3.8.0
33+ frozenlist==1.7.0
34+ fsspec==2025.9.0
35+ gepa==0.0.7
36+ ghp-import==2.1.0
37+ gunicorn==22.0.0
38+ h11==0.16.0
39+ hf-xet==1.1.9
40+ httpcore==1.0.9
41+ httpx==0.28.1
42+ huggingface-hub==0.34.4
43+ identify==2.6.14
44+ idna==3.10
45+ importlib_metadata==8.7.0
46+ iniconfig==2.1.0
47+ itsdangerous==2.2.0
48+ Jinja2==3.1.6
49+ jiter==0.10.0
50+ joblib==1.5.2
51+ json_repair==0.50.1
52+ jsonschema==4.25.1
53+ jsonschema-specifications==2025.9.1
54+ limits==5.5.0
55+ litellm==1.77.0
56+ magicattr==0.1.6
57+ Mako==1.3.10
58+ Markdown==3.9
59+ markdown-it-py==4.0.0
60+ MarkupSafe==3.0.2
61+ mdurl==0.1.2
62+ mergedeep==1.3.4
63+ mkdocs==1.6.0
64+ mkdocs-get-deps==0.2.0
65+ mkdocs-material==9.5.31
66+ mkdocs-material-extensions==1.3.1
67+ multidict==6.6.4
68+ mypy==1.11.2
69+ mypy_extensions==1.1.0
70+ nodeenv==1.9.1
71+ numpy==2.3.3
72+ openai==1.107.0
73+ optuna==4.5.0
74+ ordered-set==4.1.0
75+ orjson==3.11.3
76+ packaging==25.0
77+ paginate==0.5.7
78+ pathspec==0.12.1
79+ platformdirs==4.4.0
80+ pluggy==1.6.0
81+ pre-commit==3.8.0
82+ propcache==0.3.2
83+ pydantic==2.8.2
84+ pydantic_core==2.20.1
85+ Pygments==2.19.2
86+ PyJWT==2.10.1
87+ pymdown-extensions==10.16.1
88+ pytest==8.3.2
89+ pytest-asyncio==0.23.8
90+ pytest-cov==5.0.0
91+ python-dateutil==2.9.0.post0
92+ python-dotenv==1.0.1
93+ PyYAML==6.0.2
94+ pyyaml_env_tag==1.1
95+ referencing==0.36.2
96+ regex==2025.9.1
97+ requests==2.32.3
98+ rich==13.7.1
99+ rpds-py==0.27.1
100+ ruff==0.6.3
101+ shellingham==1.5.4
102+ six==1.17.0
103+ sniffio==1.3.1
104+ SQLAlchemy==2.0.43
105+ tenacity==9.1.2
106+ tiktoken==0.11.0
107+ tokenizers==0.22.0
108+ tqdm==4.67.1
109+ twilio==9.2.4
110+ typer==0.12.3
111+ types-PyYAML==6.0.12.20240808
112+ types-requests==2.32.0.20240712
113+ typing_extensions==4.15.0
114+ urllib3==2.5.0
115+ virtualenv==20.34.0
116+ watchdog==6.0.0
117+ Werkzeug==3.1.3
118+ wrapt==1.17.3
119+ xxhash==3.5.0
120+ yarl==1.20.1
121+ zipp==3.23.0
Original file line number Diff line number Diff line change 1+ aiohappyeyeballs==2.6.1
2+ aiohttp==3.12.15
3+ aiohttp-retry==2.9.1
4+ aiosignal==1.4.0
5+ alembic==1.16.5
6+ annotated-types==0.7.0
7+ anyio==4.10.0
8+ asyncer==0.0.8
9+ attrs==25.3.0
10+ babel==2.17.0
11+ backoff==2.2.1
12+ black==24.8.0
13+ blinker==1.9.0
14+ cachetools==6.2.0
15+ certifi==2025.8.3
16+ cfgv==3.4.0
17+ charset-normalizer==3.4.3
18+ click==8.2.1
19+ cloudpickle==3.1.1
20+ colorama==0.4.6
21+ colorlog==6.9.0
22+ coverage==7.10.6
23+ Deprecated==1.2.18
24+ diskcache==5.6.3
25+ distlib==0.4.0
26+ distro==1.9.0
27+ dspy==3.0.3
28+ dspy-ai==3.0.3
29+ fastuuid==0.12.0
30+ filelock==3.19.1
31+ Flask==3.0.3
32+ Flask-Limiter==3.8.0
33+ frozenlist==1.7.0
34+ fsspec==2025.9.0
35+ gepa==0.0.7
36+ ghp-import==2.1.0
37+ gunicorn==22.0.0
38+ h11==0.16.0
39+ hf-xet==1.1.9
40+ httpcore==1.0.9
41+ httpx==0.28.1
42+ huggingface-hub==0.34.4
43+ identify==2.6.14
44+ idna==3.10
45+ importlib_metadata==8.7.0
46+ iniconfig==2.1.0
47+ itsdangerous==2.2.0
48+ Jinja2==3.1.6
49+ jiter==0.10.0
50+ joblib==1.5.2
51+ json_repair==0.50.1
52+ jsonschema==4.25.1
53+ jsonschema-specifications==2025.9.1
54+ limits==5.5.0
55+ litellm==1.77.0
56+ magicattr==0.1.6
57+ Mako==1.3.10
58+ Markdown==3.9
59+ markdown-it-py==4.0.0
60+ MarkupSafe==3.0.2
61+ mdurl==0.1.2
62+ mergedeep==1.3.4
63+ mkdocs==1.6.0
64+ mkdocs-get-deps==0.2.0
65+ mkdocs-material==9.5.31
66+ mkdocs-material-extensions==1.3.1
67+ multidict==6.6.4
68+ mypy==1.11.2
69+ mypy_extensions==1.1.0
70+ nodeenv==1.9.1
71+ numpy==2.3.3
72+ openai==1.107.0
73+ optuna==4.5.0
74+ ordered-set==4.1.0
75+ orjson==3.11.3
76+ packaging==25.0
77+ paginate==0.5.7
78+ pathspec==0.12.1
79+ platformdirs==4.4.0
80+ pluggy==1.6.0
81+ pre-commit==3.8.0
82+ propcache==0.3.2
83+ pydantic==2.8.2
84+ pydantic_core==2.20.1
85+ Pygments==2.19.2
86+ PyJWT==2.10.1
87+ pymdown-extensions==10.16.1
88+ pytest==8.3.2
89+ pytest-asyncio==0.23.8
90+ pytest-cov==5.0.0
91+ python-dateutil==2.9.0.post0
92+ python-dotenv==1.0.1
93+ PyYAML==6.0.2
94+ pyyaml_env_tag==1.1
95+ referencing==0.36.2
96+ regex==2025.9.1
97+ requests==2.32.3
98+ rich==13.7.1
99+ rpds-py==0.27.1
100+ ruff==0.6.3
101+ shellingham==1.5.4
102+ six==1.17.0
103+ sniffio==1.3.1
104+ SQLAlchemy==2.0.43
105+ tenacity==9.1.2
106+ tiktoken==0.11.0
107+ tokenizers==0.22.0
108+ tqdm==4.67.1
109+ twilio==9.2.4
110+ typer==0.12.3
111+ types-PyYAML==6.0.12.20240808
112+ types-requests==2.32.0.20240712
113+ typing_extensions==4.15.0
114+ urllib3==2.5.0
115+ virtualenv==20.34.0
116+ watchdog==6.0.0
117+ Werkzeug==3.1.3
118+ wrapt==1.17.3
119+ xxhash==3.5.0
120+ yarl==1.20.1
121+ zipp==3.23.0
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+ set -euo pipefail
3+
4+ # Bootstrap a local Python venv and install dependencies.
5+ # Usage:
6+ # scripts/bootstrap_venv.sh [dev|prod] [PYTHON_BIN]
7+ # Examples:
8+ # scripts/bootstrap_venv.sh dev # uses python3.12 if available, else python3
9+ # scripts/bootstrap_venv.sh prod python3 # explicit interpreter
10+
11+ MODE=" ${1:- dev} "
12+ PY_BIN=" ${2:- } "
13+
14+ if [[ -z " ${PY_BIN} " ]]; then
15+ if command -v python3.12 > /dev/null 2>&1 ; then
16+ PY_BIN=" python3.12"
17+ else
18+ PY_BIN=" python3"
19+ fi
20+ fi
21+
22+ echo " [bootstrap] Using Python: ${PY_BIN} ($( ${PY_BIN} -V) )"
23+
24+ VENV_DIR=" venv"
25+ if [[ -d " ${VENV_DIR} " ]]; then
26+ echo " [bootstrap] Removing existing ${VENV_DIR} "
27+ rm -rf " ${VENV_DIR} "
28+ fi
29+
30+ ${PY_BIN} -m venv " ${VENV_DIR} "
31+ # shellcheck source=/dev/null
32+ source " ${VENV_DIR} /bin/activate"
33+
34+ python -V
35+ pip install -U pip
36+
37+ if [[ " ${MODE} " == " dev" ]]; then
38+ echo " [bootstrap] Installing development dependencies"
39+ pip install -r requirements-dev.txt
40+ else
41+ echo " [bootstrap] Installing production dependencies"
42+ pip install -r requirements.txt
43+ fi
44+
45+ echo " [bootstrap] Writing lock files"
46+ pip freeze > requirements.lock
47+
48+ if [[ " ${MODE} " == " dev" ]]; then
49+ pip freeze > requirements-dev.lock
50+ fi
51+
52+ echo " [bootstrap] Done. Activate with: source venv/bin/activate"
53+
You can’t perform that action at this time.
0 commit comments