2014-08-27 15:17:06 +00:00
|
|
|
from __future__ import unicode_literals
|
2013-12-05 11:16:56 +00:00
|
|
|
# TODO add tests for all of these
|
2015-08-01 23:32:33 +00:00
|
|
|
|
|
|
|
EQ_FUNCTION = lambda item_value, test_value: item_value == test_value
|
|
|
|
NE_FUNCTION = lambda item_value, test_value: item_value != test_value
|
|
|
|
LE_FUNCTION = lambda item_value, test_value: item_value <= test_value
|
|
|
|
LT_FUNCTION = lambda item_value, test_value: item_value < test_value
|
|
|
|
GE_FUNCTION = lambda item_value, test_value: item_value >= test_value
|
|
|
|
GT_FUNCTION = lambda item_value, test_value: item_value > test_value
|
|
|
|
|
2013-12-05 11:16:56 +00:00
|
|
|
COMPARISON_FUNCS = {
|
2015-08-01 23:32:33 +00:00
|
|
|
'EQ': EQ_FUNCTION,
|
|
|
|
'=': EQ_FUNCTION,
|
|
|
|
|
|
|
|
'NE': NE_FUNCTION,
|
|
|
|
'!=': NE_FUNCTION,
|
|
|
|
|
|
|
|
'LE': LE_FUNCTION,
|
|
|
|
'<=': LE_FUNCTION,
|
|
|
|
|
|
|
|
'LT': LT_FUNCTION,
|
|
|
|
'<': LT_FUNCTION,
|
|
|
|
|
|
|
|
'GE': GE_FUNCTION,
|
|
|
|
'>=': GE_FUNCTION,
|
|
|
|
|
|
|
|
'GT': GT_FUNCTION,
|
|
|
|
'>': GT_FUNCTION,
|
|
|
|
|
2013-12-05 11:16:56 +00:00
|
|
|
'NULL': lambda item_value: item_value is None,
|
|
|
|
'NOT_NULL': lambda item_value: item_value is not None,
|
|
|
|
'CONTAINS': lambda item_value, test_value: test_value in item_value,
|
|
|
|
'NOT_CONTAINS': lambda item_value, test_value: test_value not in item_value,
|
|
|
|
'BEGINS_WITH': lambda item_value, test_value: item_value.startswith(test_value),
|
|
|
|
'IN': lambda item_value, test_value: item_value in test_value,
|
|
|
|
'BETWEEN': lambda item_value, lower_test_value, upper_test_value: lower_test_value <= item_value <= upper_test_value,
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def get_comparison_func(range_comparison):
|
|
|
|
return COMPARISON_FUNCS.get(range_comparison)
|