.PHONY: all test run lint clean

### Default target(s)
all: test

### Perform static analysis
lint:
	uv tool run ruff check --select I --fix .
	uv tool run ruff format .
	uv tool run ruff check . --fix

### Run the project
run: lint
	uv run main.py

### Run unit tests
test: lint
	uv run pytest -s -v


### Continous testing loop
watch:
	uv run ptw
	
### Clean up generated files
clean:
	uv clean
	rm -fr .ruff_cache .venv

### Install this tool locally
install:
	uv tool install --upgrade .
