(self)
| 75 | self.root = root |
| 76 | |
| 77 | async def __aenter__(self) -> Layout: |
| 78 | # create attributes here to avoid access before entering context manager |
| 79 | self._event_handlers: EventHandlerDict = {} |
| 80 | self._render_tasks: set[Task[LayoutUpdateMessage]] = set() |
| 81 | self._render_tasks_ready: Semaphore = Semaphore(0) |
| 82 | |
| 83 | self._rendering_queue: _ThreadSafeQueue[_LifeCycleStateId] = _ThreadSafeQueue() |
| 84 | root_model_state = _new_root_model_state(self.root, self._schedule_render_task) |
| 85 | |
| 86 | self._root_life_cycle_state_id = root_id = root_model_state.life_cycle_state.id |
| 87 | self._model_states_by_life_cycle_state_id = {root_id: root_model_state} |
| 88 | self._schedule_render_task(root_id) |
| 89 | |
| 90 | return self |
| 91 | |
| 92 | async def __aexit__(self, *exc: object) -> None: |
| 93 | root_csid = self._root_life_cycle_state_id |
nothing calls this directly
no test coverage detected