Skip to content

Commit 99dd073

Browse files
committed
generator for ready_events
1 parent 3b0de47 commit 99dd073

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

appdaemon/plugin_management.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -451,18 +451,23 @@ async def notify_plugin_stopped(self, name: str, namespace: str):
451451
def get_plugin_meta(self, namespace: str) -> dict:
452452
return self.plugin_meta.get(namespace, {})
453453

454+
455+
def _ready_events(self) -> Generator[tuple[str, asyncio.Event]]:
456+
for plugin_cfg in self.plugin_objs.values():
457+
match plugin_cfg:
458+
case {"object": PluginBase(name=str(name), ready_event=asyncio.Event() as event)}:
459+
yield name, event
460+
461+
454462
async def wait_for_plugins(self, timeout: float | None = None):
455463
"""Waits for the user-configured plugin startup conditions.
456464
457465
Specifically, this waits for each of their ready events
458466
"""
459467
self.logger.info("Waiting for plugins to be ready")
460468
wait_tasks = [
461-
self.AD.loop.create_task(
462-
plugin["object"].ready_event.wait(),
463-
name=f"waiting for {plugin['name']} to be ready",
464-
)
465-
for plugin in self.plugin_objs.values()
469+
self.AD.loop.create_task(event.wait(), name=f"waiting for {plugin_name} to be ready")
470+
for plugin_name, event in self._ready_events()
466471
]
467472
readiness = self.AD.loop.create_task(
468473
asyncio.wait(wait_tasks, timeout=timeout, return_when=asyncio.ALL_COMPLETED),

0 commit comments

Comments
 (0)