跳转到主要内容

非常简单有效的模式检查器

项目描述

poormanschema

简单有效的模式检查器

>>> from poormanschema import *
>>> check({'first_name': 1}. [{'first_name': str, 'last_name': str}])
ValueError: {first_name} should be of type "str"

它还可以标准化数据

>>> check(' 2016-03-23T12:23:12 ', OR(STRIP, ISO8601))
'2016-03-23T12:23:12'

或转换为它们

>>> repr(check(['1.3'], [DECIMAL]))
[Decimal('1.3')]

谓词列表

  • check(data, schema, path=’’) - 检查 data 是否与 schema 匹配,错误信息前缀为 path

  • OR(*schemas) - 返回第一个匹配的模式

  • ANY - 可以是任何东西

  • AND(*schemas) - 所有模式都必须匹配

  • MANDATORY(schema) - 仅适用于字典值,指示相应的键是必需的,所有其他键是可选的

  • RE(regexp, repl=None, count=0, flag=0) - 值必须是一个匹配 regexp 的字符串

  • ISO8601 - 值必须是一个类似于 ‘2016-09-07T12:12:34’ 的字符串

  • NORMALIZE(schema, convert) - 应用模式,然后将转换器应用于结果

  • STRIP - 删除开头和结尾的空格

  • LOWER - 将字符串转换为小写

  • UPPER - 将字符串转换为大写

  • DECIMAL - 将字符串转换为 decimal.Decimal 对象

示例:SCIM 1.0 用户对象的 Core Schema

schema = {
    'schemas': MANDATORY([basestring]),
    'id': MANDATORY(basestring),
    'externalId': MANDATORY(basestring),
    'userName': MANDATORY(unicode),
    'name': MANDATORY({
        'formatted': MANDATORY(str),
        'familyName': str,
        'givenName': str,
        'middleName': str,
        'honorificPrefix': str,
        'honorificSuffix': str,
    }),
    'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': MANDATORY({
        'employeeNumber': OR(STRIP, RE(r'^\d+$')),
        'costCenter': OR(STRIP, RE(r'^\d+$')),
    }),
    'meta': {
        'resourceType': 'User',
        'created': ISO8601,
        'lastModified': ISO8601,
        'version': RE(r'^(W\\)?"[^"]"$'),
        'location': str,
    }
}

项目详情


下载文件

下载适合您的平台的文件。如果您不确定要选择哪个,请了解有关 安装软件包 的更多信息。

源代码分发

poormanschema-0.0.0.1.tar.gz (3.7 kB 查看散列)

上传时间:

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页