Skip to content

Commit

Permalink
Make label area creation more resilient
Browse files Browse the repository at this point in the history
  • Loading branch information
arturpragacz committed Jan 14, 2025
1 parent d81d9b6 commit c3bd304
Showing 1 changed file with 11 additions and 18 deletions.
29 changes: 11 additions & 18 deletions custom_components/arturs_labels/overrides/registry/area_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,24 +135,17 @@ def async_list_areas(self, active: bool = False) -> Iterable[OldAreaEntry]:
return items.values()

@callback
def _async_create_id(self, id: str, *, name: str) -> AreaEntry:
"""Create a new area. Don't fire events."""
self.hass.verify_event_loop_thread("area_registry.async_create")

area = OldAreaEntry(
aliases=set(),
floor_id=None,
icon=None,
id=id,
labels=set(),
name=name,
picture=None,
)
def _async_create_id(self, area_id: str, *, name: str) -> AreaEntry:
"""Create a new area with specific id.
self.areas[area.id] = area
self.async_schedule_save()
Fires 'create' event (which we would rather avoid in the ideal world)
"""
area = super().async_create(name)

if area.id == area_id:
return self.areas.view[area.id]

return self.areas.view[area.id]
return self._async_update_id(area.id, new_area_id=area_id)

@callback
def async_create(self, *args, floor_id=None, labels=None, **kwargs) -> OldAreaEntry:
Expand All @@ -169,8 +162,6 @@ def async_delete(self, area_id: str, *args, **kwargs) -> None:
@callback
def _async_update_id(self, area_id: str, *, new_area_id: str) -> AreaEntry:
"""Delete area. Don't fire events."""
self.hass.verify_event_loop_thread("area_registry.async_delete")

old = self.areas.pop(area_id)
# we don't clear it from entities and devices on purpose

Expand Down Expand Up @@ -214,6 +205,8 @@ def async_load_cb(self) -> None:
@callback
def async_update_label_areas(self) -> None:
"""Update label areas in registry."""
self.hass.verify_event_loop_thread("area_registry.async_update_label_areas")

lab_reg = lr.async_get(self.hass)

label_areas = LabelAreaRegistryItems()
Expand Down

0 comments on commit c3bd304

Please sign in to comment.