非常简单有效的模式检查器
项目描述
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 |