Contributing

We welcome contributions to CatVision! This document provides guidelines for contributing.

Getting Started

  1. Fork the repository on GitHub

  2. Clone your fork locally

  3. Create a new branch for your feature or bugfix

  4. Make your changes

  5. Run tests to ensure everything works

  6. 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:

  1. Check if the issue already exists

  2. If not, create a new issue on GitHub

  3. Provide a clear description and reproduction steps

  4. 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.