.PHONY: setup run test lint typecheck clean

# any Python >= 3.11 works; system python3 on tower-of-joy is 3.8, hence explicit
PYTHON ?= python3.12

setup:
	$(PYTHON) -m venv .venv
	.venv/bin/pip install -e ".[dev]"

setup-speech:
	.venv/bin/pip install -e ".[dev,speech]"

run:
	.venv/bin/uvicorn desklock_gateway.main:app --host 0.0.0.0 --port 8600 --reload

test:
	.venv/bin/pytest

lint:
	.venv/bin/ruff check src tests
	.venv/bin/ruff format --check src tests

typecheck:
	.venv/bin/mypy src

clean:
	rm -rf .venv .pytest_cache .ruff_cache .mypy_cache
	find . -type d -name __pycache__ -exec rm -rf {} +
