Source code for harp_apps.rules.commandline.utils.subscribers

from rich.console import Console, Group
from rich.padding import Padding
from rich.panel import Panel
from rich.rule import Rule
from rich.syntax import Syntax

from harp_apps.rules.subscribers import RulesSubscriber

console = Console(force_terminal=True)


[docs] class DebugRulesSubscriber(RulesSubscriber):
[docs] def match(self, *args): scripts = list(super().match(*args)) elements = [] for i, script in enumerate(scripts): elements.append( Syntax( "# " + script.filename.strip("<>") + "\n" + script.source.strip(), "python", background_color="default", ) ) if i: elements.append(Rule()) if len(elements): console.print( Padding( Panel( Group(*elements), title=f":shuffle_tracks_button: Rule – {args[2]} ([bright_green]{len(scripts)}[/bright_green] script(s) found)", expand=True, title_align="left", ), (0, 0, 0, 8) if args[2].startswith("on_remote_") else (0, 0, 0, 4), ) ) yield from scripts