Skip to content

MLR107: API/mobject unsupported under a targeted renderer

qual reports MLR107 when a call or a direct base class resolves to a symbol the versioned Manim knowledge profile marks explicitly unsupported (cairo: false / opengl: false) under a renderer an active render profile targets.

  • Default severity: warning
  • Minimum confidence: high
  • Implementation phase: 4
  • Fix: none (restrict the render profiles or guard by renderer)

The rule is generic over the curated renderer-compatibility entries: it fires only on symbols whose profile entry carries an explicit unsupported flag, and only when the run actually targets the flagged renderer. The diagnostic's applicable_profiles lists exactly the profiles on that renderer (DESIGN 15.8). Curated entries with only a descriptive note, unresolved callees, and runs without a flagged-renderer profile all stay silent.

Where a more specific rule proves the same base-class incompatibility (MLR119 for MovingCameraScene), the specific rule supersedes this one on the shared span.

Wrong (with an OpenGL profile active):

preview = MovingCameraScene()  # OpenGL-incompatible contract

Right:

class Preview(Scene):  # renderer-neutral scene
    def construct(self):
        ...