当前位置: 首页>>代码示例>>Python>>正文


Python exceptions.JMESPathTypeError方法代码示例

本文整理汇总了Python中jmespath.exceptions.JMESPathTypeError方法的典型用法代码示例。如果您正苦于以下问题:Python exceptions.JMESPathTypeError方法的具体用法?Python exceptions.JMESPathTypeError怎么用?Python exceptions.JMESPathTypeError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jmespath.exceptions的用法示例。


在下文中一共展示了exceptions.JMESPathTypeError方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _type_check_single

# 需要导入模块: from jmespath import exceptions [as 别名]
# 或者: from jmespath.exceptions import JMESPathTypeError [as 别名]
def _type_check_single(self, current, types, function_name):
        # Type checking involves checking the top level type,
        # and in the case of arrays, potentially checking the types
        # of each element.
        allowed_types, allowed_subtypes = self._get_allowed_pytypes(types)
        # We're not using isinstance() on purpose.
        # The type model for jmespath does not map
        # 1-1 with python types (booleans are considered
        # integers in python for example).
        actual_typename = type(current).__name__
        if actual_typename not in allowed_types:
            raise exceptions.JMESPathTypeError(
                function_name, current,
                self._convert_to_jmespath_type(actual_typename), types)
        # If we're dealing with a list type, we can have
        # additional restrictions on the type of the list
        # elements (for example a function can require a
        # list of numbers or a list of strings).
        # Arrays are the only types that can have subtypes.
        if allowed_subtypes:
            self._subtype_check(current, allowed_subtypes,
                                types, function_name) 
开发者ID:skarlekar,项目名称:faces,代码行数:24,代码来源:functions.py

示例2: _func_sort_by

# 需要导入模块: from jmespath import exceptions [as 别名]
# 或者: from jmespath.exceptions import JMESPathTypeError [as 别名]
def _func_sort_by(self, array, expref):
        if not array:
            return array
        # sort_by allows for the expref to be either a number of
        # a string, so we have some special logic to handle this.
        # We evaluate the first array element and verify that it's
        # either a string of a number.  We then create a key function
        # that validates that type, which requires that remaining array
        # elements resolve to the same type as the first element.
        required_type = self._convert_to_jmespath_type(
            type(expref.visit(expref.expression, array[0])).__name__)
        if required_type not in ['number', 'string']:
            raise exceptions.JMESPathTypeError(
                'sort_by', array[0], required_type, ['string', 'number'])
        keyfunc = self._create_key_func(expref,
                                        [required_type],
                                        'sort_by')
        return list(sorted(array, key=keyfunc)) 
开发者ID:skarlekar,项目名称:faces,代码行数:20,代码来源:functions.py

示例3: _func_sort_by

# 需要导入模块: from jmespath import exceptions [as 别名]
# 或者: from jmespath.exceptions import JMESPathTypeError [as 别名]
def _func_sort_by(self, array, expref):
        if not array:
            return array
        # sort_by allows for the expref to be either a number of
        # a string, so we have some special logic to handle this.
        # We evaluate the first array element and verify that it's
        # either a string of a number.  We then create a key function
        # that validates that type, which requires that remaining array
        # elements resolve to the same type as the first element.
        required_type = self._convert_to_jmespath_type(
            type(self.interpreter.visit(expref.expression, array[0])).__name__)
        if required_type not in ['number', 'string']:
            raise exceptions.JMESPathTypeError(
                'sort_by', array[0], required_type, ['string', 'number'])
        keyfunc = self._create_key_func(expref.expression,
                                        [required_type],
                                        'sort_by')
        return list(sorted(array, key=keyfunc)) 
开发者ID:awslabs,项目名称:mxnet-lambda,代码行数:20,代码来源:functions.py

示例4: _subtype_check

# 需要导入模块: from jmespath import exceptions [as 别名]
# 或者: from jmespath.exceptions import JMESPathTypeError [as 别名]
def _subtype_check(self, current, allowed_subtypes, types, function_name):
        if len(allowed_subtypes) == 1:
            # The easy case, we know up front what type
            # we need to validate.
            allowed_subtypes = allowed_subtypes[0]
            for element in current:
                actual_typename = type(element).__name__
                if actual_typename not in allowed_subtypes:
                    raise exceptions.JMESPathTypeError(
                        function_name, element, actual_typename, types)
        elif len(allowed_subtypes) > 1 and current:
            # Dynamic type validation.  Based on the first
            # type we see, we validate that the remaining types
            # match.
            first = type(current[0]).__name__
            for subtypes in allowed_subtypes:
                if first in subtypes:
                    allowed = subtypes
                    break
            else:
                raise exceptions.JMESPathTypeError(
                    function_name, current[0], first, types)
            for element in current:
                actual_typename = type(element).__name__
                if actual_typename not in allowed:
                    raise exceptions.JMESPathTypeError(
                        function_name, element, actual_typename, types) 
开发者ID:skarlekar,项目名称:faces,代码行数:29,代码来源:functions.py

示例5: _create_key_func

# 需要导入模块: from jmespath import exceptions [as 别名]
# 或者: from jmespath.exceptions import JMESPathTypeError [as 别名]
def _create_key_func(self, expref, allowed_types, function_name):
        def keyfunc(x):
            result = expref.visit(expref.expression, x)
            actual_typename = type(result).__name__
            jmespath_type = self._convert_to_jmespath_type(actual_typename)
            # allowed_types is in term of jmespath types, not python types.
            if jmespath_type not in allowed_types:
                raise exceptions.JMESPathTypeError(
                    function_name, result, jmespath_type, allowed_types)
            return result
        return keyfunc 
开发者ID:skarlekar,项目名称:faces,代码行数:13,代码来源:functions.py

示例6: main

# 需要导入模块: from jmespath import exceptions [as 别名]
# 或者: from jmespath.exceptions import JMESPathTypeError [as 别名]
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('expression')
    parser.add_argument('-f', '--filename',
                        help=('The filename containing the input data.  '
                              'If a filename is not given then data is '
                              'read from stdin.'))
    parser.add_argument('--ast', action='store_true',
                        help=('Pretty print the AST, do not search the data.'))
    args = parser.parse_args()
    expression = args.expression
    if args.ast:
        # Only print the AST
        expression = jmespath.compile(args.expression)
        sys.stdout.write(pformat(expression.parsed))
        sys.stdout.write('\n')
        return 0
    if args.filename:
        with open(args.filename, 'r') as f:
            data = json.load(f)
    else:
        data = sys.stdin.read()
        data = json.loads(data)
    try:
        sys.stdout.write(json.dumps(
            jmespath.search(expression, data), indent=4))
        sys.stdout.write('\n')
    except exceptions.ArityError as e:
        sys.stderr.write("invalid-arity: %s\n" % e)
        return 1
    except exceptions.JMESPathTypeError as e:
        sys.stderr.write("invalid-type: %s\n" % e)
        return 1
    except exceptions.UnknownFunctionError as e:
        sys.stderr.write("unknown-function: %s\n" % e)
        return 1
    except exceptions.ParseError as e:
        sys.stderr.write("syntax-error: %s\n" % e)
        return 1 
开发者ID:QData,项目名称:deepWordBug,代码行数:41,代码来源:jp.py

示例7: _create_key_func

# 需要导入模块: from jmespath import exceptions [as 别名]
# 或者: from jmespath.exceptions import JMESPathTypeError [as 别名]
def _create_key_func(self, expr_node, allowed_types, function_name):
        interpreter = self.interpreter

        def keyfunc(x):
            result = interpreter.visit(expr_node, x)
            actual_typename = type(result).__name__
            jmespath_type = self._convert_to_jmespath_type(actual_typename)
            # allowed_types is in term of jmespath types, not python types.
            if jmespath_type not in allowed_types:
                raise exceptions.JMESPathTypeError(
                    function_name, result, jmespath_type, allowed_types)
            return result
        return keyfunc 
开发者ID:awslabs,项目名称:mxnet-lambda,代码行数:15,代码来源:functions.py


注:本文中的jmespath.exceptions.JMESPathTypeError方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。