Small speed up to mqtt _async_queue_subscriptions (#118094)

pull/118109/head
J. Nick Koston 2024-05-25 00:32:15 -10:00 committed by GitHub
parent 09cbc35b46
commit de275878c4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 3 additions and 3 deletions

View File

@ -452,7 +452,7 @@ class MQTT:
self._should_reconnect: bool = True
self._available_future: asyncio.Future[bool] | None = None
self._max_qos: dict[str, int] = {} # topic, max qos
self._max_qos: defaultdict[str, int] = defaultdict(int) # topic, max qos
self._pending_subscriptions: dict[str, int] = {} # topic, qos
self._unsubscribe_debouncer = EnsureJobAfterCooldown(
UNSUBSCRIBE_COOLDOWN, self._async_perform_unsubscribes
@ -820,8 +820,8 @@ class MQTT:
"""Queue requested subscriptions."""
for subscription in subscriptions:
topic, qos = subscription
max_qos = max(qos, self._max_qos.setdefault(topic, qos))
self._max_qos[topic] = max_qos
if (max_qos := self._max_qos[topic]) < qos:
self._max_qos[topic] = (max_qos := qos)
self._pending_subscriptions[topic] = max_qos
# Cancel any pending unsubscribe since we are subscribing now
if topic in self._pending_unsubscribes: