-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
71 lines (56 loc) · 2.79 KB
/
Makefile
File metadata and controls
71 lines (56 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# =============================================================================
# VARIABLES
# =============================================================================
# Utilise python3 par défaut. Peut être surchargé : make PYTHON=python3.9 install
PYTHON ?= python3
VENV_DIR ?= .venv
VENV_BIN = $(VENV_DIR)/bin
PIP = $(VENV_BIN)/pip
# =============================================================================
# CONFIGURATION
# =============================================================================
# Cible par défaut, exécutée quand on tape juste "make"
.DEFAULT_GOAL := help
# Déclare les cibles qui ne sont pas des fichiers
.PHONY: help install-dev install run test clean clean-venv
# =============================================================================
# CIBLES PRINCIPALES
# =============================================================================
help: ## ✨ Affiche ce message d'aide
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
install: venv ## 📦 Installe la librairie en mode éditable
@echo "--- Installation des dépendances du projet ---"
@$(PIP) install -e .
install-dev: venv ## 🛠️ Installe les outils de développement...
@echo "--- Installation des dépendances de développement ---"
# Note : nécessite une section [project.optional-dependencies] dans pyproject.toml
@$(PIP) install -e ".[dev]"
run: install ## ▶️ Lance le script d'exemple
@echo "--- Lancement du script d'exemple (examples/main.py) ---"
@$(VENV_BIN)/python examples/main.py
# =============================================================================
# AJOUTÉ : Cible pour lancer les tests
# =============================================================================
test: install-dev ## 🔬 Lance les tests avec pytest
@echo "--- Lancement des tests ---"
@$(VENV_BIN)/pytest -v
clean: clean-venv ## 🧹 Nettoie tous les fichiers générés (cache, etc.)
@echo "--- Nettoyage des fichiers cache Python ---"
@find . -type f -name "*.py[co]" -delete
@find . -type d -name "__pycache__" -exec rm -rf {} +
@find . -type d -name ".pytest_cache" -exec rm -rf {} +
@find . -type d -name ".ruff_cache" -exec rm -rf {} +
clean-venv: ## 🗑️ Supprime l'environnement virtuel (.venv)
@echo "--- Suppression de l'environnement virtuel ---"
@rm -rf $(VENV_DIR)
# =============================================================================
# CIBLES UTILITAIRES (non affichées dans l'aide)
# =============================================================================
venv: pyproject.toml
@if [ ! -d "$(VENV_DIR)" ]; then \
echo "--- Création de l'environnement virtuel ---"; \
$(PYTHON) -m venv $(VENV_DIR); \
echo "--- Mise à jour de pip ---"; \
$(PIP) install --upgrade pip; \
fi