Project management is handled by uv which will automatically install development dependencies alongside core dependencies, configure a virtual environment, and install nltools into that environment in editable mode.
Setup¶
After cloning, enable the shared git hooks:
uv run poe setup-hooksThis enforces conventional commits on all commit messages. The format is:
<type>[optional scope]: <description>Allowed types: feat, fix, docs, style, refactor, perf, test, chore, ci, build, revert.
Common Commands¶
Run tests: uv run pytest
Run linting: uv run ruff check
Fix linting: uv run ruff check --fix
Build docs locally: uv run poe docs-build (or uv run poe docs-preview for a live server; both execute the tutorial notebooks, reusing MyST’s execute cache)
Edit a tutorial: uv run marimo edit docs/tutorials/<group>/<notebook>.py, then uv run poe docs-generate to re-render its .md
Generate changelog: uv run poe changelog
Add or remove dependencies: uv add/remove packagename
Add or remove development dependencies: uv add/remove --dev packagename
Build package locally: uv build