Skip to content

Debug

AnimatorController dataclass

AnimatorController(
    ax: Axes,
    num_steps: int,
    get_renderer: Callable[
        [int], tuple[int, Callable[[int], None]]
    ],
)

Bases: DebuggerController


              flowchart TD
              bloqade.lanes.visualize.debug.AnimatorController[AnimatorController]
              bloqade.lanes.visualize.app.DebuggerController[DebuggerController]

                              bloqade.lanes.visualize.app.DebuggerController --> bloqade.lanes.visualize.debug.AnimatorController
                


              click bloqade.lanes.visualize.debug.AnimatorController href "" "bloqade.lanes.visualize.debug.AnimatorController"
              click bloqade.lanes.visualize.app.DebuggerController href "" "bloqade.lanes.visualize.app.DebuggerController"
            

on_slider_change

on_slider_change(value)

Handle a slider drag/click event. Default is a no-op so legacy controllers without slider support continue to work.

Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/visualize/debug.py
123
124
125
126
127
128
129
130
131
132
133
134
135
136
def on_slider_change(self, value):
    # Honour the same single-event-per-iteration guard that on_next /
    # on_prev use: if another handler already updated the state in this
    # event-processing window, the first event wins.
    if self.updated:
        return
    new_index = max(0, min(int(value), self.num_steps - 1))
    if new_index == self.step_index:
        return
    self.step_index = new_index
    # Slider jumps go forward into the new step's animation.
    self.animation_step = 1
    self.updated = True
    self.waiting = False

StaticDebuggerController dataclass

StaticDebuggerController(
    ax: Axes, num_steps: int, draw: Callable[[int], None]
)

Bases: DebuggerController


              flowchart TD
              bloqade.lanes.visualize.debug.StaticDebuggerController[StaticDebuggerController]
              bloqade.lanes.visualize.app.DebuggerController[DebuggerController]

                              bloqade.lanes.visualize.app.DebuggerController --> bloqade.lanes.visualize.debug.StaticDebuggerController
                


              click bloqade.lanes.visualize.debug.StaticDebuggerController href "" "bloqade.lanes.visualize.debug.StaticDebuggerController"
              click bloqade.lanes.visualize.app.DebuggerController href "" "bloqade.lanes.visualize.app.DebuggerController"
            

on_slider_change

on_slider_change(value)

Handle a slider drag/click event. Default is a no-op so legacy controllers without slider support continue to work.

Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/visualize/debug.py
44
45
46
47
48
49
50
51
52
53
54
55
56
def on_slider_change(self, value):
    # Honour the same single-event-per-iteration guard that on_next /
    # on_prev use: if another handler already updated the state in this
    # event-processing window (e.g. user clicked Next then dragged the
    # slider during the same plt.pause), the first event wins.
    if self.updated:
        return
    new_index = max(0, min(int(value), self.num_steps - 1))
    if new_index == self.step_index:
        return
    self.step_index = new_index
    self.updated = True
    self.waiting = False