Development Setup#
This guide covers the complete development environment setup for NeuRodent.
Prerequisites#
Python 3.10+
uv - Fast Python package manager (install uv)
make (optional, for convenience commands)
Quick Start#
git clone https://github.com/josephdong1000/neurodent.git
cd neurodent
make setup
This runs uv sync --all-extras (installs all dependencies) and uv run pre-commit install (sets up git hooks).
Manual Setup#
If you don’t have make:
git clone https://github.com/josephdong1000/neurodent.git
cd neurodent
uv sync --all-extras
uv run pre-commit install
If you don’t have uv:
git clone https://github.com/josephdong1000/neurodent.git
cd neurodent
pip install -e ".[dev]"
pre-commit install
Makefile Commands#
Command |
Description |
|---|---|
|
Install dependencies + pre-commit hooks |
|
Run test suite with pytest |
|
Build documentation to |
|
Build docs with live reload (auto-refresh on changes) |
|
Remove build artifacts |
Pre-commit Hooks#
NeuRodent uses pre-commit hooks to maintain code quality.
These run automatically before each git commit.
- nbstripout
Strips output cells from Jupyter notebooks before commits. This keeps git history clean and avoids merge conflicts from cell outputs and metadata.
Note
Notebooks in
notebooks/are excluded from stripping (for development use). Onlydocs/notebooks are stripped.
To run hooks manually on all files:
uv run pre-commit run --all-files
Notebook Documentation#
Documentation notebooks in docs/ are executed during Sphinx builds to generate figures.
Outputs are stripped from git but regenerated at build time.
If a notebook cell fails during build, execution stops at that cell and preceding outputs are shown.
To skip execution of specific cells, add the skip-execution tag in JupyterLab.