VENV_NAME ?= .venv VENV_ACTIVATE = . $(VENV_NAME)/bin/activate .DEFAULT_GOAL := help .PHONY: init init: venv .PHONY: help help: @echo "Targets:" @echo " requirements Installs dependencies" @echo " venv Creates a virtual environment and install dependencies" @echo " test Run pytest on the tests/ directory" @echo " lint Check code with flake8 and black" @echo " format Format code with black" .PHONY: requirements requirements: $(VENV_ACTIVATE); pip install -r requirements.txt .PHONY: venv venv: test -d $(VENV_NAME) || python3 -m venv $(VENV_NAME) $(VENV_ACTIVATE); pip install -r requirements.txt .PHONY: test test: venv $(VENV_ACTIVATE); pytest tests/ test-harness: git submodule update --init .PHONY: lint lint: venv $(VENV_ACTIVATE); pre-commit run -a .PHONY: format format: venv $(VENV_ACTIVATE); pre-commit run -a ruff-format .PHONY: e2e e2e: venv test-harness # NOTE: only the evaluation feature is run for now cp test-harness/features/evaluation.feature tests/features/ $(VENV_ACTIVATE); behave tests/features/ rm tests/features/*.feature