mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-07 06:13:40 +00:00
fix(ingest): reporting should work with timestamps (#5860)
This commit is contained in:
parent
494f38ea60
commit
2fea3d26df
@ -2,7 +2,7 @@ import json
|
||||
import pprint
|
||||
import sys
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from enum import Enum
|
||||
from typing import Any, Dict
|
||||
|
||||
@ -24,7 +24,13 @@ class Report:
|
||||
elif isinstance(some_val, timedelta):
|
||||
return humanfriendly.format_timespan(some_val)
|
||||
elif isinstance(some_val, datetime):
|
||||
now = datetime.now()
|
||||
try:
|
||||
# check if we have a tz_aware object or not (https://stackoverflow.com/questions/5802108/how-to-check-if-a-datetime-object-is-localized-with-pytz)
|
||||
tz_aware = (
|
||||
some_val.tzinfo is not None
|
||||
and some_val.tzinfo.utcoffset(some_val) is not None
|
||||
)
|
||||
now = datetime.now(timezone.utc) if tz_aware else datetime.now()
|
||||
diff = now - some_val
|
||||
if abs(diff) < timedelta(seconds=1):
|
||||
# the timestamps are close enough that printing a duration isn't useful
|
||||
@ -34,9 +40,10 @@ class Report:
|
||||
return f"{some_val} ({humanfriendly.format_timespan(diff)} ago)."
|
||||
else:
|
||||
# timestamp is in the future
|
||||
return (
|
||||
f"{some_val} (in {humanfriendly.format_timespan(some_val - now)})."
|
||||
)
|
||||
return f"{some_val} (in {humanfriendly.format_timespan(some_val - now)})."
|
||||
except Exception:
|
||||
# we don't want to fail reporting because we were unable to pretty print a timestamp
|
||||
return str(datetime)
|
||||
else:
|
||||
return str(some_val)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user