module

class lrpy.module.Module(config)
attach(commod: ComModule)

Intern metod. Anropas av systemet, ska inte anropas manuellt.

emit_message(message: Message)

Skickar ett meddelande till alla moduler som lyssnar på denna meddelandetyp. Anropet blockerar inte, modulen fortsätter köra direkt.

get_introspection() ModuleIntrospection

Returnerar metadata om modulen.

abstractmethod get_listeners() Iterable[tuple[str, Callable[[Any], Awaitable[None]]]]

Returnerar vilka meddelandetyper modulen lyssnar på och vilken metod som hanterar dem. Ärv från DecoratedModule och använd @on_message istället för att implementera denna direkt.

async run(stop: Event)

Implementera denna metod för att köra kod kontinuerligt i modulen.

Använd while not stop.is_set() som loop-villkor och await asyncio.sleep() i loopen så att modulen avslutas när programmet stoppas. Behöver inte definieras om modulen bara lyssnar på meddelanden.

async setup()

Is ran before run is executed on any module. Must exit, if setup raise an Exception program will halt

async start(stop: Event)

Intern metod. Anropas av systemet för att starta modulen, ska inte anropas manuellt.

class lrpy.module.DecoratedModule(config)

Implementerar get_listeners med hjälp av @on_message

get_listeners() Iterable[tuple[str, Callable[[Any], Awaitable[None]]]]

Läser klassens metoder för att hitta metoder som är markerade med @on_message