sqlalchemy.py 文件源码

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

项目:falcon-api 作者: Opentopic 项目源码 文件源码
def _parse_logical_op(self, arg, value, default_op, relationships):
        """
        :param arg: condition name
        :type arg: str

        :param value: condition value
        :type value: dict | list

        :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 isinstance(value, dict):
            return self._build_filter_expressions(value, default_op, relationships)
        if not isinstance(value, list):
            raise HTTPBadRequest('Invalid attribute', 'Filter attribute {} is invalid'.format(arg))
        expressions = []
        for subconditions in value:
            if not isinstance(subconditions, dict):
                raise HTTPBadRequest('Invalid attribute', 'Filter attribute {} is invalid'.format(arg))
            subexpressions = self._build_filter_expressions(subconditions, and_, relationships)
            if subexpressions is not None:
                expressions.append(subexpressions)
        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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号