SHELL := /bin/bash VENV_DIR = .venv PYTHON = $(VENV_DIR)/bin/python PIP = $(VENV_DIR)/bin/pip .PHONY: install test test-unit test-integration test-api coverage lint format format-check type-check pre-commit install: @echo "Installing dependencies..." @$(PIP) install -r requirements.txt test: @echo "Running tests..." @$(PYTHON) -m pytest test-unit: @echo "Running unit tests..." @$(PYTHON) -m pytest tests/unit -v test-integration: @echo "Running integration tests..." @$(PYTHON) -m pytest tests/integration -v test-api: @echo "Running API tests..." @$(PYTHON) -m pytest tests/api -v coverage: @echo "Running tests with coverage..." @$(PYTHON) -m pytest --cov=src --cov-report=html lint: @echo "Linting with flake8..." @$(PYTHON) -m flake8 format: @echo "Formatting with black..." @$(PYTHON) -m black . format-check: @echo "Checking formatting with black..." @$(PYTHON) -m black --check . type-check: @echo "Type checking with mypy..." @$(PYTHON) -m mypy . pre-commit: @echo "Running pre-commit checks..." @make format-check @make lint @make type-check @make test