mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-05 18:24:13 -04:00
Use auto_attribs/native type hints for attrs classes. (#11692)
This commit is contained in:
parent
b92a2ff797
commit
10a88ba91c
40 changed files with 300 additions and 307 deletions
|
@ -23,25 +23,25 @@ if TYPE_CHECKING:
|
|||
from synapse.server import HomeServer
|
||||
|
||||
|
||||
@attr.s(slots=True)
|
||||
@attr.s(slots=True, auto_attribs=True)
|
||||
class PusherConfig:
|
||||
"""Parameters necessary to configure a pusher."""
|
||||
|
||||
id = attr.ib(type=Optional[str])
|
||||
user_name = attr.ib(type=str)
|
||||
access_token = attr.ib(type=Optional[int])
|
||||
profile_tag = attr.ib(type=str)
|
||||
kind = attr.ib(type=str)
|
||||
app_id = attr.ib(type=str)
|
||||
app_display_name = attr.ib(type=str)
|
||||
device_display_name = attr.ib(type=str)
|
||||
pushkey = attr.ib(type=str)
|
||||
ts = attr.ib(type=int)
|
||||
lang = attr.ib(type=Optional[str])
|
||||
data = attr.ib(type=Optional[JsonDict])
|
||||
last_stream_ordering = attr.ib(type=int)
|
||||
last_success = attr.ib(type=Optional[int])
|
||||
failing_since = attr.ib(type=Optional[int])
|
||||
id: Optional[str]
|
||||
user_name: str
|
||||
access_token: Optional[int]
|
||||
profile_tag: str
|
||||
kind: str
|
||||
app_id: str
|
||||
app_display_name: str
|
||||
device_display_name: str
|
||||
pushkey: str
|
||||
ts: int
|
||||
lang: Optional[str]
|
||||
data: Optional[JsonDict]
|
||||
last_stream_ordering: int
|
||||
last_success: Optional[int]
|
||||
failing_since: Optional[int]
|
||||
|
||||
def as_dict(self) -> Dict[str, Any]:
|
||||
"""Information that can be retrieved about a pusher after creation."""
|
||||
|
@ -57,12 +57,12 @@ class PusherConfig:
|
|||
}
|
||||
|
||||
|
||||
@attr.s(slots=True)
|
||||
@attr.s(slots=True, auto_attribs=True)
|
||||
class ThrottleParams:
|
||||
"""Parameters for controlling the rate of sending pushes via email."""
|
||||
|
||||
last_sent_ts = attr.ib(type=int)
|
||||
throttle_ms = attr.ib(type=int)
|
||||
last_sent_ts: int
|
||||
throttle_ms: int
|
||||
|
||||
|
||||
class Pusher(metaclass=abc.ABCMeta):
|
||||
|
|
|
@ -298,7 +298,7 @@ RulesByUser = Dict[str, List[Rule]]
|
|||
StateGroup = Union[object, int]
|
||||
|
||||
|
||||
@attr.s(slots=True)
|
||||
@attr.s(slots=True, auto_attribs=True)
|
||||
class RulesForRoomData:
|
||||
"""The data stored in the cache by `RulesForRoom`.
|
||||
|
||||
|
@ -307,29 +307,29 @@ class RulesForRoomData:
|
|||
"""
|
||||
|
||||
# event_id -> (user_id, state)
|
||||
member_map = attr.ib(type=MemberMap, factory=dict)
|
||||
member_map: MemberMap = attr.Factory(dict)
|
||||
# user_id -> rules
|
||||
rules_by_user = attr.ib(type=RulesByUser, factory=dict)
|
||||
rules_by_user: RulesByUser = attr.Factory(dict)
|
||||
|
||||
# The last state group we updated the caches for. If the state_group of
|
||||
# a new event comes along, we know that we can just return the cached
|
||||
# result.
|
||||
# On invalidation of the rules themselves (if the user changes them),
|
||||
# we invalidate everything and set state_group to `object()`
|
||||
state_group = attr.ib(type=StateGroup, factory=object)
|
||||
state_group: StateGroup = attr.Factory(object)
|
||||
|
||||
# A sequence number to keep track of when we're allowed to update the
|
||||
# cache. We bump the sequence number when we invalidate the cache. If
|
||||
# the sequence number changes while we're calculating stuff we should
|
||||
# not update the cache with it.
|
||||
sequence = attr.ib(type=int, default=0)
|
||||
sequence: int = 0
|
||||
|
||||
# A cache of user_ids that we *know* aren't interesting, e.g. user_ids
|
||||
# owned by AS's, or remote users, etc. (I.e. users we will never need to
|
||||
# calculate push for)
|
||||
# These never need to be invalidated as we will never set up push for
|
||||
# them.
|
||||
uninteresting_user_set = attr.ib(type=Set[str], factory=set)
|
||||
uninteresting_user_set: Set[str] = attr.Factory(set)
|
||||
|
||||
|
||||
class RulesForRoom:
|
||||
|
@ -553,7 +553,7 @@ class RulesForRoom:
|
|||
self.data.state_group = state_group
|
||||
|
||||
|
||||
@attr.attrs(slots=True, frozen=True)
|
||||
@attr.attrs(slots=True, frozen=True, auto_attribs=True)
|
||||
class _Invalidation:
|
||||
# _Invalidation is passed as an `on_invalidate` callback to bulk_get_push_rules,
|
||||
# which means that it it is stored on the bulk_get_push_rules cache entry. In order
|
||||
|
@ -564,8 +564,8 @@ class _Invalidation:
|
|||
# attrs provides suitable __hash__ and __eq__ methods, provided we remember to
|
||||
# set `frozen=True`.
|
||||
|
||||
cache = attr.ib(type=LruCache)
|
||||
room_id = attr.ib(type=str)
|
||||
cache: LruCache
|
||||
room_id: str
|
||||
|
||||
def __call__(self) -> None:
|
||||
rules_data = self.cache.get(self.room_id, None, update_metrics=False)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue