Skip to content

Contributing to fastEIT

Every contribution is welcome - whether it is a bug report, a new parser, a documentation fix, or just a question. This is an open project and there is no wrong way to get involved, as long as you bring curiosity and a collaborative attitude. If you are unsure whether your idea fits, open an issue and let's talk about it.

Reporting bugs

Open a GitHub issue with: - Python version and OS - Minimal code that reproduces the problem - Full traceback

Requesting features

Open a GitHub issue describing the use case and the expected behaviour.

Development setup

git clone https://github.com/Kernel236/fastEIT.git
cd fastEIT
pip install -e ".[dev]"

Code style

This project uses ruff for linting and formatting.

ruff check src/ tests/
ruff format src/ tests/

GitHub Actions runs ruff check and ruff format --check on every pull request to dev or main, and on every push to those branches.

Documentation

The site is built with MkDocs from docs/ and from the docstrings of the code (Google style). To see it while editing:

pip install -e ".[docs]"
mkdocs serve

A pull request is checked with mkdocs build --strict: a broken link or a docstring parameter that is not in the signature fails the build.

Running tests

pytest tests/

Tests that require real patient files are skipped automatically if the files are not present (they are gitignored). Use pytest -rs to see which tests were skipped and why.

Adding a new parser

See docs/parsing_layer.md for a step-by-step recipe covering detection, schema definition, parser class, loader registration, and the testing checklist.

Pull request process

Please open a GitHub issue to discuss your idea before opening a PR.

  1. Fork the repository and create a branch from dev
  2. Make your changes with tests
  3. Ensure ruff check, ruff format --check and pytest pass locally
  4. Open a PR targeting dev (not main)
  5. Describe what changed and why

Code of Conduct

This project follows the Contributor Covenant.