add pydoc

This commit is contained in:
Matthew Hodgson 2018-05-29 01:09:55 +01:00
parent 7a6df013cc
commit a6c8f7c875
2 changed files with 67 additions and 27 deletions

View File

@ -423,7 +423,11 @@ class SyncHandler(object):
Args: Args:
event(synapse.events.EventBase): event of interest event(synapse.events.EventBase): event of interest
types(list[(str|None, str|None)]|None): List of (type, state_key) tuples
which are used to filter the state fetched. If `state_key` is None,
all events are returned of the given type. Presence of type of `None`
indicates that types not in the list should not be filtered out.
May be None, which matches any key.
Returns: Returns:
A Deferred map from ((type, state_key)->Event) A Deferred map from ((type, state_key)->Event)
""" """
@ -440,6 +444,11 @@ class SyncHandler(object):
Args: Args:
room_id(str): room for which to get state room_id(str): room for which to get state
stream_position(StreamToken): point at which to get state stream_position(StreamToken): point at which to get state
types(list[(str|None, str|None)]|None): List of (type, state_key) tuples
which are used to filter the state fetched. If `state_key` is None,
all events are returned of the given type. Presence of type of `None`
indicates that types not in the list should not be filtered out.
May be None, which matches any key.
Returns: Returns:
A Deferred map from ((type, state_key)->Event) A Deferred map from ((type, state_key)->Event)
@ -472,8 +481,6 @@ class SyncHandler(object):
be None. be None.
now_token(str): Token of the end of the current batch. now_token(str): Token of the end of the current batch.
full_state(bool): Whether to force returning the full state. full_state(bool): Whether to force returning the full state.
lazy_load_members(bool): Whether to only return state for members
referenced in this timeline segment
Returns: Returns:
A deferred new event dictionary A deferred new event dictionary
@ -496,7 +503,7 @@ class SyncHandler(object):
types = [ types = [
(EventTypes.Member, state_key) (EventTypes.Member, state_key)
for state_key in set( for state_key in set(
event.sender # FIXME: we also care about targets etc. event.sender # FIXME: we also care about invite targets etc.
for event in batch.events for event in batch.events
) )
] ]
@ -1398,7 +1405,8 @@ class SyncHandler(object):
return return
state = yield self.compute_state_delta( state = yield self.compute_state_delta(
room_id, batch, sync_config, since_token, now_token, full_state=full_state room_id, batch, sync_config, since_token, now_token,
full_state=full_state
) )
if room_builder.rtype == "joined": if room_builder.rtype == "joined":

View File

