Contributing#
We welcome contributions to grassp! This guide will help you get started with contributing to the project.
Getting Started#
Fork the repository on GitHub.
Clone your fork locally:
git clone https://github.com/yourusername/grassp.git cd grassp
Create a development environment:
This installs the package with the -e
option and development and documentation dependencies as well as pre-commit hooks.
make setup-develop
Testing#
Tests can be added to grassp/tests
Run the tests:
pytest grassp/tests
Code Style#
Follow PEP 8 style guidelines.
Use type hints where appropriate.
Add docstrings to all public functions.
Documentation#
Update docstrings for any changed functions.
Update tutorials if adding new features.
Build docs locally to check formatting:
cd docs # Optional (if running into errors): make clean make html
Adding New public functions#
When adding support for new functionality:
Add the code for the function in the most appropriate submodule
preprocessing
is for data filtering, enrichment, qctools
is for dimensionality reduction, classification, differential testingplotting
is for visualizationio
is for reading from diffferent sources and writing outputs
Make sure you follow the recommended code style and describe the function and parameters accurately with a docstring
Expose the function as public by importing it in the
__init__.py
file of the submoduleAdd the function to the documentation by adding it to the api documentation.
Build the documentation to check proper formatting.
Add tests and run them
Create a PR against
main