commit b9224dd0311f7b55c96d4adda012b38831c8b691 Author: zanewalker Date: Mon Jan 5 22:11:58 2026 +0000 (Feat): Initial Commit. diff --git a/.coverage b/.coverage new file mode 100644 index 0000000..6577456 Binary files /dev/null and b/.coverage differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0f8e84d --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# Virtual environments +.venv +htmlcov/ +scripts/ +.vscode/ +.pytest_cache +.qodo \ No newline at end of file diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..c8cfe39 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.10 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6bf4988 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,221 @@ +# Contributing to FastAPI Route Loader + +Thank you for your interest in contributing to fastapi-route-loader! This document provides guidelines and instructions for contributing. + +## Development Setup + +1. **Clone the repository** + ```bash + git clone https://github.com/yourusername/fastapi-route-loader.git + cd fastapi-route-loader + ``` + +2. **Set up the development environment** + ```bash + # Run the setup script + bash scripts/setup.sh + + # Or manually: + python3 -m venv .venv + source .venv/bin/activate + pip install -e ".[dev]" + ``` + +3. **Verify the setup** + ```bash + bash scripts/verify.sh + ``` + +## Development Workflow + +### Running Tests + +```bash +# Run all tests +pytest + +# Run with coverage +pytest --cov=fastapi_route_loader --cov-report=html + +# Run specific test file +pytest tests/test_container.py + +# Run specific test +pytest tests/test_container.py::TestRouterContainer::test_add_router +``` + +### Code Quality + +We use strict linting and type checking: + +```bash +# Run ruff linter +ruff check . + +# Auto-fix issues +ruff check --fix . + +# Format code +ruff format . + +# Run type checker +pyright +``` + +### Code Style Guidelines + +- **Type Hints**: All functions must have complete type hints +- **Docstrings**: All public functions and classes must have docstrings +- **Line Length**: Maximum 88 characters (enforced by ruff) +- **Imports**: Use absolute imports, organized by ruff +- **Python Version**: Code must be compatible with Python 3.10+ + +### Commit Messages + +Follow conventional commit format: + +``` +(): + + + +