-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
35 lines (24 loc) · 1.09 KB
/
Copy pathMakefile
File metadata and controls
35 lines (24 loc) · 1.09 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
# misdirection-proxy Makefile
.PHONY: help install test test-verbose lint format typecheck check clean all
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
install: ## Install package in dev mode with all dev dependencies
pip install -e ".[dev]"
test: ## Run all tests
python -m pytest tests/ -v --tb=short
test-verbose: ## Run tests with coverage report
python -m pytest tests/ -v --tb=long --cov=src --cov-report=term-missing
lint: ## Run ruff linter
ruff check src tests
format: ## Format code with black + ruff
black src tests
ruff check --fix src tests
typecheck: ## Run mypy type checker
mypy src
check: lint typecheck test ## Run all checks (lint + typecheck + test)
clean: ## Remove build artifacts and cache
rm -rf build/ dist/ *.egg-info .mypy_cache .ruff_cache .pytest_cache
find src tests -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true
find src tests -name "*.pyc" -delete 2>/dev/null || true
all: format check ## Format, lint, typecheck, and test