2018-05-22 17:57:34 -05:00
|
|
|
import logging
|
2019-07-12 15:03:04 -05:00
|
|
|
from datetime import datetime
|
|
|
|
from datetime import timezone
|
|
|
|
|
|
|
|
from dateutil import parser
|
2018-05-22 17:57:34 -05:00
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
def strtobool(s: str) -> bool:
|
2018-06-17 12:21:59 -05:00
|
|
|
if s in ["y", "yes", "true", "on", "1"]:
|
2018-05-22 17:57:34 -05:00
|
|
|
return True
|
2018-06-17 12:21:59 -05:00
|
|
|
if s in ["n", "no", "false", "off", "0"]:
|
2018-05-22 17:57:34 -05:00
|
|
|
return False
|
|
|
|
|
2018-06-17 12:21:59 -05:00
|
|
|
raise ValueError(f"cannot convert {s} to bool")
|
2019-07-12 15:03:04 -05:00
|
|
|
|
|
|
|
|
2019-07-12 17:14:29 -05:00
|
|
|
def parse_datetime(s: str) -> datetime:
|
2019-07-12 15:03:04 -05:00
|
|
|
# Parses the datetime with dateutil
|
|
|
|
dt = parser.parse(s)
|
|
|
|
|
|
|
|
# If no TZ is set, assumes it's UTC
|
|
|
|
if not dt.tzinfo:
|
|
|
|
dt = dt.replace(tzinfo=timezone.utc)
|
|
|
|
|
|
|
|
return dt
|