# =====CONFIG===== PYTHON := python3 # This can't contain spaces (I think) VENV := .venv # Minimum % coverage for tests to succeed MIN_COV := 10 # By default, just create the venv when needed all: venv # =====RECIPES===== ## VENV ### Create the venv $(VENV)/bin/activate: setup.py setup.cfg @ '$(PYTHON)' -m venv '$(VENV)' @ '$(VENV)'/bin/pip install -e .[develop] ### Convenient alias for the venv venv: $(VENV)/bin/activate .PHONY: venv ## Formatting & linting ### Format the codebase using black format: venv @ '$(VENV)'/bin/black setup.py app .PHONY: format ### Lint using black & flake8 lint: venv @ '$(VENV)'/bin/flake8 setup.py app @ '$(VENV)'/bin/black --check setup.py app .PHONY: lint ## Testing test: venv @ '$(VENV)'/bin/pytest --cov=app --cov-fail-under='$(MIN_COV)' tests/ .PHONY: test ## Cleaning # Remove the venv clean: @ rm -rf '$(VENV)' .PHONY: clean # Run the Flask server # TODO run: venv