Configuration¶
Qual searches upward from the checked path for pyproject.toml. Base policy
lives under [tool.qual]; named render environments use
[[tool.qual.profile]].
[tool.qual]
manim-version = "0.20"
target-python = "3.11"
select = ["MLC", "MLR", "MLP", "MLD"]
ignore = []
min-confidence = "high"
fail-level = "warning"
default-profile = "production"
knowledge-profile = "upstream_0_20"
respect-manim-cfg = true
exclude = [".venv/**", "media/**"]
per-file-ignores = { "tests/fixtures/**" = ["MLP", "MLD"] }
[[tool.qual.profile]]
name = "production"
renderer = "cairo"
platform = "linux"
pixel-width = 1920
pixel-height = 1080
frame-rate = 60
assets-dir = "."
allowed-fonts = ["Noto Sans", "Noto Sans CJK JP"]
Precedence¶
Settings resolve in this order, from strongest to weakest:
qual config prints the final values and an enforcement section showing
which settings affect analysis and which are informational.
Profiles¶
Profiles let CI evaluate the same source under its real render targets:
default-profile = "preview"
[[tool.qual.profile]]
name = "preview"
renderer = "cairo"
pixel-width = 854
pixel-height = 480
frame-rate = 30
[[tool.qual.profile]]
name = "production"
renderer = "opengl"
pixel-width = 3840
pixel-height = 2160
frame-rate = 60
With --profile all, Qual merges diagnostics with the same evidence and lists
the profiles to which each one applies.
Command-line policy¶
Common overrides:
qual check . --select MLC,MLR
qual check . --ignore MLP
qual check . --min-confidence certain
qual check . --fail-level error
qual check . --renderer cairo --fps 60 --resolution 1920x1080
Unknown keys, selectors, profiles, and invalid numeric values are hard configuration errors. Qual does not silently ignore policy it cannot enforce.
Knowledge profiles¶
knowledge-profile selects a versioned static model of Manim semantics. The
normal profile for Manim Community 0.20 is:
The local optimized-fork overlay is intentionally separate:
Qual never imports the installed Manim package to discover behavior at lint time. Version-sensitive facts come from the selected reviewed profile.