Contributing
Contributions to chunkipy are welcome!
Whether you want to fix a bug, improve documentation, or propose a new feature, your help is appreciated.
If you find a bug or have a feature request, please open an issue on GitHub. To contribute code, fork the repository, create a feature branch, make your changes, and submit a pull request. Please make sure to include appropriate tests and follow the official Python style guide (PEP 8).
Development setup
You can set up your development environment using uv (recommended) or pip.
1. Clone the repository
git clone https://github.com/gioelecrispo/chunkipy.git
cd chunkipy
2. Create a virtual environment
You can use any of the following:
# Using Python built-in venv
python -m venv .venv && source .venv/bin/activate
# Or using uv
uv venv && source .venv/bin/activate
3. Install development dependencies
pip install uv
uv sync --all-extras --group test --group docs
pip install -e .[dev,all] # Editable install with docs+test+all extras
Linting & formatting
We use ruff and black to keep the codebase consistent.
Run the following before submitting a PR:
ruff check chunkipy
black chunkipy
Testing
We use pytest as the main testing framework.
uv run pytest --cov=chunkipy --cov-report=term-missing
Documentation
chunkipy uses sphinx to build the documentation, leveraging autosummary for code reference
and sphinx-multiversion to provide versioned docs.
To build docs locally:
uv sync --group docs
uv run sphinx-multiversion docs/source docs/build/html
Then open docs/build/html/index.html in your browser.
Submitting your PR
Before submitting your pull request, please ensure that: - All tests pass locally (pytest ✅) - Code is linted (ruff + black ✅) - Documentation builds without warnings (sphinx-multiversion ✅) - Commit messages are clear and descriptive
Once ready, open a pull request and link any related issue.
Thank you for helping improve chunkipy 🎉