We welcome your contributions! Whether it's reporting a bug, discussing ideas, submitting fixes, or proposing new features, we appreciate your input.
We use GitHub to host code, track issues, and review pull requests.
All changes should be proposed through pull requests:
- Fork the repository and create your branch from
master. - If you've added new functionality, include tests.
- Update the documentation if there are any changes to APIs or usage.
- Ensure all tests pass.
- Verify that your code adheres to linting and formatting standards.
- Submit your pull request!
When you submit code changes, you agree that your contributions will be licensed under the Apache License 2.0.
Please use GitHub Issues to report bugs and suggest improvements. Make sure to include:
- A brief summary of the issue
- Steps to reproduce the problem
- Expected behavior
- Actual behavior
- Additional notes or related references
- Use 4 spaces per indentation level
- Maximum line length is 120 characters
- Follow PEP 8 style guidelines
- Use Ruff for formatting and linting (applied automatically with pre-commit hooks, or manually if needed)
- Include type hints as per PEP 484
- Use Google-style docstrings
- Ensure code is clean, readable, and maintainable
- Order imports as follows:
- Future imports
- Standard library imports
- Third-party imports
- Local imports
- Avoid wildcard imports
- Use absolute imports unless relative imports simplify the code
- Write comments in English
- Explain the intention behind code, not what the code does
- Use full sentences with proper capitalization and punctuation
- Variables and functions:
lower_case_with_underscores - Classes:
CapWords - Constants:
ALL_CAPS_WITH_UNDERSCORES - Modules:
alllowercase
- Install dependencies using
poetry install. - Run tests with
pytest tests. - Use
pre-commit installto set up pre-commit hooks. This ensures that Ruff and other checks run before each commit.
We use pytest for running tests. Ensure that all tests pass before submitting a pull request.
- Cookiecutter Documentation
- GitHub Flow Guide
- Python Packaging Guide
- Poetry Documentation
- Ruff Documentation
- Google Python Style Guide
Thank you for your contributions!