export DATASETTE_SECRET := "not_a_secret" # Run tests and linters @default: test lint # Setup project @init: uv sync # Run pytest with supplied options @test *options: init uv run pytest -n auto {{options}} # Install Playwright browser support, Chromium by default @playwright-install browser="chromium": uv run --group playwright playwright install {{browser}} # Install all Playwright browsers used by the test suite @playwright-install-all: uv run --group playwright playwright install chromium firefox webkit # Run Playwright tests, Chromium by default @playwright browser="chromium" *options: uv run --group playwright pytest tests/test_playwright.py --playwright --browser {{browser}} {{options}} # Run Playwright tests against all supported browsers @playwright-all *options: uv run --group playwright pytest tests/test_playwright.py --playwright --browser chromium --browser firefox --browser webkit {{options}} @codespell: uv run codespell README.md --ignore-words docs/codespell-ignore-words.txt uv run codespell docs/*.rst --ignore-words docs/codespell-ignore-words.txt uv run codespell datasette -S datasette/static --ignore-words docs/codespell-ignore-words.txt uv run codespell tests --ignore-words docs/codespell-ignore-words.txt # Run linters: black, ruff, cog @lint: codespell uv run black datasette tests --check uv run ruff check datasette tests uv run cog --check README.md docs/*.rst # Apply ruff fixes @fix: uv run ruff check --fix datasette tests # Rebuild docs with cog @cog: uv run cog -r README.md docs/*.rst # Serve live docs on localhost:8000 @docs: cog blacken-docs uv run make -C docs livehtml # Build docs as static HTML @docs-build: cog blacken-docs rm -rf docs/_build && cd docs && uv run make html # Apply Black @black: uv run black datasette tests # Apply blacken-docs @blacken-docs: uv run blacken-docs -l 60 docs/*.rst # Apply prettier @prettier: npm run fix # Format code with both black and prettier @format: black prettier blacken-docs @serve *options: uv run sqlite-utils create-database data.db uv run sqlite-utils create-table data.db docs id integer title text --pk id --ignore uv run python -m datasette data.db --root --reload {{options}}