Refactor resolve_state_groups_for_events to not pull out full state when no state resolution happens. (#12775)

This commit is contained in:
Shay 2022-05-18 10:15:52 -07:00 committed by GitHub
parent 3d8839c30c
commit 19d79b6ebe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 40 additions and 23 deletions

View file

@ -586,7 +586,7 @@ class StateGroupStorage:
if not event_ids:
return {}
event_to_groups = await self._get_state_group_for_events(event_ids)
event_to_groups = await self.get_state_group_for_events(event_ids)
groups = set(event_to_groups.values())
group_to_state = await self.stores.state._get_state_for_groups(groups)
@ -602,7 +602,7 @@ class StateGroupStorage:
Returns:
Resolves to a map of (type, state_key) -> event_id
"""
group_to_state = await self._get_state_for_groups((state_group,))
group_to_state = await self.get_state_for_groups((state_group,))
return group_to_state[state_group]
@ -675,7 +675,7 @@ class StateGroupStorage:
RuntimeError if we don't have a state group for one or more of the events
(ie they are outliers or unknown)
"""
event_to_groups = await self._get_state_group_for_events(event_ids)
event_to_groups = await self.get_state_group_for_events(event_ids)
groups = set(event_to_groups.values())
group_to_state = await self.stores.state._get_state_for_groups(
@ -716,7 +716,7 @@ class StateGroupStorage:
RuntimeError if we don't have a state group for one or more of the events
(ie they are outliers or unknown)
"""
event_to_groups = await self._get_state_group_for_events(event_ids)
event_to_groups = await self.get_state_group_for_events(event_ids)
groups = set(event_to_groups.values())
group_to_state = await self.stores.state._get_state_for_groups(
@ -774,7 +774,7 @@ class StateGroupStorage:
)
return state_map[event_id]
def _get_state_for_groups(
def get_state_for_groups(
self, groups: Iterable[int], state_filter: Optional[StateFilter] = None
) -> Awaitable[Dict[int, MutableStateMap[str]]]:
"""Gets the state at each of a list of state groups, optionally
@ -792,7 +792,7 @@ class StateGroupStorage:
groups, state_filter or StateFilter.all()
)
async def _get_state_group_for_events(
async def get_state_group_for_events(
self,
event_ids: Collection[str],
await_full_state: bool = True,