Simple HTML Generation https://minihtml.trendels.name/
1# Generate, format, typecheck and test code
2all: codegen format typecheck test doctest
3
4# Run all checks (for CI)
5check: check-codegen check-format typecheck
6
7# Run code generation
8codegen:
9 uv run cog --check @codegen.txt || uv run cog -r @codegen.txt
10
11# Check that generated code is up to date
12check-codegen:
13 uv run cog --check @codegen.txt
14
15# Lint and format all code
16format:
17 uv run ruff check --fix
18 uv run ruff format
19
20# Check that code is linted and formatted
21check-format:
22 uv run ruff check
23 uv run ruff format --check --diff
24
25# Run typechecker
26typecheck:
27 uv run pyright
28
29# Run tests and measure code coverage
30test:
31 uv run coverage run -m pytest
32 uv run coverage report
33 uv run coverage html
34
35# Test examples in Sphinx documentation
36test-docs:
37 cd docs && make doctest
38
39# Build Sphinx documentation
40docs: test-docs
41 cd docs && make clean html
42
43# Run doctests
44doctest:
45 uv run python -m doctest -o ELLIPSIS README.md
46
47# Run tests when code changes (requires "watchexec")
48watch:
49 watchexec -w src -w tests -e py -c -- 'uv run pytest --exitfirst --failed-first'