From 4dddc50c8299f8862c7191250b9c120856637db5 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:51:16 +0000 Subject: [PATCH] reformat --- callbacks.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/callbacks.py b/callbacks.py index f0771a4..32cad9b 100644 --- a/callbacks.py +++ b/callbacks.py @@ -82,16 +82,36 @@ class Callbacks: for app_name, app_callbacks in self.callbacks.items() } - async def get_callback_handles(self, app: str = 'all', type: str = 'all', entity_id: str = 'all'): + async def get_callbacks( + self, + namespace: str = 'all', + app: str = 'all', + type: str = 'all', + entity_id: str = 'all', + copy: bool = True, + ) -> dict[str, dict[str, Any]]: async with self.callbacks_lock: - handles = set( - handle + return { + handle: deepcopy(cb_info) if copy else cb_info for app_name, app_callbacks in self.callbacks.items() if app == 'all' or app == app_name for handle, cb_info in app_callbacks.items() if (type == 'all' or type == cb_info["type"]) and (entity_id == 'all' or entity_id == cb_info["entity"]) - ) - self.logger.debug(f"Got {len(handles)} callbacks for app={app}, type={type}, entity_id={entity_id}") - return handles + and ( + namespace == 'all' + or namespace == 'global' + or cb_info["namespace"] == 'global' + or namespace == cb_info["namespace"] + ) + } + async def get_callback_handles( + self, + namespace: str = 'all', + app: str = 'all', + type: str = 'all', + entity_id: str = 'all' + ) -> set[str]: + callbacks = await self.get_callbacks(namespace, app, type, entity_id, copy=False) + return set(callbacks.keys())