X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=datetime_utils.py;h=7787c6f0b0b74b84b84fca28bba8d2381e1d8668;hb=1574e8a3a8982fab9278ad534f9427d464e4bffb;hp=795b427c31b4e57a4551aab26badd1f81b68c9a2;hpb=09e6d10face80d98a4578ff54192b5c8bec007d7;p=python_utils.git diff --git a/datetime_utils.py b/datetime_utils.py index 795b427..7787c6f 100644 --- a/datetime_utils.py +++ b/datetime_utils.py @@ -51,12 +51,18 @@ def date_and_time_to_datetime(date: datetime.date, ) -def datetime_to_date(date: datetime.datetime) -> datetime.date: - return datetime.date( - date.year, - date.month, - date.day - ) +def datetime_to_date_and_time( + dt: datetime.datetime +) -> Tuple[datetime.date, datetime.time]: + return (dt.date(), dt.timetz()) + + +def datetime_to_date(dt: datetime.datetime) -> datetime.date: + return datetime_to_date_and_time(dt)[0] + + +def datetime_to_time(dt: datetime.datetime) -> datetime.time: + return datetime_to_date_and_time(dt)[1] # An enum to represent units with which we can compute deltas. @@ -80,13 +86,10 @@ class TimeUnit(enum.Enum): @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)) @@ -333,6 +336,8 @@ def minute_number_to_time_string(minute_num: MinuteOfDay) -> str: def parse_duration(duration: str) -> int: """Parse a duration in string form.""" + if duration.isdigit(): + return int(duration) seconds = 0 m = re.search(r'(\d+) *d[ays]*', duration) if m is not None: