diff --git a/api/Makefile b/api/Makefile index 9070f007f..172630b25 100644 --- a/api/Makefile +++ b/api/Makefile @@ -9,14 +9,14 @@ PYLINT_ARG := libretime_api MYPY_ARG := libretime_api BANDIT_ARG := --exclude '*/tests/*' libretime_api || true +export DJANGO_SETTINGS_MODULE=libretime_api.settings.testing + format: .format lint: .format-check .pylint .mypy .bandit clean: .clean test: $(VENV) - source $(VENV)/bin/activate - export DJANGO_SETTINGS_MODULE=libretime_api.settings.testing - pytest -v \ + $(VENV)/bin/pytest -v \ --numprocesses=$(CPU_CORES) \ --color=yes \ --cov-config=pyproject.toml \ @@ -27,9 +27,7 @@ test: $(VENV) SCHEMA_FILE ?= schema.yml schema: $(VENV) - source $(VENV)/bin/activate - export DJANGO_SETTINGS_MODULE=libretime_api.settings.testing - libretime-api spectacular --file $(SCHEMA_FILE) + $(VENV)/bin/libretime-api spectacular --file $(SCHEMA_FILE) if command -v npx > /dev/null; then npx prettier --write $(SCHEMA_FILE); fi schema-foreach-commit: diff --git a/tools/python.mk b/tools/python.mk index 86f7efdb8..6103928b3 100644 --- a/tools/python.mk +++ b/tools/python.mk @@ -1,5 +1,3 @@ -.ONESHELL: - .DEFAULT_GOAL := install SHELL := bash CPU_CORES := $(shell N=$$(nproc); echo $$(( $$N > 4 ? 4 : $$N ))) @@ -24,48 +22,40 @@ SHARED_DEV_REQUIREMENTS = \ VENV = .venv $(VENV): python3 -m venv $(VENV) - source $(VENV)/bin/activate $(MAKE) install # SETUPTOOLS_ENABLE_FEATURES=legacy-editable is required to work # around https://github.com/PyCQA/pylint/issues/7306 install: $(VENV) - source $(VENV)/bin/activate - pip install --upgrade pip setuptools wheel - pip install $(SHARED_DEV_REQUIREMENTS) - [[ -z "$(PIP_INSTALL)" ]] || SETUPTOOLS_ENABLE_FEATURES=legacy-editable pip install $(PIP_INSTALL) + $(VENV)/bin/pip install --upgrade pip setuptools wheel + $(VENV)/bin/pip install $(SHARED_DEV_REQUIREMENTS) + [[ -z "$(PIP_INSTALL)" ]] || SETUPTOOLS_ENABLE_FEATURES=legacy-editable $(VENV)/bin/pip install $(PIP_INSTALL) .PHONY: .format .format: $(VENV) - source $(VENV)/bin/activate - black . - isort . --combine-as --profile black + $(VENV)/bin/black . + $(VENV)/bin/isort . --combine-as --profile black .PHONY: .format-check .format-check: $(VENV) - source $(VENV)/bin/activate - black . --check - isort . --combine-as --profile black --check + $(VENV)/bin/black . --check + $(VENV)/bin/isort . --combine-as --profile black --check .PHONY: .pylint .pylint: $(VENV) - source $(VENV)/bin/activate - pylint --jobs=$(CPU_CORES) --output-format=colorized --recursive=true $(PYLINT_ARG) + $(VENV)/bin/pylint --jobs=$(CPU_CORES) --output-format=colorized --recursive=true $(PYLINT_ARG) .PHONY: .mypy .mypy: $(VENV) - source $(VENV)/bin/activate - mypy $(MYPY_ARG) + $(VENV)/bin/mypy $(MYPY_ARG) .PHONY: .bandit .bandit: $(VENV) - source $(VENV)/bin/activate - bandit -r $(BANDIT_ARG) + $(VENV)/bin/bandit -r $(BANDIT_ARG) .PHONY: .pytest .pytest: $(VENV) - source $(VENV)/bin/activate - pytest -v \ + $(VENV)/bin/pytest -v \ --numprocesses=$(CPU_CORES) \ --color=yes \ --cov-config=pyproject.toml \