@ -182,7 +182,19 @@ class StateGroupWorkerStore(SQLBaseStore):
@defer.inlineCallbacks @defer.inlineCallbacks
def _get_state_groups_from_groups(self, groups, types): def _get_state_groups_from_groups(self, groups, types):
"""Returns dictionary state_group -> (dict of (type, state_key) -> event id) """Returns the state groups for a given set of groups, filtering on
types of state events.
Args:
groups(list[int]): list of state group IDs to query
types(list[str|None, str|None])|None: List of 2-tuples of the form
(`type`, `state_key`), where a `state_key` of `None` matches all
state_keys for the `type`. Presence of type of `None` indicates
that types not in the list should not be filtered out. If None,
all types are returned.
Returns:
dictionary state_group -> (dict of (type, state_key) -> event id)
""" """
results = {} results = {}
@ -204,6 +216,9 @@ class StateGroupWorkerStore(SQLBaseStore):
if types is not None: if types is not None:
type_set = set(types) type_set = set(types)
if (None, None) in type_set: if (None, None) in type_set:
# special case (None, None) to mean that other types should be
# returned - i.e. we were just filtering down the state keys
# for particular types.
include_other_types = True include_other_types = True
type_set.remove((None, None)) type_set.remove((None, None))
types = list(type_set) # deduplicate types list types = list(type_set) # deduplicate types list
@ -360,10 +375,12 @@ class StateGroupWorkerStore(SQLBaseStore):
that are in the `types` list. that are in the `types` list.
Args: Args:
event_ids (list) event_ids (list[string])
types (list): List of (type, state_key) tuples which are used to types (list[(str|None, str|None)]|None): List of (type, state_key) tuples
filter the state fetched. `state_key` may be None, which matches which are used to filter the state fetched. If `state_key` is None,
any `state_key` all events are returned of the given type. Presence of type of `None`
indicates that types not in the list should not be filtered out.
May be None, which matches any key.
Returns: Returns:
deferred: A list of dicts corresponding to the event_ids given. deferred: A list of dicts corresponding to the event_ids given.
@ -399,9 +416,11 @@ class StateGroupWorkerStore(SQLBaseStore):
Args: Args:
event_ids(list(str)): events whose state should be returned event_ids(list(str)): events whose state should be returned
types(list[(str, str)]|None): List of (type, state_key) tuples types(list[(str|None, str|None)]|None): List of (type, state_key) tuples
which are used to filter the state fetched. May be None, which which are used to filter the state fetched. If `state_key` is None,
matches any key all events are returned of the given type. Presence of type of `None`
indicates that types not in the list should not be filtered out.
May be None, which matches any key.
Returns: Returns:
A deferred dict from event_id -> (type, state_key) -> state_event A deferred dict from event_id -> (type, state_key) -> state_event
@ -427,9 +446,11 @@ class StateGroupWorkerStore(SQLBaseStore):
Args: Args:
event_id(str): event whose state should be returned event_id(str): event whose state should be returned
types(list[(str, str)]|None): List of (type, state_key) tuples types(list[(str|None, str|None)]|None): List of (type, state_key) tuples
which are used to filter the state fetched. May be None, which which are used to filter the state fetched. If `state_key` is None,
matches any key all events are returned of the given type. Presence of type of `None`
indicates that types not in the list should not be filtered out.
May be None, which matches any key.
Returns: Returns:
A deferred dict from (type, state_key) -> state_event A deferred dict from (type, state_key) -> state_event
@ -444,9 +465,11 @@ class StateGroupWorkerStore(SQLBaseStore):
Args: Args:
event_id(str): event whose state should be returned event_id(str): event whose state should be returned
types(list[(str, str)]|None): List of (type, state_key) tuples types(list[(str|None, str|None)]|None): List of (type, state_key) tuples
which are used to filter the state fetched. May be None, which which are used to filter the state fetched. If `state_key` is None,
matches any key all events are returned of the given type. Presence of type of `None`
indicates that types not in the list should not be filtered out.
May be None, which matches any key.
Returns: Returns:
A deferred dict from (type, state_key) -> state_event A deferred dict from (type, state_key) -> state_event
@ -492,11 +515,11 @@ class StateGroupWorkerStore(SQLBaseStore):
missing state. missing state.
Args: Args:
group: The state group to lookup group(int): The state group to lookup
types (list): List of 2-tuples of the form (`type`, `state_key`), types(list[str|None, str|None]): List of 2-tuples of the form
where a `state_key` of `None` matches all state_keys for the (`type`, `state_key`), where a `state_key` of `None` matches all
`type`. Presence of type of `None` indicates that types not state_keys for the `type`. Presence of type of `None` indicates
in the list should not be filtered out. that types not in the list should not be filtered out.
""" """
is_all, known_absent, state_dict_ids = self._state_group_cache.get(group) is_all, known_absent, state_dict_ids = self._state_group_cache.get(group)
@ -560,9 +583,18 @@ class StateGroupWorkerStore(SQLBaseStore):
@defer.inlineCallbacks @defer.inlineCallbacks
def _get_state_for_groups(self, groups, types=None): def _get_state_for_groups(self, groups, types=None):
"""Given list of groups returns dict of group -> list of state events """Given list of groups returns dict of group -> list of state events
with matching types. `types` is a list of `(type, state_key)`, where with matching types.
a `state_key` of None matches all state_keys. If `types` is None then
Args:
groups(list[int]): list of groups whose state to query
types(list[str|None, str|None]|None): List of 2-tuples of the form
(`type`, `state_key`), where a `state_key` of `None` matches all
state_keys for the `type`. Presence of type of `None` indicates
that types not in the list should not be filtered out. If None,
all events are returned. all events are returned.
Returns:
dict of group -> list of state events
""" """
if types: if types:
types = frozenset(types) types = frozenset(types)