Extract_datetime cleanup

Cleaned up a few things noticed during review of Spanish extract_datetime_es() implementation.
pull/1808/head
Steve Penrod 2018-09-24 15:59:28 -05:00
parent 1ad41ef5ec
commit 3c94435f0e
5 changed files with 20 additions and 13 deletions

View File

@ -191,8 +191,8 @@ def extract_datetime_de(string, currentDate, default_time):
datestr != "" or timeStr != "" or
yearOffset != 0 or monthOffset != 0 or
dayOffset is True or hrOffset != 0 or
hrAbs != 0 or minOffset != 0 or
minAbs != 0 or secOffset != 0
hrAbs or minOffset != 0 or
minAbs or secOffset != 0
)
if string == "" or not currentDate:
@ -809,7 +809,7 @@ def extract_datetime_de(string, currentDate, default_time):
extractedDate = extractedDate + relativedelta(hours=hrAbs or 0,
minutes=minAbs or 0)
if (hrAbs != 0 or minAbs != 0) and datestr == "":
if (hrAbs or minAbs) and datestr == "":
if not daySpecified and dateNow > extractedDate:
extractedDate = extractedDate + relativedelta(days=1)
if hrOffset != 0:

View File

@ -303,7 +303,8 @@ def extract_datetime_en(string, dateNow, default_time):
Returns:
[datetime, str]: An array containing the datetime and the remaining
text not consumed in the parsing.
text not consumed in the parsing, or None if no
date or time related text was found.
"""
def clean_string(s):
@ -334,8 +335,8 @@ def extract_datetime_en(string, dateNow, default_time):
datestr != "" or
yearOffset != 0 or monthOffset != 0 or
dayOffset is True or hrOffset != 0 or
hrAbs != 0 or minOffset != 0 or
minAbs != 0 or secOffset != 0
hrAbs or minOffset != 0 or
minAbs or secOffset != 0
)
if string == "" or not dateNow:

View File

@ -406,8 +406,8 @@ def extract_datetime_it(string, currentDate, default_time):
datestr != "" or timeStr != "" or
yearOffset != 0 or monthOffset != 0 or
dayOffset is True or hrOffset != 0 or
hrAbs != 0 or minOffset != 0 or
minAbs != 0 or secOffset != 0
hrAbs or minOffset != 0 or
minAbs or secOffset != 0
)
if string == "" or not currentDate:

View File

@ -151,8 +151,8 @@ def extract_datetime_sv(string, currentDate, default_time):
datestr != "" or timeStr != "" or
yearOffset != 0 or monthOffset != 0 or
dayOffset is True or hrOffset != 0 or
hrAbs != 0 or minOffset != 0 or
minAbs != 0 or secOffset != 0
hrAbs or minOffset != 0 or
minAbs or secOffset != 0
)
if string == "" or not currentDate:
@ -704,10 +704,9 @@ def extract_datetime_sv(string, currentDate, default_time):
hrAbs = default_time.hour
minAbs = default_time.minute
if hrAbs != -1 and minAbs != -1:
print(hrAbs)
extractedDate = extractedDate + relativedelta(hours=hrAbs or 0,
minutes=minAbs or 0)
if (hrAbs != 0 or minAbs != 0) and datestr == "":
if (hrAbs or minAbs) and datestr == "":
if not daySpecified and dateNow > extractedDate:
extractedDate = extractedDate + relativedelta(days=1)
if hrOffset != 0:

View File

@ -134,9 +134,10 @@ def extract_datetime(text, anchorDate=None, lang="en-us", default_time=None):
related keywords stripped out. See examples for further
clarification
Returns 'None' if the input string is empty.
Returns 'None' if no date or time related text is found.
Examples:
>>> extract_datetime(
... "What is the weather like the day after tomorrow?",
... datetime(2017, 06, 30, 00, 00)
@ -148,6 +149,12 @@ def extract_datetime(text, anchorDate=None, lang="en-us", default_time=None):
... datetime(2016, 02, 19, 00, 00)
... )
[datetime.datetime(2016, 3, 6, 17, 0), 'set up appointment']
>>> extract_datetime(
... "Set up an appointment",
... datetime(2016, 02, 19, 00, 00)
... )
None
"""
lang_lower = str(lang).lower()