'Attempt to parse filter as a custom/fn filter, then an orm filter, and
if neither work - raise an error.
:raises exceptions.RequestParameterInvalidException: if no functional or orm
filter can be parsed.'

def parse_filter(self, attr, op, val):

    try:
        fn_filter = self._parse_fn_filter(attr, op, val)
        if (fn_filter is not None):
            return fn_filter
        orm_filter = self._parse_orm_filter(attr, op, val)
        if (orm_filter is not None):
            return orm_filter
    except ValueError as val_err:
        raise exceptions.RequestParameterInvalidException('unparsable    value    for    filter', column=attr, operation=op, value=val, ValueError=str(val_err))
    raise exceptions.RequestParameterInvalidException('bad    filter', column=attr, operation=op)
