Skip to content

Commit

Permalink
Fix support for 'now' when no modifiers are present
Browse files Browse the repository at this point in the history
  • Loading branch information
inean committed Feb 21, 2014
1 parent 9a416d7 commit d7304f1
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
8 changes: 4 additions & 4 deletions parsedatetime/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -900,7 +900,7 @@ def _evalModifier(self, modifier, chunk1, chunk2, sourceTime):

if not flag:
m = self.ptc.CRE_TIME.match(unit)
if m is not None:
if m is not None or unit in self.ptc.re_values['now']:
log.debug('CRE_TIME matched')
self.modifierFlag = False
(yr, mth, dy, hr, mn, sec, wd, yd, isdst), _ = self.parse(unit)
Expand Down Expand Up @@ -1492,10 +1492,10 @@ def parse(self, datetimeString, sourceTime=None):
if parseStr == '':
# Natural language time strings
m = self.ptc.CRE_TIME.search(s)
if m is not None:
if m is not None or s in self.ptc.re_values['now']:
self.timeStrFlag = True
self.timeFlag = 2
if (m.group('time') != s):
if (m and m.group('time') != s):
# capture remaining string
parseStr = m.group('time')
chunk1 = s[:m.start('time')]
Expand Down Expand Up @@ -2122,7 +2122,7 @@ def __init__(self, localeID=None, usePyICU=True, fallbackLocales=['en_US']):
lmodifiers = []
lmodifiers2 = []
for s in self.locale.Modifiers:
if self.locale.Modifiers[s] < 0 or s == 'after':
if self.locale.Modifiers[s] < 0 or s in ['after', 'from']:
lmodifiers2.append(s)
elif self.locale.Modifiers[s] > 0:
lmodifiers.append(s)
Expand Down
18 changes: 13 additions & 5 deletions parsedatetime/tests/TestSimpleOffsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ def setUp(self):
self.cal = pdt.Calendar()
self.yr, self.mth, self.dy, self.hr, self.mn, self.sec, self.wd, self.yd, self.isdst = time.localtime()

def testNow(self):
s = datetime.datetime.now()

start = s.timetuple()
target = s.timetuple()

self.assertTrue(_compareResults(self.cal.parse('now', start), (target, 2)))

def testMinutesFromNow(self):
s = datetime.datetime.now()
t = s + datetime.timedelta(minutes=5)
Expand Down Expand Up @@ -87,11 +95,11 @@ def testWeekBeforeNow(self):
start = s.timetuple()
target = t.timetuple()

self.assertTrue(_compareResults(self.cal.parse('1 week before now', start), (target, 0)))
self.assertTrue(_compareResults(self.cal.parse('one week before now', start), (target, 0)))
self.assertTrue(_compareResults(self.cal.parse('7 days before now', start), (target, 0)))
self.assertTrue(_compareResults(self.cal.parse('seven days before now', start), (target, 0)))
#self.assertTrue(_compareResults(self.cal.parse('last week', start), (target, 0)))
self.assertTrue(_compareResults(self.cal.parse('1 week before now', start), (target, 1)))
self.assertTrue(_compareResults(self.cal.parse('one week before now', start), (target, 1)))
self.assertTrue(_compareResults(self.cal.parse('7 days before now', start), (target, 1)))
self.assertTrue(_compareResults(self.cal.parse('seven days before now', start), (target, 1)))
#self.assertTrue(_compareResults(self.cal.parse('last week', tart), (target, 1)))

def testSpecials(self):
s = datetime.datetime.now()
Expand Down

0 comments on commit d7304f1

Please sign in to comment.