def _sqlalchemy(cls, column, like_pattern_list, match_on, _dialect,
                    **kwargs):
        if not match_on:
            match_on = "any"

        if match_on not in ["any", "all"]:
            raise ValueError("match_on must be any or all")

        if len(like_pattern_list) == 0:
            raise ValueError(
                "At least one like_pattern must be supplied in the like_pattern_list."
            )

        like_pattern_expression = get_dialect_like_pattern_expression(
            column, _dialect, like_pattern_list[0])
        if like_pattern_expression is None:
            logger.warning(
                f"Like patterns are not supported for dialect {str(_dialect.dialect.name)}"
            )
            raise NotImplementedError

        if match_on == "any":
            condition = sa.or_(*(get_dialect_like_pattern_expression(
                column, _dialect, like_pattern)
                                 for like_pattern in like_pattern_list))
        else:
            condition = sa.and_(*(get_dialect_like_pattern_expression(
                column, _dialect, like_pattern)
                                  for like_pattern in like_pattern_list))
        return condition
示例#2
0
    def _sqlalchemy(cls, column, like_pattern_list, _dialect, **kwargs):
        if len(like_pattern_list) == 0:
            raise ValueError(
                "At least one like_pattern must be supplied in the like_pattern_list."
            )

        like_pattern_expression = get_dialect_like_pattern_expression(
            column, _dialect, like_pattern_list[0], positive=False)
        if like_pattern_expression is None:
            logger.warning("Like patterns are not supported for dialect %s" %
                           str(_dialect.name))
            raise NotImplementedError

        return sa.and_(*(get_dialect_like_pattern_expression(
            column, _dialect, like_pattern, positive=False)
                         for like_pattern in like_pattern_list))
示例#3
0
    def _sqlalchemy(cls, column, like_pattern, _dialect, **kwargs):
        like_pattern_expression = get_dialect_like_pattern_expression(
            column, _dialect, like_pattern)
        if like_pattern_expression is None:
            logger.warning("Like patterns are not supported for dialect %s" %
                           str(_dialect.name))
            raise NotImplementedError

        return like_pattern_expression