Contributions are welcome — bug reports, fixes, new methods, and documentation improvements alike. For anything substantial, please open an issue first so we can discuss the design.
git clone https://github.com/PlanetFormationLab/eddy.git
cd eddy
pip install -e ".[test,docs]"This installs eddy in editable mode together with the testing and
documentation extras. Python 3.10+ is required.
If you plan to submit a pull request, consider enabling the pre-commit hooks so style/lint checks run on every commit:
pip install pre-commit
pre-commit installpytest -vThe smoke tests under tests/ reuse FITS files from
docs/tutorials/ as fixtures. The data files are gitignored; the
tutorials' download cells (or the URLs in .github/workflows/ci.yml)
will fetch them on demand. Tests that need a missing fixture are
skipped rather than failed locally.
Mark slow tests with @pytest.mark.slow so they can be excluded with
pytest -m "not slow".
We run ruff for linting and basic
style. The config lives in pyproject.toml under [tool.ruff]; run
ruff check .
ruff check . --fix # apply auto-fixable suggestionsCI rejects PRs with lint errors. The rule set is intentionally minimal
(pycodestyle E/W + pyflakes F); we don't enforce import sorting
or naming conventions.
- Branch from
masterfor new work. Use descriptive branch names (e.g.fix-rotationmap-pa-wrap). - Keep commits focused and self-describing. The body should explain why, not just what.
- Reference the relevant issue number in the commit message or PR description when applicable.
- Make sure
pytestandruff check .pass locally before opening the PR. - New user-visible behaviour (new arguments, deprecated signatures,
changed defaults) should add an entry to
CHANGELOG.md. - Tutorials in
docs/tutorials/are executed notebooks. If your change affects an existing tutorial's output, re-execute it withjupyter nbconvert --execute --inplace docs/tutorials/<name>.ipynbbefore committing.
For anything else, open an issue or contact Richard Teague directly.