Spaces:
Sleeping
Sleeping
| # Makefile pour FastAPI avec Poetry et Docker | |
| # Variables | |
| DOCKER_COMPOSE = docker-compose | |
| SERVICE_API = api | |
| SERVICE_DB = db | |
| PYTHON_FILES = src/project5/ tests/ docs/ | |
| PROJECT_NAME = project5 | |
| # Format des images par default | |
| FORMAT=png | |
| # Couleurs pour l'affichage | |
| GREEN = \033[0;32m | |
| YELLOW = \033[0;33m | |
| RED = \033[0;31m | |
| NC = \033[0m | |
| # Help - Affiche l'aide | |
| help: ## Affiche cette aide | |
| @echo "$(GREEN)Makefile pour $(PROJECT_NAME) - FastAPI avec Poetry$(NC)" | |
| @echo "" | |
| @echo "$(YELLOW)Developpement LOCAL (recommande):$(NC)" | |
| @grep -E '^[a-zA-Z_-]*-local:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(YELLOW)%-25s$(NC) %s\n", $$1, $$2}' | |
| # Developpement local (sans Docker) | |
| dev-local: ## Lance l'API en local avec Poetry | |
| @echo "$(GREEN)Demarrage local avec Poetry...$(NC)" | |
| poetry run uvicorn src.$(PROJECT_NAME).main:app --host 0.0.0.0 --port 8000 --reload | |
| start-local: ## Alias pour dev-local | |
| $(MAKE) dev-local | |
| install-local: ## Installe les dependances avec Poetry | |
| @echo "$(GREEN)Installation des dependances avec Poetry...$(NC)" | |
| poetry install | |
| update-local: ## Met a jour les dependances | |
| @echo "$(GREEN)Mise a jour des dependances...$(NC)" | |
| poetry update | |
| # Qualite de code (local) | |
| lint-local: ## Verifie le code avec flake8 et mypy en local | |
| @echo "$(GREEN)Verification du code en local...$(NC)" | |
| poetry run flake8 $(PYTHON_FILES) | |
| poetry run mypy $(PYTHON_FILES) --ignore-missing-imports | |
| format-local: ## Formate le code avec black et isort en local | |
| @echo "$(GREEN)Formatage du code en local...$(NC)" | |
| poetry run black $(PYTHON_FILES) | |
| poetry run isort $(PYTHON_FILES) | |
| format-check-local: ## Verifie le formatage sans modifier en local | |
| @echo "$(GREEN)Verification du formatage en local...$(NC)" | |
| poetry run black --check $(PYTHON_FILES) | |
| poetry run isort --check-only $(PYTHON_FILES) | |
| check-local: format-check-local lint-local ## Verifie le formatage et la qualite du code en local | |
| # Tests local | |
| test-local: ## Lance les tests en local avec Poetry | |
| @echo "$(GREEN)Execution des tests en local...$(NC)" | |
| poetry run pytest -v | |
| test-cov-local: ## Lance les tests avec couverture en local | |
| @echo "$(GREEN)Tests avec couverture en local...$(NC)" | |
| poetry run pytest --cov=src/$(PROJECT_NAME) --cov-report=html --cov-report=term-missing | |
| # Commande par defaut | |
| .DEFAULT_GOAL := help |