From 477540cda9ae7221cfc4eb2fb6f7ab24f30ef809 Mon Sep 17 00:00:00 2001 From: Benjamin Braatz Date: Wed, 1 Sep 2021 12:46:22 +0200 Subject: [PATCH] Cache templates during insert. --- controlpi/messagebus.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/controlpi/messagebus.py b/controlpi/messagebus.py index 02e45b5..42647e0 100644 --- a/controlpi/messagebus.py +++ b/controlpi/messagebus.py @@ -807,8 +807,9 @@ class MessageTemplateRegistry: if schema_string not in self._children[key]: self._children[key][schema_string] = MessageTemplateRegistry() self._children[key][schema_string].insert(reduced_template, client) - if client in self._templates: - del self._templates[client] + if client not in self._templates: + self._templates[client] = [] + self._templates[client].append(template) def delete(self, client: str) -> bool: """Unregister a client from all templates. @@ -974,19 +975,9 @@ class MessageTemplateRegistry: >>> r.get_templates('Client 6') [{'k1': {'const': 'v1'}}, {'k2': {'const': 'v1'}}] """ - if client not in self._templates: - self._templates[client] = [] - if client in self._clients: - self._templates[client].append(MessageTemplate()) - for key in self._children: - for schema_string in self._children[key]: - schema = json.loads(schema_string) - child = self._children[key][schema_string] - for template in child.get_templates(client): - current = MessageTemplate({key: schema}) - current.update(template) - self._templates[client].append(current) - return self._templates[client] + if client in self._templates: + return self._templates[client] + return [] class BusException(Exception): -- 2.34.1