.PHONY: help install build test run demo clean lint
DJANGO_SETTINGS ?= test_settings
PYTHON ?= .venv/bin/python
UV ?= uv
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-14s\033[0m %s\n", $$1, $$2}'
venv:
$(UV) venv
install: venv
$(UV) pip install -e .
build:
$(UV) build
test:
$(PYTHON) -m django test npdt --settings=$(DJANGO_SETTINGS) -v2
test-quick:
$(PYTHON) -m django test npdt --settings=$(DJANGO_SETTINGS) -v2 --no-input --failfast
run:
$(PYTHON) manage.py runserver 0.0.0.0:8000 --settings=$(DJANGO_SETTINGS)
migrate:
$(PYTHON) manage.py migrate --settings=$(DJANGO_SETTINGS)
createsuperuser:
$(PYTHON) manage.py createsuperuser --settings=$(DJANGO_SETTINGS)
shell:
$(PYTHON) manage.py shell --settings=$(DJANGO_SETTINGS)
demo:
$(PYTHON) -m http.server 8081 --directory ../javascript
clean:
rm -rf build/ dist/ *.egg-info .venv/ .pytest_cache/
rm -f test_db.sqlite3
find . -name '*.pyc' -delete
find . -name '__pycache__' -type d -exec rm -rf {} + 2>/dev/null || true
lint:
ruff check npdt/ example/ test_settings.py test_urls.py manage.py 2>/dev/null || \
echo "No linter installed. Run: uv pip install ruff"
check: lint test