mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +00:00
Improve UserDict in device and entity registries (#100307)
This commit is contained in:
parent
ee65aa91e8
commit
c3d1cdd0e9
@ -392,14 +392,14 @@ class DeviceRegistryItems(UserDict[str, _EntryTypeT]):
|
||||
|
||||
def __setitem__(self, key: str, entry: _EntryTypeT) -> None:
|
||||
"""Add an item."""
|
||||
if key in self:
|
||||
old_entry = self[key]
|
||||
data = self.data
|
||||
if key in data:
|
||||
old_entry = data[key]
|
||||
for connection in old_entry.connections:
|
||||
del self._connections[connection]
|
||||
for identifier in old_entry.identifiers:
|
||||
del self._identifiers[identifier]
|
||||
# type ignore linked to mypy issue: https://github.com/python/mypy/issues/13596
|
||||
super().__setitem__(key, entry) # type: ignore[assignment]
|
||||
data[key] = entry
|
||||
for connection in entry.connections:
|
||||
self._connections[connection] = entry
|
||||
for identifier in entry.identifiers:
|
||||
|
@ -450,11 +450,12 @@ class EntityRegistryItems(UserDict[str, RegistryEntry]):
|
||||
|
||||
def __setitem__(self, key: str, entry: RegistryEntry) -> None:
|
||||
"""Add an item."""
|
||||
if key in self:
|
||||
old_entry = self[key]
|
||||
data = self.data
|
||||
if key in data:
|
||||
old_entry = data[key]
|
||||
del self._entry_ids[old_entry.id]
|
||||
del self._index[(old_entry.domain, old_entry.platform, old_entry.unique_id)]
|
||||
super().__setitem__(key, entry)
|
||||
data[key] = entry
|
||||
self._entry_ids[entry.id] = entry
|
||||
self._index[(entry.domain, entry.platform, entry.unique_id)] = entry.entity_id
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user