import acl
import bootstrap
-from decorator_utils import decorate_matching_methods_with
+from datetime_utils import (
+ TimeUnit, n_timeunits_from_base, datetime_to_date, date_to_datetime
+)
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 decorator_utils import decorate_matching_methods_with
logger = logging.getLogger(__name__)
'exit*',
],
denied_patterns=None,
- order_to_check_allow_deny=acl.ACL_ORDER_DENY_ALLOW,
+ order_to_check_allow_deny=acl.Order.DENY_ALLOW,
default_answer=False
)
)
idea of "now" so that the code can be more easily unittested.
Leave as None for real use cases.
"""
- from datetime_utils import TimeUnit
self.month_name_to_number = {
'jan': 1,
'feb': 2,
def _reset(self):
"""Reset at init and between parses."""
- from datetime_utils import datetime_to_date
if self.override_now_for_test_purposes is None:
self.now_datetime = datetime.datetime.now()
self.today = datetime.date.today()
name = name.replace('washi', 'presi')
return name
- def _figure_out_date_unit(self, orig: str) -> int:
+ def _figure_out_date_unit(self, orig: str) -> TimeUnit:
"""Figure out what unit a date expression piece is talking about."""
- from datetime_utils import TimeUnit
if 'month' in orig:
return TimeUnit.MONTHS
txt = orig.lower()[:3]
def exitDateExpr(self, ctx: dateparse_utilsParser.DateExprContext) -> None:
"""When we leave the date expression, populate self.date."""
- from datetime_utils import (
- n_timeunits_from_base, datetime_to_date, date_to_datetime
- )
if 'special' in self.context:
self.date = self._parse_special_date(self.context['special'])
else:
def exitTimeExpr(self, ctx: dateparse_utilsParser.TimeExprContext) -> None:
# Simple time?
- from datetime_utils import TimeUnit
self.time = datetime.time(
self.context['hour'],
self.context['minute'],
def exitDeltaTimeFraction(
self, ctx: dateparse_utilsParser.DeltaTimeFractionContext
) -> None:
- from datetime_utils import TimeUnit
try:
txt = ctx.getText().lower()[:4]
if txt == 'quar':
def exitNFoosFromTodayAgoExpr(
self, ctx: dateparse_utilsParser.NFoosFromTodayAgoExprContext
) -> None:
- from datetime_utils import n_timeunits_from_base
d = self.now_datetime
try:
count = self._get_int(ctx.unsignedInt().getText())
def exitDeltaRelativeToTodayExpr(
self, ctx: dateparse_utilsParser.DeltaRelativeToTodayExprContext
) -> None:
- from datetime_utils import n_timeunits_from_base
d = self.now_datetime
try:
mod = ctx.thisNextLast()
pass
def main() -> None:
parser = DateParser()
for line in sys.stdin:
if __name__ == "__main__":
- main = bootstrap.initialize(main)
main()