Thank you for your interest in contributing! This guide covers everything you need to get started.
git clone https://github.com/inference-stack-llc/electripy-studio.git
cd electripy-studio
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"| Check | Command |
|---|---|
| Lint | ruff check . |
| Format | black --check . |
| Type-check | mypy src/ |
| Tests | pytest tests/ -v |
| Docs | mkdocs build --strict |
CI runs all five on Python 3.11 and 3.12.
- Fork the repo and create a feature branch from
main. - Make your changes. Follow the existing code style (frozen dataclasses,
__all__exports,__slots__on service classes,Sequence/Mappingin Protocol signatures). - Add or update tests — we target offline, deterministic unit tests.
- Run the full quality-gate suite locally.
- Open a pull request with a clear description of the change.
Use clear, imperative-mood subject lines:
feat(ai): add token budget overflow metric
fix(policy_gateway): handle empty replacement string
docs: add model router user guide
ElectriPy follows a hexagonal (ports & adapters) architecture:
domain.py— frozen value objects and enumsports.py— Protocol-based abstractionsadapters.py— concrete implementationsservices.py— orchestration logicerrors.py— module-specific exceptions
When adding a new module, mirror this structure.
Open a GitHub issue with:
- A minimal reproduction or failing test case
- Python version and OS
- Full traceback (if applicable)
All contributors are expected to follow our Code of Conduct.