.PHONY: install-dev lint test build publish-test publish clean

VENV=.venv
PY=$(VENV)/bin/python
PIP=$(VENV)/bin/pip
PYTEST=$(VENV)/bin/pytest
RUFF=$(VENV)/bin/ruff
MYPY=$(VENV)/bin/mypy

venv:
	python3 -m venv $(VENV)
	$(PIP) install --upgrade pip

install-dev: venv
	$(PIP) install -e .[dev]

lint:
	$(RUFF) check engine_python_sdk tests
	$(MYPY) engine_python_sdk

test:
	$(PYTEST) -v

build:
	$(PY) -m build

publish-test:
	TWINE_USERNAME=__token__ TWINE_PASSWORD=$${PYPI_TOKEN} $(PY) -m twine upload --repository testpypi dist/*

publish:
	TWINE_USERNAME=__token__ TWINE_PASSWORD=$${PYPI_TOKEN} $(PY) -m twine upload dist/*

clean:
	rm -rf build dist *.egg-info .pytest_cache .mypy_cache
