纯Python谓词/守卫/验证系统。
项目描述
此软件包帮助定义和创建小型且可重用的组件,这些组件可以用作守卫或验证方法。
示例
以下是对内容项进行验证的示例。
from dataclasses import dataclass
from roughrider.predicate.errors import ConstraintError
from roughrider.predicate.validators import Validator, Or
@dataclass
class Document:
id: str
body: str = ''
content_type: str = 'text/plain'
def non_empty_document(item):
"""Implementation of a validator/predicate
"""
if not item.body:
raise ConstraintError('Body is empty.')
class ContentType(Validator):
def __init__(self, content_type):
self.ct = content_type
def __call__(self, item):
if item.content_type != self.ct:
raise ConstraintError(
f'Expected {self.ct}, got {item.content_type}.')
validator = Or((
ContentType('text/plain'),
Or((ContentType('text/html'), non_empty_document))
))
document = Document(id='test', content_type='application/json')
validator(document) # raises ConstraintsErrors
变更记录
0.3.1 (2021-10-21)
更改扩展的包装。
0.3 (2021-10-21)
代码重构和Cython优化。
0.2 (2021-10-20)
修复了resolve_validator错误列表扩展。
0.1 (2021-10-09)
首次发布。
项目详情
关闭
roughrider.predicate-0.3.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a355feefa3c5486847ac10084a0541d18809810cfc6a9134bb9f81d870fc8168 |
|
MD5 | e911853944198d08ceed3de062c62d93 |
|
BLAKE2b-256 | a5d401c105e08a2ccb511925599463442de46732795de3404b92fa334a258fa2 |