summaryrefslogtreecommitdiff
path: root/datetime_utils.py
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2021-07-09 18:31:02 -0700
committerScott Gasch <[email protected]>2021-07-09 18:31:02 -0700
commit09e6d10face80d98a4578ff54192b5c8bec007d7 (patch)
tree1565e645e739ff2f607730029c91055d29c02aa5 /datetime_utils.py
parent11eeb8574b7b4620ac6fd440cb251f8aa2458f5b (diff)
ACL uses enums, some more tests, other stuff.
Diffstat (limited to 'datetime_utils.py')
-rw-r--r--datetime_utils.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/datetime_utils.py b/datetime_utils.py
index 0b94283..795b427 100644
--- a/datetime_utils.py
+++ b/datetime_utils.py
@@ -6,7 +6,7 @@ import datetime
import enum
import logging
import re
-from typing import NewType, Tuple
+from typing import Any, NewType, Tuple
import holidays # type: ignore
import pytz
@@ -77,12 +77,28 @@ class TimeUnit(enum.Enum):
MONTHS = 13
YEARS = 14
+ @classmethod
+ def is_valid(cls, value: Any):
+ if type(value) is int:
+ print("int")
+ return value in cls._value2member_map_
+ elif type(value) is TimeUnit:
+ print("TimeUnit")
+ return value.value in cls._value2member_map_
+ elif type(value) is str:
+ print("str")
+ return value in cls._member_names_
+ else:
+ print(type(value))
+ return False
+
def n_timeunits_from_base(
count: int,
unit: TimeUnit,
base: datetime.datetime
) -> datetime.datetime:
+ assert TimeUnit.is_valid(unit)
if count == 0:
return base