.PHONY: install check test run clean

install:
	@uv sync
	@uv run pre-commit install

check:
	@uv lock --locked
	@uv run ruff check .
	@uv run ruff format --check .
	@uv run mypy src/main.py
	@uv run deptry .

test:
	@uv run python -m pytest --cov --cov-config=pyproject.toml --cov-report=term-missing

run:
	@uv run python src/main.py

clean:
	@rm -rf .venv __pycache__ .pytest_cache .mypy_cache .ruff_cache