1.7 KiB
Contributing
Setup
Use the shared Python 3.12 virtual environment:
source ~/.pyenv/python3.12-venv/bin/activate
python -m pip install -r requirements.txt
If you install another package for repository work, add its direct dependency
to requirements.txt.
Repository layout
- Put notebooks in
notebooks/. - Put reusable Python and Bash utilities in
scripts/. - Put local input files in
data/. - Put generated artifacts in
results/.
The contents of data/ and results/ are ignored. Do not force-add test
databases, raw test results, generated exports, or notebook outputs.
__SAV__/ is unrelated legacy material and is outside the active project.
Working with notebooks
Notebooks must execute from top to bottom in a fresh kernel. Use relative paths, document data assumptions, and move reusable logic into tested scripts.
Before handing off a change:
python -m pytest
python -m pytest --nbmake notebooks
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace path/to/notebook.ipynb
Run only the checks relevant to the files present in the repository, and report anything that could not be run.
Review requirement
Python scripts, Bash scripts, and notebook code-cell changes require review and
approval by a separate background agent. Address material findings and rerun
affected checks before completion. If a reviewer is unavailable, the change may
be handed off only with the status review pending.
Documentation, dependency declarations, and ignore rules do not require this background review when no Python, Bash, or notebook code cells changed.
The master branch is not protected. That does not remove the review
requirement or authorize an agent to commit or push without an explicit request.