Python/Cython谓词/守卫/验证系统。
项目描述
此包有助于定义和创建小型且可重用的组件,这些组件可以用作守卫或验证方法。
示例
以下是一个内容项验证的示例。
from dataclasses import dataclass
from prejudice.errors import ConstraintError
from prejudice.validators import 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:
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.1.1 (2023-11-09)
Cython更新并包含py3.11
0.1 (2022-03-16)
初始发布。
项目详情
关闭
prejudice-0.1.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2a2538f80c6d9d2820123abcf5782a26987afb46db69f1f76fa56c190b5555b2 |
|
MD5 | a8210e9aee102e592dceebbdd653fd45 |
|
BLAKE2b-256 | 428df7c5dc50e0d097674e1c9b4c9192bb7e6702808407dad9ad0cdb00aab783 |