From 46a7d0c37d67d28c4696c8264a4af9c069047307 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Fri, 8 Dec 2023 11:51:39 +0000 Subject: [PATCH] Fix some type annotations --- snikket_web/admin.py | 2 +- snikket_web/infra.py | 22 +++++++++++++++++----- snikket_web/prosodyclient.py | 24 ++++++++++++++++++------ 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/snikket_web/admin.py b/snikket_web/admin.py index 057d7aa..64f8efd 100644 --- a/snikket_web/admin.py +++ b/snikket_web/admin.py @@ -134,7 +134,7 @@ async def edit_user(localpart: str) -> typing.Union[werkzeug.Response, str]: "success", ) return redirect(url_for(".users")) - except aiohttp.ClientResponseError as exc: + except aiohttp.ClientResponseError: if form.action_restore.data: await flash( _("Could not restore user account"), diff --git a/snikket_web/infra.py b/snikket_web/infra.py index 6fb94d3..4d6469c 100644 --- a/snikket_web/infra.py +++ b/snikket_web/infra.py @@ -87,15 +87,27 @@ def format_last_activity(timestamp: typing.Optional[int]) -> str: yesterday = now - timedelta(days=1) - if last_active.year == now.year and last_active.month == now.month and last_active.day == now.day: + if ( + last_active.year == now.year + and last_active.month == now.month + and last_active.day == now.day + ): return _l("Today") - elif last_active.year == yesterday.year and last_active.month == yesterday.month and last_active.day == yesterday.day: + elif ( + last_active.year == yesterday.year + and last_active.month == yesterday.month + and last_active.day == yesterday.day + ): return _l("Yesterday") - return _.gettext("%(time)s ago", time=flask_babel.format_timedelta(time_ago, granularity="day")) + return _.gettext( + "%(time)s ago", + time=flask_babel.format_timedelta(time_ago, granularity="day"), + ) -def template_now() -> datetime: - return dict(now=lambda : datetime.now(timezone.utc)) + +def template_now() -> typing.Dict[str, typing.Any]: + return dict(now=lambda: datetime.now(timezone.utc)) def add_vary_language_header(resp: quart.Response) -> quart.Response: diff --git a/snikket_web/prosodyclient.py b/snikket_web/prosodyclient.py index 04d6103..f070279 100644 --- a/snikket_web/prosodyclient.py +++ b/snikket_web/prosodyclient.py @@ -50,15 +50,22 @@ class UserDeletionRequestInfo: @classmethod def from_api_response( cls, - data: typing.Mapping[str, typing.Any], + data: typing.Optional[typing.Mapping[str, typing.Any]], ) -> typing.Optional["UserDeletionRequestInfo"]: if data is None: return None return cls( - deleted_at=datetime.fromtimestamp(data["deleted_at"], tz=timezone.utc), - pending_until=datetime.fromtimestamp(data["pending_until"], tz=timezone.utc) + deleted_at=datetime.fromtimestamp( + data["deleted_at"], + tz=timezone.utc + ), + pending_until=datetime.fromtimestamp( + data["pending_until"], + tz=timezone.utc + ) ) + @dataclasses.dataclass(frozen=True) class AvatarMetadata: bytes: int @@ -71,7 +78,7 @@ class AvatarMetadata: def from_api_response( cls, data: typing.Mapping[str, typing.Any], - ) -> "AvatarMetadata": + ) -> "AvatarMetadata": return cls( hash=data["hash"], bytes=data["bytes"], @@ -120,8 +127,13 @@ class AdminUserInfo: roles=roles, enabled=data.get("enabled", True), last_active=data.get("last_active") or None, - deletion_request=UserDeletionRequestInfo.from_api_response(data.get("deletion_request")), - avatar_info=[AvatarMetadata.from_api_response(avatar_info) for avatar_info in data.get("avatar_info", [])], + deletion_request=UserDeletionRequestInfo.from_api_response( + data.get("deletion_request") + ), + avatar_info=[ + AvatarMetadata.from_api_response(avatar_info) + for avatar_info in data.get("avatar_info", []) + ], )