Contributing
We welcome contributions to CatVision! This document provides guidelines for contributing.
Getting Started
Fork the repository on GitHub
Clone your fork locally
Create a new branch for your feature or bugfix
Make your changes
Run tests to ensure everything works
Submit a pull request
Development Setup
Install the package in development mode with all dependencies:
git clone https://github.com/aryashah2k/catvision.git
cd catvision
pip install -e ".[dev]"
Running Tests
Run the test suite using pytest:
pytest
Run tests with coverage:
pytest --cov=catvision --cov-report=html
Code Style
We use Black for code formatting and flake8 for linting.
Format your code:
black src/catvision tests
Check for linting issues:
flake8 src/catvision tests
Type Checking
We use mypy for type checking:
mypy src/catvision
Pull Request Guidelines
Write clear, descriptive commit messages
Include tests for new features
Update documentation as needed
Ensure all tests pass
Follow the existing code style
Keep pull requests focused on a single feature or fix
Reporting Issues
If you find a bug or have a feature request:
Check if the issue already exists
If not, create a new issue on GitHub
Provide a clear description and reproduction steps
Include relevant code snippets or error messages
Documentation
Documentation is built using Sphinx. To build the docs locally:
cd docs
make html
The built documentation will be in docs/_build/html.
License
By contributing, you agree that your contributions will be licensed under the MIT License.