python: Consistently use from…import for datetime.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2023-11-19 10:45:19 -08:00
parent 250b52e3dc
commit 8a7916f21a
66 changed files with 362 additions and 412 deletions

View File

@@ -1,6 +1,6 @@
import datetime
import time
from collections import defaultdict
from datetime import datetime, timedelta
from typing import Any, Dict, Mapping, Optional, Sequence, Set
from django.conf import settings
@@ -45,14 +45,14 @@ def get_presence_dicts_for_rows(
def user_presence_datetime_with_date_joined_default(
dt: Optional[datetime.datetime], date_joined: datetime.datetime
) -> datetime.datetime:
dt: Optional[datetime], date_joined: datetime
) -> datetime:
"""
Our data models support UserPresence objects not having None
values for last_active_time/last_connected_time. The legacy API
however has always sent timestamps, so for backward
compatibility we cannot send such values through the API and need
to default to a sane datetime.
to default to a sane
This helper functions expects to take a last_active_time or
last_connected_time value and the date_joined of the user, which
@@ -65,7 +65,7 @@ def user_presence_datetime_with_date_joined_default(
def get_modern_user_presence_info(
last_active_time: datetime.datetime, last_connected_time: datetime.datetime
last_active_time: datetime, last_connected_time: datetime
) -> Dict[str, Any]:
# TODO: Do further bandwidth optimizations to this structure.
result = {}
@@ -75,7 +75,7 @@ def get_modern_user_presence_info(
def get_legacy_user_presence_info(
last_active_time: datetime.datetime, last_connected_time: datetime.datetime
last_active_time: datetime, last_connected_time: datetime
) -> Dict[str, Any]:
"""
Reformats the modern UserPresence data structure so that legacy
@@ -106,7 +106,7 @@ def get_legacy_user_presence_info(
def format_legacy_presence_dict(
last_active_time: datetime.datetime, last_connected_time: datetime.datetime
last_active_time: datetime, last_connected_time: datetime
) -> Dict[str, Any]:
"""
This function assumes it's being called right after the presence object was updated,
@@ -114,7 +114,7 @@ def format_legacy_presence_dict(
"""
if (
last_active_time
+ datetime.timedelta(seconds=settings.PRESENCE_LEGACY_EVENT_OFFSET_FOR_ACTIVITY_SECONDS)
+ timedelta(seconds=settings.PRESENCE_LEGACY_EVENT_OFFSET_FOR_ACTIVITY_SECONDS)
>= last_connected_time
):
status = UserPresence.LEGACY_STATUS_ACTIVE
@@ -154,7 +154,7 @@ def get_presence_for_user(
def get_presence_dict_by_realm(
realm: Realm, slim_presence: bool = False, requesting_user_profile: Optional[UserProfile] = None
) -> Dict[str, Dict[str, Any]]:
two_weeks_ago = timezone_now() - datetime.timedelta(weeks=2)
two_weeks_ago = timezone_now() - timedelta(weeks=2)
query = UserPresence.objects.filter(
realm_id=realm.id,
last_connected_time__gte=two_weeks_ago,