Adds site_config; adds Tuya lights. Bugfixes.
[python_utils.git] / datetime_utils.py
index db5b2b5e19ba8e74fdf192dc122e518e90ec6bf9..e31edc29428ad57a0d02282e9ee4ccdc8c55c546 100644 (file)
@@ -42,7 +42,7 @@ def now() -> datetime.datetime:
 
 def now_pacific() -> datetime.datetime:
     """
-    What time is it?  Result in US/Pacifit time (PST/PDT)
+    What time is it?  Result in US/Pacific time (PST/PDT)
     """
     return replace_timezone(now(), pytz.timezone("US/Pacific"))
 
@@ -652,6 +652,18 @@ def describe_duration(seconds: int, *, include_seconds = False) -> str:
     return descr
 
 
+def describe_timedelta(delta: datetime.timedelta) -> str:
+    """
+    Describe a duration represented by a timedelta object.
+
+    >>> d = datetime.timedelta(1, 600)
+    >>> describe_timedelta(d)
+    '1 day, and 10 minutes'
+
+    """
+    return describe_duration(delta.total_seconds())
+
+
 def describe_duration_briefly(seconds: int, *, include_seconds=False) -> str:
     """
     Describe a duration briefly.
@@ -685,6 +697,18 @@ def describe_duration_briefly(seconds: int, *, include_seconds=False) -> str:
     return descr.strip()
 
 
+def describe_timedelta_briefly(delta: datetime.timedelta) -> str:
+    """
+    Describe a duration represented by a timedelta object.
+
+    >>> d = datetime.timedelta(1, 600)
+    >>> describe_timedelta_briefly(d)
+    '1d 10m'
+
+    """
+    return describe_duration_briefly(delta.total_seconds())
+
+
 if __name__ == '__main__':
     import doctest
     doctest.testmod()