diff options
-rw-r--r-- | scripts-dev/mypy_synapse_plugin.py | 7 | ||||
-rw-r--r-- | synapse/push/bulk_push_rule_evaluator.py | 46 |
2 files changed, 20 insertions, 33 deletions
diff --git a/scripts-dev/mypy_synapse_plugin.py b/scripts-dev/mypy_synapse_plugin.py index 62f1703728..97d3f0ccb1 100644 --- a/scripts-dev/mypy_synapse_plugin.py +++ b/scripts-dev/mypy_synapse_plugin.py @@ -67,12 +67,7 @@ class SynapsePlugin(Plugin): ) -> Optional[Callable[[AttributeContext], mypy.types.Type]]: # Anything in synapse could be wrapped with the cached decorator, but # we know that anything else is *not*. - if fullname.startswith( - ( - "synapse.util.caches.descriptors.CachedFunction", - "synapse.util.caches.descriptors._LruCachedFunction", - ) - ): + if fullname == "synapse.util.caches.descriptors.CachedFunction.__call__": return cached_function_method_attribute return None diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py index 5934b1ef34..c05e2785d3 100644 --- a/synapse/push/bulk_push_rule_evaluator.py +++ b/synapse/push/bulk_push_rule_evaluator.py @@ -350,40 +350,32 @@ class BulkPushRuleEvaluator: actions_by_user: Dict[str, Collection[Union[Mapping, str]]] = {} # Gather a bunch of info in parallel. - # - # This has a lot of ignored types and casting due to the use of @cached - # decorated functions passed into run_in_background. - # - # See https://github.com/matrix-org/synapse/issues/16606 ( room_member_count, (power_levels, sender_power_level), related_events, profiles, ) = await make_deferred_yieldable( - cast( - "Deferred[Tuple[int, Tuple[dict, Optional[int]], Dict[str, Dict[str, JsonValue]], Mapping[str, ProfileInfo]]]", - gather_results( - ( - run_in_background( # type: ignore[call-arg] - self.store.get_number_joined_users_in_room, event.room_id # type: ignore[arg-type] - ), - run_in_background( - self._get_power_levels_and_sender_level, - event, - context, - event_id_to_event, - ), - run_in_background(self._related_events, event), - run_in_background( # type: ignore[call-arg] - self.store.get_subset_users_in_room_with_profiles, - event.room_id, # type: ignore[arg-type] - rules_by_user.keys(), # type: ignore[arg-type] - ), + gather_results( + ( + run_in_background( + self.store.get_number_joined_users_in_room, event.room_id ), - consumeErrors=True, - ).addErrback(unwrapFirstError), - ) + run_in_background( + self._get_power_levels_and_sender_level, + event, + context, + event_id_to_event, + ), + run_in_background(self._related_events, event), + run_in_background( + self.store.get_subset_users_in_room_with_profiles, + event.room_id, + rules_by_user.keys(), + ), + ), + consumeErrors=True, + ).addErrback(unwrapFirstError) ) # Find the event's thread ID. |