非常简单有效的模式检查器
项目描述
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 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | f13c5c6ac6e29d86adab0e2ab8d9c19978574f9814c8185a830ec002218bc34f |
|
MD5 | 94ce4cb132da9cc7227d0a47845ed19c |
|
BLAKE2b-256 | f4a08246b2e981dace63bc43630aee2e2aac04c72e62c1c45aacac1fe3d3a450 |