64 lines
1.9 KiB
Makefile
64 lines
1.9 KiB
Makefile
|
|
.PHONY: help install format lint typecheck test openapi dev all-checks clean
|
||
|
|
|
||
|
|
# Use activated environment if available, otherwise use .venv explicitly
|
||
|
|
PYTHON := $(shell command -v python 2>/dev/null || echo .venv/bin/python)
|
||
|
|
PIP := $(shell command -v pip 2>/dev/null || echo .venv/bin/pip)
|
||
|
|
|
||
|
|
help:
|
||
|
|
@echo "Available targets:"
|
||
|
|
@echo " install - Create venv and install dependencies"
|
||
|
|
@echo " format - Format code with ruff"
|
||
|
|
@echo " lint - Lint code with ruff"
|
||
|
|
@echo " typecheck - Type check with mypy"
|
||
|
|
@echo " test - Run tests with pytest"
|
||
|
|
@echo " openapi - Export OpenAPI schema"
|
||
|
|
@echo " dev - Run development server"
|
||
|
|
@echo " all-checks - Run all quality checks"
|
||
|
|
@echo " clean - Remove venv and caches"
|
||
|
|
@echo ""
|
||
|
|
@echo "Note: Make sure to activate your venv first: source .venv/bin/activate"
|
||
|
|
|
||
|
|
install:
|
||
|
|
@echo "Creating virtual environment..."
|
||
|
|
python3 -m venv .venv
|
||
|
|
@echo "Installing dependencies..."
|
||
|
|
.venv/bin/pip install --upgrade pip
|
||
|
|
.venv/bin/pip install -r requirements.txt
|
||
|
|
.venv/bin/pip install -r dev-requirements.txt
|
||
|
|
@echo "Installing pre-commit hooks..."
|
||
|
|
.venv/bin/pre-commit install
|
||
|
|
@echo "Done! Activate with: source .venv/bin/activate"
|
||
|
|
|
||
|
|
format:
|
||
|
|
$(PYTHON) -m ruff format .
|
||
|
|
|
||
|
|
lint:
|
||
|
|
$(PYTHON) -m ruff check .
|
||
|
|
|
||
|
|
typecheck:
|
||
|
|
$(PYTHON) -m mypy .
|
||
|
|
|
||
|
|
test:
|
||
|
|
$(PYTHON) -m pytest -q
|
||
|
|
|
||
|
|
openapi:
|
||
|
|
$(PYTHON) scripts/export_openapi.py
|
||
|
|
|
||
|
|
dev:
|
||
|
|
$(PYTHON) -m uvicorn main:app --reload
|
||
|
|
|
||
|
|
all-checks: lint typecheck test
|
||
|
|
@echo "Running format check..."
|
||
|
|
$(PYTHON) -m ruff format --check .
|
||
|
|
@echo "Exporting OpenAPI schema..."
|
||
|
|
$(PYTHON) scripts/export_openapi.py
|
||
|
|
@echo ""
|
||
|
|
@echo "✓ All checks passed!"
|
||
|
|
|
||
|
|
clean:
|
||
|
|
rm -rf .venv
|
||
|
|
find . -type d -name __pycache__ -exec rm -rf {} +
|
||
|
|
find . -type d -name .pytest_cache -exec rm -rf {} +
|
||
|
|
find . -type d -name .mypy_cache -exec rm -rf {} +
|
||
|
|
find . -type d -name .ruff_cache -exec rm -rf {} +
|