1 """Models for Recorder."""
3 from __future__
import annotations
5 from datetime
import datetime
7 from typing
import overload
11 _LOGGER = logging.getLogger(__name__)
13 DB_TIMEZONE =
"+00:00"
15 EMPTY_JSON_OBJECT =
"{}"
27 """Process a timestamp into datetime object."""
31 return ts.replace(tzinfo=dt_util.UTC)
33 return dt_util.as_utc(ts)
45 """Process a timestamp into UTC isotime."""
48 if ts.tzinfo == dt_util.UTC:
51 return f
"{ts.isoformat()}{DB_TIMEZONE}"
52 return ts.astimezone(dt_util.UTC).isoformat()
56 """Convert a datetime to a timestamp."""
57 return None if dt
is None else dt.timestamp()
61 """Convert a timestamp to a datetime."""
64 return dt_util.utc_from_timestamp(ts)
datetime|None timestamp_to_datetime_or_none(float|None ts)
None process_timestamp_to_utc_isoformat(None ts)
None process_timestamp(None ts)
float|None datetime_to_timestamp_or_none(datetime|None dt)