Thank you for considering contributing! All contributions are welcome — bug reports, documentation fixes, new tests, and new features.
# 1. Fork the repository on GitHub, then clone your fork
git clone https://github.com/<your-username>/ForceInferencePy.git
cd ForceInferencePy
# 2. Create a virtual environment and install in editable mode with dev tools
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
# 3. Verify everything works
pytest tests/- Create a branch from
main:git checkout -b fix/descriptive-name
- Make your changes following the code style guidelines below.
- Add or update tests for any logic you change (see
tests/). - Run the test suite locally before pushing:
pytest tests/ --cov=force_inference
- Open a pull request against
mainwith a clear description of what changed and why.
- Python ≥ 3.8 compatibility is required. Avoid
X | Yunion syntax and built-in generic aliases (list[int]) — usefrom __future__ import annotationsortypingequivalents instead. - Docstrings follow NumPy style for public functions.
- Line length ≤ 100 characters (enforced by
ruff). - Run
ruff check force_inference/before committing; fix any reported issues.
Please open a GitHub issue and include:
- Python version and OS.
- Minimal reproducible example (ideally with a synthetic label image, not a real data file).
- Full traceback if an exception is raised.
This project follows the Contributor Covenant Code of Conduct v2.1. Be kind and constructive.