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,49 +1,49 @@
import datetime
from datetime import datetime, timedelta, timezone
class TimeZoneNotUTCError(Exception):
pass
def verify_UTC(dt: datetime.datetime) -> None:
if dt.tzinfo is None or dt.tzinfo.utcoffset(dt) != datetime.timezone.utc.utcoffset(dt):
def verify_UTC(dt: datetime) -> None:
if dt.tzinfo is None or dt.tzinfo.utcoffset(dt) != timezone.utc.utcoffset(dt):
raise TimeZoneNotUTCError(f"Datetime {dt} does not have a UTC time zone.")
def convert_to_UTC(dt: datetime.datetime) -> datetime.datetime:
def convert_to_UTC(dt: datetime) -> datetime:
if dt.tzinfo is None:
return dt.replace(tzinfo=datetime.timezone.utc)
return dt.astimezone(datetime.timezone.utc)
return dt.replace(tzinfo=timezone.utc)
return dt.astimezone(timezone.utc)
def floor_to_hour(dt: datetime.datetime) -> datetime.datetime:
def floor_to_hour(dt: datetime) -> datetime:
verify_UTC(dt)
return datetime.datetime(*dt.timetuple()[:4], tzinfo=datetime.timezone.utc)
return datetime(*dt.timetuple()[:4], tzinfo=timezone.utc)
def floor_to_day(dt: datetime.datetime) -> datetime.datetime:
def floor_to_day(dt: datetime) -> datetime:
verify_UTC(dt)
return datetime.datetime(*dt.timetuple()[:3], tzinfo=datetime.timezone.utc)
return datetime(*dt.timetuple()[:3], tzinfo=timezone.utc)
def ceiling_to_hour(dt: datetime.datetime) -> datetime.datetime:
def ceiling_to_hour(dt: datetime) -> datetime:
floor = floor_to_hour(dt)
if floor == dt:
return floor
return floor + datetime.timedelta(hours=1)
return floor + timedelta(hours=1)
def ceiling_to_day(dt: datetime.datetime) -> datetime.datetime:
def ceiling_to_day(dt: datetime) -> datetime:
floor = floor_to_day(dt)
if floor == dt:
return floor
return floor + datetime.timedelta(days=1)
return floor + timedelta(days=1)
def timestamp_to_datetime(timestamp: float) -> datetime.datetime:
return datetime.datetime.fromtimestamp(float(timestamp), tz=datetime.timezone.utc)
def timestamp_to_datetime(timestamp: float) -> datetime:
return datetime.fromtimestamp(float(timestamp), tz=timezone.utc)
def datetime_to_timestamp(dt: datetime.datetime) -> int:
def datetime_to_timestamp(dt: datetime) -> int:
verify_UTC(dt)
return int(dt.timestamp())