Thank you for your interest in contributing! The guidelines below keep the codebase consistent and the review process smooth.
git clone https://github.com/albertonogales/AMBER.git
cd AMBER
pip install -e ".[dev]" # installs runtime + dev dependenciesRun the test suite to make sure everything is green before you start:
pytestOpen a GitHub Issue and include:
- A minimal reproducible example.
- The full traceback.
- Your Python version and AMBER version (
python -c "import AMBER; print(AMBER.__version__)").
- Fork the repository and create a branch from
main:git checkout -b feat/my-feature
- Write your code. Keep changes focused — one feature or fix per pull request.
- Add or update tests in
tests/. The coverage must not drop below 99 %. - Run the full suite before pushing:
pytest --tb=short
- Open a Pull Request against
mainwith a clear description of what changed and why.
- Follow PEP 8.
- Docstrings use the
:param/:return:Sphinx style (see existing code). - No inline comments unless the why is non-obvious.
- No emojis.
- Add the scalar function and the
*_distance_matrixfunction inAMBER/distances.py. - Register both in
SIGNAL_DISTANCE_MATRIXand add the name toAVAILABLE_DISTANCES. - Add tests in
tests/test_distances.pyfollowing the existing pattern (identity, non-negativity, matrix shape, matrix-vs-scalar agreement).
- Add a branch in
Map.__normalizeinAMBER/map.py. - Add tests in
tests/test_map.pyunderTestNormalization.
For questions, open a GitHub Discussion or e-mail alberto.nogales@uah.es.