Files
textual/Makefile
2025-06-20 12:56:13 +01:00

109 lines
2.3 KiB
Makefile

run := poetry run
.PHONY: test
test:
$(run) pytest tests/ -n 16 --dist=loadgroup $(ARGS)
.PHONY: testv
testv:
$(run) pytest tests/ -vvv -n 16 --dist=loadgroup $(ARGS)
.PHONY: test-snapshot-update
test-snapshot-update:
$(run) pytest tests/ --snapshot-update -n 16 --dist=loadgroup $(ARGS)
.PHONY: test-coverage
test-coverage:
$(run) pytest tests/ --cov-report term-missing --cov=textual -n 16 --dist=loadgroup $(ARGS)
.PHONY: coverage
coverage:
$(run) coverage html
.PHONY: typecheck
typecheck:
$(run) mypy src/textual
.PHONY: format
format:
$(run) black src
.PHONY: format-check
format-check:
$(run) black --check src
.PHONY: clean-screenshot-cache
clean-screenshot-cache:
rm -rf .screenshot_cache
.PHONY: faq
faq:
$(run) faqtory build
.PHONY: docs-offline-nav
docs-offline-nav:
echo "INHERIT: mkdocs-offline.yml" > mkdocs-nav-offline.yml
grep -v "\- \"*[Bb]log" mkdocs-nav.yml >> mkdocs-nav-offline.yml
.PHONY: docs-online-nav
docs-online-nav:
echo "INHERIT: mkdocs-online.yml" > mkdocs-nav-online.yml
cat mkdocs-nav.yml >> mkdocs-nav-online.yml
.PHONY: docs-serve
docs-serve: clean-screenshot-cache docs-online-nav
TEXTUAL_THEME=dracula $(run) mkdocs serve --config-file mkdocs-nav-online.yml
rm -f mkdocs-nav-online.yml
.PHONY: docs-serve-offline
docs-serve-offline: clean-screenshot-cache docs-offline-nav
$(run) mkdocs serve --config-file mkdocs-nav-offline.yml
rm -f mkdocs-nav-offline.yml
.PHONY: docs-build
docs-build: docs-online-nav
$(run) mkdocs build --config-file mkdocs-nav-online.yml
rm -f mkdocs-nav-online.yml
.PHONY: docs-build-offline
docs-build-offline: docs-offline-nav
$(run) mkdocs build --config-file mkdocs-nav-offline.yml
rm -f mkdocs-nav-offline.yml
.PHONY: clean-offline-docs
clean-offline-docs:
rm -rf docs-offline
.PHONY: docs-deploy
docs-deploy: clean-screenshot-cache docs-online-nav
TEXTUAL_THEME=dracula $(run) mkdocs gh-deploy --config-file mkdocs-nav-online.yml
rm -f mkdocs-nav-online.yml
.PHONY: build
build: docs-build-offline
poetry build
.PHONY: clean
clean: clean-screenshot-cache clean-offline-docs
.PHONY: setup
setup:
poetry install
poetry install --extras syntax
.PHONY: update
update:
poetry update
.PHONY: install-pre-commit
install-pre-commit:
$(run) pre-commit install
.PHONY: demo
demo:
$(run) python -m textual
.PHONY: repl
repl:
$(run) python