Files
sideline/mise.toml
David Gwilliam 05d261273e feat: Add gallery presets, MultiDisplay support, and viewport tests
- Add ~20 gallery presets covering sources, effects, cameras, displays
- Add MultiDisplay support with --display multi:terminal,pygame syntax
- Fix ViewportFilterStage to recompute layout on viewport_width change
- Add benchmark.py module for hook-based performance testing
- Add viewport resize tests to test_viewport_filter_performance.py
2026-03-17 01:24:15 -07:00

63 lines
1.9 KiB
TOML

[tools]
python = "3.12"
hk = "latest"
pkl = "latest"
[tasks]
# =====================
# Core
# =====================
test = "uv run pytest"
test-cov = { run = "uv run pytest --cov=engine --cov-report=term-missing", depends = ["sync-all"] }
lint = "uv run ruff check engine/ mainline.py"
format = "uv run ruff format engine/ mainline.py"
# =====================
# Run
# =====================
run = "uv run mainline.py"
run-pygame = { run = "uv run mainline.py --display pygame", depends = ["sync-all"] }
run-terminal = { run = "uv run mainline.py --display terminal", depends = ["sync-all"] }
# =====================
# Presets
# =====================
run-demo = { run = "uv run mainline.py --preset demo --display pygame", depends = ["sync-all"] }
# =====================
# Daemon
# =====================
daemon = "nohup uv run mainline.py > nohup.out 2>&1 &"
daemon-stop = "pkill -f 'uv run mainline.py' 2>/dev/null || true"
daemon-restart = "mise run daemon-stop && sleep 2 && mise run daemon"
# =====================
# Environment
# =====================
sync = "uv sync"
sync-all = "uv sync --all-extras"
install = "mise run sync"
clean = "rm -rf .venv htmlcov .coverage tests/.pytest_cache .mainline_cache_*.json nohup.out"
clobber = "git clean -fdx && rm -rf .venv htmlcov .coverage tests/.pytest_cache .mainline_cache_*.json nohup.out"
# =====================
# CI
# =====================
ci = { run = "mise run topics-init && mise run lint && mise run test-cov", depends = ["topics-init", "lint", "test-cov"] }
topics-init = "curl -s -d 'init' https://ntfy.sh/klubhaus_terminal_mainline_cc_cmd > /dev/null && curl -s -d 'init' https://ntfy.sh/klubhaus_terminal_mainline_cc_resp > /dev/null && curl -s -d 'init' https://ntfy.sh/klubhaus_terminal_mainline > /dev/null"
# =====================
# Hooks
# =====================
pre-commit = "hk run pre-commit"
[env]
KAGI_API_KEY = "lOp6AGyX6TUB0kGzAli1BlAx5-VjlIN1OPCPYEXDdQc.FOKLieOa7NgWUUZi4mTZvHmrW2uNnOr8hfgv7jMvRQM"