summaryrefslogtreecommitdiff
path: root/dateparse/dateparse_utils.py
diff options
context:
space:
mode:
authorScott <[email protected]>2022-02-02 13:09:30 -0800
committerScott <[email protected]>2022-02-02 13:09:30 -0800
commit6ba90a1f30f1c0cf4df12fcd0c62181f29bc3668 (patch)
tree6c4d558173ed76df50f7b2f88af8f99119d932ab /dateparse/dateparse_utils.py
parent31c81f6539969a5eba864d3305f9fb7bf716a367 (diff)
Make subdirs type clean too.
Diffstat (limited to 'dateparse/dateparse_utils.py')
-rwxr-xr-xdateparse/dateparse_utils.py42
1 files changed, 22 insertions, 20 deletions
diff --git a/dateparse/dateparse_utils.py b/dateparse/dateparse_utils.py
index be5e1b5..7ca3cf3 100755
--- a/dateparse/dateparse_utils.py
+++ b/dateparse/dateparse_utils.py
@@ -7,7 +7,6 @@ Parse dates in a variety of formats.
import datetime
import functools
-import holidays # type: ignore
import logging
import re
import sys
@@ -16,21 +15,21 @@ from typing import Any, Callable, Dict, Optional
import antlr4 # type: ignore
import dateutil.easter
import dateutil.tz
+import holidays # type: ignore
import pytz
import acl
import bootstrap
+import decorator_utils
+from dateparse.dateparse_utilsLexer import dateparse_utilsLexer # type: ignore
+from dateparse.dateparse_utilsListener import dateparse_utilsListener # type: ignore
+from dateparse.dateparse_utilsParser import dateparse_utilsParser # type: ignore
from datetime_utils import (
TimeUnit,
- n_timeunits_from_base,
- datetime_to_date,
date_to_datetime,
+ datetime_to_date,
+ n_timeunits_from_base,
)
-from dateparse.dateparse_utilsLexer import dateparse_utilsLexer # type: ignore
-from dateparse.dateparse_utilsListener import dateparse_utilsListener # type: ignore
-from dateparse.dateparse_utilsParser import dateparse_utilsParser # type: ignore
-import decorator_utils
-
logger = logging.getLogger(__name__)
@@ -225,8 +224,9 @@ class DateParser(dateparse_utilsListener):
to timezone naive (i.e. tzinfo = None).
"""
dt = self.datetime
- if tz is not None:
- dt = dt.replace(tzinfo=None).astimezone(tz=tz)
+ if dt is not None:
+ if tz is not None:
+ dt = dt.replace(tzinfo=None).astimezone(tz=tz)
return dt
# -- helpers --
@@ -376,25 +376,25 @@ class DateParser(dateparse_utilsListener):
# Try pytz
try:
- tz = pytz.timezone(txt)
- if tz is not None:
- return tz
+ tz1 = pytz.timezone(txt)
+ if tz1 is not None:
+ return tz1
except Exception:
pass
# Try dateutil
try:
- tz = dateutil.tz.gettz(txt)
- if tz is not None:
- return tz
+ tz2 = dateutil.tz.gettz(txt)
+ if tz2 is not None:
+ return tz2
except Exception:
pass
# Try constructing an offset in seconds
try:
- sign = txt[0]
- if sign == '-' or sign == '+':
- sign = +1 if sign == '+' else -1
+ txt_sign = txt[0]
+ if txt_sign == '-' or txt_sign == '+':
+ sign = +1 if txt_sign == '+' else -1
hour = int(txt[1:3])
minute = int(txt[-2:])
offset = sign * (hour * 60 * 60) + sign * (minute * 60)
@@ -441,6 +441,7 @@ class DateParser(dateparse_utilsListener):
# Apply resudual adjustments to times here when we have a
# datetime.
self.datetime = self.datetime + self.timedelta
+ assert self.datetime
self.time = datetime.time(
self.datetime.hour,
self.datetime.minute,
@@ -547,7 +548,7 @@ class DateParser(dateparse_utilsListener):
elif unit == TimeUnit.HOURS:
self.timedelta = datetime.timedelta(hours=count)
else:
- raise ParseException()
+ raise ParseException(f'Invalid Unit: "{unit}"')
def exitDeltaPlusMinusExpr(
self, ctx: dateparse_utilsParser.DeltaPlusMinusExprContext
@@ -1027,6 +1028,7 @@ def main() -> None:
logger.exception(e)
print("Unrecognized.")
else:
+ assert dt
print(dt.strftime('%A %Y/%m/%d %H:%M:%S.%f %Z(%z)'))
sys.exit(0)