.PHONY: help install install-dev lint format test test-cov serve worker docker-up docker-down clean help: ## Affiche l'aide @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \ awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-18s\033[0m %s\n", $$1, $$2}' # ── Installation ────────────────────────────────────────────── install: ## Installer les dépendances de production pip install -r requirements.txt install-dev: ## Installer les dépendances de dev + pre-commit pip install -r requirements-dev.txt pre-commit install # ── Qualité du code ─────────────────────────────────────────── lint: ## Linter le code (ruff check + mypy) ruff check app/ tests/ mypy app/ --ignore-missing-imports format: ## Formater le code (ruff format) ruff format app/ tests/ ruff check --fix app/ tests/ # ── Tests ───────────────────────────────────────────────────── test: ## Lancer les tests python -m pytest tests/ -v --tb=short test-cov: ## Lancer les tests avec couverture python -m pytest tests/ -v --tb=short --cov=app --cov-report=term-missing --cov-report=html # ── Serveur ─────────────────────────────────────────────────── serve: ## Démarrer le serveur de développement uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 worker: ## Démarrer le worker ARQ python worker.py # ── Docker ──────────────────────────────────────────────────── docker-up: ## Démarrer tous les services Docker docker-compose up -d --build docker-down: ## Arrêter tous les services Docker docker-compose down -v # ── Nettoyage ───────────────────────────────────────────────── clean: ## Nettoyer les fichiers temporaires find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true find . -type d -name .pytest_cache -exec rm -rf {} + 2>/dev/null || true find . -type d -name .mypy_cache -exec rm -rf {} + 2>/dev/null || true find . -type d -name htmlcov -exec rm -rf {} + 2>/dev/null || true find . -name "*.pyc" -delete 2>/dev/null || true