sqlalchemy.py 文件源码

python
阅读 31 收藏 0 点赞 0 评论 0

项目:falcon-api 作者: Opentopic 项目源码 文件源码
def _build_filter_expressions(self, conditions, default_op, relationships):
        """
        :param conditions: conditions dictionary
        :type conditions: dict

        :param default_op: a default operator to join all filter expressions
        :type default_op: function

        :param relationships:  a dict with all joins to apply, describes current state in recurrent calls
        :type relationships: dict

        :return: expressions list
        :rtype: list
        """
        if default_op is None:
            default_op = and_

        expressions = []

        for arg, value in conditions.items():
            if arg in self._logical_operators:
                expression = self._parse_logical_op(arg, value, self._logical_operators[arg], relationships)
            else:
                expression = self._parse_tokens(self.objects_class, arg.split('__'), value, relationships,
                                                lambda c, n, v: operators.eq(n, self.deserialize_column(c, v)))
            if expression is not None:
                expressions.append(expression)
        result = None
        if len(expressions) > 1:
            result = default_op(*expressions) if default_op != not_ else not_(and_(*expressions))
        elif len(expressions) == 1:
            result = expressions[0] if default_op != not_ else not_(expressions[0])
        return result
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号