mirror of
https://github.com/khoj-ai/khoj.git
synced 2025-02-17 08:04:21 +00:00
Handle unparseable date range passed via date filter in query
- Do not reuse the same list - Just create new list, so only parsed data is in it
This commit is contained in:
parent
a60de2c02b
commit
85077bc1d1
2 changed files with 7 additions and 3 deletions
|
@ -63,10 +63,11 @@ def extract_date_range(query):
|
|||
|
||||
# extract, parse natural dates ranges from date range filter passed in query
|
||||
# e.g today maps to (start_of_day, start_of_tomorrow)
|
||||
for index, (cmp, date_str) in enumerate(date_range_matches):
|
||||
date_ranges_from_filter = []
|
||||
for (cmp, date_str) in date_range_matches:
|
||||
if parse(date_str):
|
||||
dt_start, dt_end = parse(date_str)
|
||||
date_range_matches[index] = [cmp, (dt_start.timestamp(), dt_end.timestamp())]
|
||||
date_ranges_from_filter += [[cmp, (dt_start.timestamp(), dt_end.timestamp())]]
|
||||
|
||||
# Combine dates with their comparators to form date range intervals
|
||||
# For e.g
|
||||
|
@ -75,7 +76,7 @@ def extract_date_range(query):
|
|||
# ---
|
||||
effective_date_range = [0, inf]
|
||||
date_range_considering_comparator = []
|
||||
for cmp, (dtrange_start, dtrange_end) in date_range_matches:
|
||||
for cmp, (dtrange_start, dtrange_end) in date_ranges_from_filter:
|
||||
if cmp == '>':
|
||||
date_range_considering_comparator += [[dtrange_end, inf]]
|
||||
elif cmp == '>=':
|
||||
|
|
|
@ -60,6 +60,9 @@ def test_extract_date_range():
|
|||
assert date_filter.extract_date_range('head dt>="1984-01-01"') == [datetime(1984, 1, 1, 0, 0, 0).timestamp(), inf]
|
||||
assert date_filter.extract_date_range('head dt:"1984-01-01"') == [datetime(1984, 1, 1, 0, 0, 0).timestamp(), datetime(1984, 1, 2, 0, 0, 0).timestamp()]
|
||||
|
||||
# Unparseable date filter specified in query
|
||||
assert date_filter.extract_date_range('head dt:"Summer of 69" tail') == None
|
||||
|
||||
# No date filter specified in query
|
||||
assert date_filter.extract_date_range('head tail') == None
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue