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


Python voluptuous.Coerce方法代码示例

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


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

示例1: get_pagination_options

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def get_pagination_options(params, default):
    try:
        opts = voluptuous.Schema({
            voluptuous.Required(
                "limit", default=pecan.request.conf.api.max_limit):
            voluptuous.All(voluptuous.Coerce(int),
                           voluptuous.Range(min=1),
                           voluptuous.Clamp(
                               min=1, max=pecan.request.conf.api.max_limit)),
            "marker": six.text_type,
            voluptuous.Required("sort", default=default):
            voluptuous.All(
                voluptuous.Coerce(arg_to_list),
                [six.text_type]),
        }, extra=voluptuous.REMOVE_EXTRA)(params)
    except voluptuous.Invalid as e:
        abort(400, {"cause": "Argument value error",
                    "reason": str(e)})
    opts['sorts'] = opts['sort']
    del opts['sort']
    return opts 
开发者ID:gnocchixyz,项目名称:gnocchi,代码行数:23,代码来源:api.py

示例2: test_typeDetection

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def test_typeDetection(self):
        """Ensure some of the type inference operations work."""
        listSetting = setting.Setting(
            "aList",
            default=[],
            label="label",
            description="desc",
            schema=vol.Schema([float]),
        )
        self.assertEqual(listSetting.containedType, float)
        listSetting = setting.Setting(
            "aList",
            default=[],
            label="label",
            description="desc",
            schema=vol.Schema([vol.Coerce(float)]),
        )
        self.assertEqual(listSetting.containedType, float) 
开发者ID:terrapower,项目名称:armi,代码行数:20,代码来源:test_settings.py

示例3: _setSchema

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def _setSchema(self, schema):
        """Apply or auto-derive schema of the value."""
        if schema:
            self.schema = schema
        elif self.options and self.enforcedOptions:
            self.schema = vol.Schema(vol.In(self.options))
        else:
            # Coercion is needed to convert XML-read migrations (for old cases)
            # as well as in some GUI instances where lists are getting set
            # as strings.
            if isinstance(self.default, list) and self.default:
                # Non-empty default: assume the default has the desired contained type
                # Coerce all values to the first entry in the default so mixed floats and ints work.
                # Note that this will not work for settings that allow mixed
                # types in their lists (e.g. [0, '10R']), so those all need custom schemas.
                self.schema = vol.Schema([vol.Coerce(type(self.default[0]))])
            else:
                self.schema = vol.Schema(vol.Coerce(type(self.default))) 
开发者ID:terrapower,项目名称:armi,代码行数:20,代码来源:setting.py

示例4: post

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def post(self):
        enforce("create archive policy", {})
        # NOTE(jd): Initialize this one at run-time because we rely on conf
        conf = pecan.request.conf
        valid_agg_methods = list(
            archive_policy.ArchivePolicy.VALID_AGGREGATION_METHODS_VALUES
        )
        ArchivePolicySchema = voluptuous.Schema({
            voluptuous.Required("name"): six.text_type,
            voluptuous.Required("back_window", default=0): voluptuous.All(
                voluptuous.Coerce(int),
                voluptuous.Range(min=0),
            ),
            voluptuous.Required(
                "aggregation_methods",
                default=list(conf.archive_policy.default_aggregation_methods)):
            valid_agg_methods,
            voluptuous.Required("definition"): ArchivePolicyDefinitionSchema,
        })

        body = deserialize_and_validate(ArchivePolicySchema)
        # Validate the data
        try:
            ap = archive_policy.ArchivePolicy.from_dict(body)
        except ValueError as e:
            abort(400, six.text_type(e))
        enforce("create archive policy", ap)
        try:
            ap = pecan.request.indexer.create_archive_policy(ap)
        except indexer.ArchivePolicyAlreadyExists as e:
            abort(409, six.text_type(e))

        location = "/archive_policy/" + ap.name
        set_resp_location_hdr(location)
        pecan.response.status = 201
        return ap 
开发者ID:gnocchixyz,项目名称:gnocchi,代码行数:38,代码来源:api.py

示例5: get_schema

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def get_schema(cls):
        return voluptuous.All(cls.validator, voluptuous.Coerce(cls)) 
开发者ID:Mergifyio,项目名称:mergify-engine,代码行数:4,代码来源:__init__.py

示例6: containedType

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def containedType(self):
        """The subtype for lists."""
        # assume schema set to [int] or [str] or something similar
        try:
            containedSchema = self.schema.schema[0]
            if isinstance(containedSchema, vol.Coerce):
                # special case for Coerce objects, which
                # store their underlying type as ``.type``.
                return containedSchema.type
            return containedSchema
        except TypeError:
            # cannot infer. fall back to str
            return str 
