Skip to content

Commit 66028a0

Browse files
committed
chore(dev): fix shellcheck in bootstrap_venv.sh
1 parent 29745d3 commit 66028a0

File tree

3 files changed

+295
-0
lines changed

3 files changed

+295
-0
lines changed

requirements-dev.lock

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
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

requirements.lock

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
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

scripts/bootstrap_venv.sh

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
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+

0 commit comments

Comments
 (0)