Skip to content

Commit 08e89e4

Browse files
committed
Enable extractionFn on Search Filter and Like Filter
1 parent a30ade9 commit 08e89e4

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

pydruid/utils/filters.py

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class Filter:
3232
"bound",
3333
"interval",
3434
"extraction",
35+
"like",
36+
"search",
3537
)
3638

3739
def __init__(self, extraction_function=None, ordering="lexicographic", **args):

tests/utils/test_filters.py

+36-1
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,44 @@ def test_search_filter(self):
275275
'query': {'type': 'contains', 'caseSensitive': 'true', 'value': 'val'}}
276276
assert actual == expected
277277

278+
def test_search_filter_with_extraction_function(self):
279+
extraction_fn = dimensions.RegexExtraction("([a-b])")
280+
actual = filters.Filter.build_filter(
281+
filters.Filter(
282+
type="search",
283+
dimension="dim",
284+
value="val",
285+
extraction_function=extraction_fn,
286+
)
287+
)
288+
expected = {
289+
"type": "search",
290+
"dimension": "dim",
291+
"query": {"type": "contains", "caseSensitive": "false", "value": "val"},
292+
"extractionFn": {"type": "regex", "expr": "([a-b])"},
293+
}
294+
assert actual == expected
295+
278296
def test_like_filter(self):
279297
actual = filters.Filter.build_filter(
280298
filters.Filter(type="like", dimension="dim", pattern="%val%"))
281299
expected = {'type': 'like', 'dimension': 'dim', 'pattern': '%val%'}
282300
assert actual == expected
283-
301+
302+
def test_like_filter_with_extraction_function(self):
303+
extraction_fn = dimensions.RegexExtraction("([a-b])")
304+
actual = filters.Filter.build_filter(
305+
filters.Filter(
306+
type="like",
307+
dimension="dim",
308+
pattern="%val%",
309+
extraction_function=extraction_fn,
310+
)
311+
)
312+
expected = {
313+
"type": "like",
314+
"dimension": "dim",
315+
"pattern": "%val%",
316+
"extractionFn": {"type": "regex", "expr": "([a-b])"},
317+
}
318+
assert actual == expected

0 commit comments

Comments
 (0)