开发者ID:terrapower,项目名称:armi,代码行数:15,代码来源:setting.py

示例7: test_can_validate_and_coerce_multiple_provisioner_schemas

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def test_can_validate_and_coerce_multiple_provisioner_schemas(self, mock_Provisioner):
        mock_Provisioner.provisioners = {
            'mp1': MockProvisioner1,
            'mp2': MockProvisioner2,
            'mp3': MockProvisioner3}
        schema = get_schema()
        validated = schema({
            'name': 'dummy-test',
            'provisioning': [{
                'type': 'mp1',
                'a': 'dummy',
                'b': '16'
            }, {
                'type': 'mp2',
                'a': 'dummy',
            }, {
                'type': 'mp3',
                'b': 'yes'
            }]
        })
        assert validated == {
            'name': 'dummy-test',
            'provisioning': [{
                'type': 'mp1',
                'a': 'dummy',
                'b': 16  # Check Coerce
            }, {
                'type': 'mp2',
                'a': 'dummy',
            }, {
                'type': 'mp3',
                'b': True  # Check Boolean
            }]
        } 
开发者ID:lxdock,项目名称:lxdock,代码行数:36,代码来源:test_schema.py

示例8: __init__

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def __init__(self, param_type):
        self._validate = voluptuous.Coerce(param_type) 
开发者ID:openstack,项目名称:cloudkitty,代码行数:4,代码来源:utils.py

示例9: __init__

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def __init__(self, key_type, value_type, cast=True):
        if cast:
            self._kval = voluptuous.Coerce(key_type)
            self._vval = voluptuous.Coerce(value_type)
        else:
            def __type_validator(type_, elem):
                if not isinstance(elem, type_):
                    raise voluptuous.Invalid(
                        "{e} is not of type {t}".format(e=elem, t=type_))
                return elem

            self._kval = functools.partial(__type_validator, key_type)
            self._vval = functools.partial(__type_validator, value_type) 
开发者ID:openstack,项目名称:cloudkitty,代码行数:15,代码来源:validation.py

示例10: is_heartbeat

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def is_heartbeat(value):
    """Validate that value is a valid heartbeat integer."""
    try:
        value = vol.Coerce(int)(value)
        return value
    except vol.Invalid:
        _LOGGER.warning(
            "%s is not a valid heartbeat value, falling back to heartbeat 0", value
        )
        return 0 
开发者ID:theolind,项目名称:pymysensors,代码行数:12,代码来源:validation.py

示例11: validate_gps

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def validate_gps(value):
    """Validate GPS value."""
    try:
        latitude, longitude, altitude = value.split(",")
        vol.Coerce(float)(latitude)
        vol.Coerce(float)(longitude)
        vol.Coerce(float)(altitude)
    except (TypeError, ValueError, vol.Invalid):
        raise vol.Invalid('GPS value should be of format "latitude,longitude,altitude"')
    return value 
开发者ID:theolind,项目名称:pymysensors,代码行数:12,代码来源:const_20.py

示例12: __init__

# 需要导入模块: import voluptuous [as 别名]
# 或者: from voluptuous import Coerce [as 别名]
def __init__(self, allow_extra):
        self.schema = v.Schema(
            {
                v.Required('id'): int,
                v.Required('client_name'): v.All(str, v.Length(max=255)),
                v.Required('sort_index'): float,
                # v.Optional('client_email'): v.Maybe(v.Email),
                v.Optional('client_phone'): v.Maybe(v.All(str, v.Length(max=255))),
                v.Optional('location'): v.Maybe(
                    v.Schema(
                        {
                            'latitude': v.Maybe(float),
                            'longitude': v.Maybe(float)
                        },
                        required=True
                    )
                ),
                v.Optional('contractor'): v.Maybe(v.All(v.Coerce(int), v.Range(min=1))),
                v.Optional('upstream_http_referrer'): v.Maybe(v.All(str, v.Length(max=1023))),
                v.Required('grecaptcha_response'): v.All(str, v.Length(min=20, max=1000)),
                v.Optional('last_updated'): v.Maybe(parse_datetime),
                v.Required('skills', default=[]): [
                    v.Schema(
                        {
                            v.Required('subject'): str,
                            v.Required('subject_id'): int,
                            v.Required('category'): str,
                            v.Required('qual_level'): str,
                            v.Required('qual_level_id'): int,
                            v.Required('qual_level_ranking', default=0): float,
                        }
                    )
                ],
            },
            extra=allow_extra,
        ) 
开发者ID:samuelcolvin,项目名称:pydantic,代码行数:38,代码来源:test_voluptuous.py


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