'Return an anonymous filter function that will be passed the array
of parsed columns. Return None if no filter function can be
created for the given params.
The function will compare the column at index `column` against `val`
using the given op where op is one of:
- lt: less than
- le: less than or equal to
- eq: equal to
- ne: not equal to
- ge: greather than or equal to
- gt: greater than
`val` is cast as float here and will return None if there\'s a parsing error.'

def create_numeric_filter(self, column, op, val):

    try:
        val = float(val)
    except ValueError:
        return None
    if ('lt' == op):
        return (lambda d: (d[column] < val))
    elif ('le' == op):
        return (lambda d: (d[column] <= val))
    elif ('eq' == op):
        return (lambda d: (d[column] == val))
    elif ('ne' == op):
        return (lambda d: (d[column] != val))
    elif ('ge' == op):
        return (lambda d: (d[column] >= val))
    elif ('gt' == op):
        return (lambda d: (d[column] > val))
    return None
