PYTHON ?= python
BUILD_FLAGS ?=
PREVIEW_ARGS ?=
FREEZE_ARGS ?=
PYTEST_ARGS ?=
.PHONY: install-dev lint format test test-preview test-preview-fuzz build check freeze-types
install-dev:
	$(PYTHON) -m pip install -e '.[dev]'
lint:
	$(PYTHON) -m ruff check .
	$(PYTHON) -m ruff format --check .
	$(PYTHON) -m mypy
format:
	$(PYTHON) -m ruff check --fix .
	$(PYTHON) -m ruff format .
test:
	$(PYTHON) -m pytest $(PYTEST_ARGS)
test-preview:
	$(PYTHON) scripts/preview_behavior.py $(PREVIEW_ARGS)
test-preview-fuzz:
	$(PYTHON) scripts/preview_behavior.py --fuzz-rounds 1 $(PREVIEW_ARGS)
build:
	$(PYTHON) -m build $(BUILD_FLAGS)
check: lint test build

freeze-types:
	$(PYTHON) scripts/freeze_realtime_types.py $(FREEZE_ARGS)
	$(PYTHON) -m ruff format src/avartha/types
	$(PYTHON) -m ruff check --fix --ignore E501 src/avartha/types
	$(PYTHON) -m ruff format src/avartha/types
