Contributing to interactive_pipe¶
Contributions are welcome! Open a GitHub issue to report a bug or discuss a feature before starting a large change.
Development setup¶
git clone git@github.com:balthazarneveu/interactive_pipe.git
cd interactive_pipe
python -m venv venv
./venv/bin/pip install -e ".[dev,pytest,full]"
Quality gates¶
Run all of these before committing — the CI runs the same checks:
./venv/bin/python -m ruff format . # format
./venv/bin/python -m ruff check --fix . # lint (auto-fix)
./venv/bin/python -m pyright # type check (informational, non-blocking)
./venv/bin/python -m pytest test/ -v --tb=short
Conventions¶
- Small, focused commits: one logical change per commit; bundle test changes with the source changes they cover.
- PRs target
master. - Docstrings: Google style (
Args:/Returns:/Example:sections) — they feed the generated API reference. - Exceptions over asserts: raise
TypeError/ValueError/RuntimeErrorfor runtime validation. - Pipeline functions contain only function calls: the AST parser builds the execution graph from the pipeline function body, so no if/else/for/while or arithmetic there — put logic inside filters.
Documentation¶
The docs site is built with MkDocs Material:
./venv/bin/pip install -e ".[docs]"
./venv/bin/python -m mkdocs serve
Architecture notes for anyone digging into the core live in code_architecture.md.