通用Formlib字段
项目描述
dolmen.field软件包提供了额外的通用字段,以扩展zope.schema。
配置字段
配置字段用于描述和约束,以强制实施一致的架构和数据模型。
全局类
全局类是一个需要有效接口类的字段。它可以用于需要存储具有检查和验证给定值一致性的接口的工厂和其他组件。
>>> from zope.interface import Interface >>> from dolmen.field import GlobalClass, IClassField >>> class IDummy(Interface): ... def shall_fail(): ... pass >>> class Dummy(object): ... pass
当然,它必须是一个有效的接口
>>> field = GlobalClass( ... title=u'a class field', ... schema=object ... ) Traceback (most recent call last): ... WrongType: <type 'object'> is not a valid Interface
接口将被用来验证类
>>> field = GlobalClass( ... title=u'a class field', ... schema=IDummy ... ) >>> field.schema <InterfaceClass dolmen.field.tests.IDummy> >>> IClassField.providedBy(field) True
我们确保不修改interface属性
>>> print field.interface None
第一次,我们确保类实现了所需接口
>>> field._validate(Dummy) Traceback (most recent call last): ... ConstraintNotSatisfied: <class 'dolmen.field.tests.Dummy'> does not implement <InterfaceClass dolmen.field.tests.IDummy> >>> from zope.interface import classImplements >>> classImplements(Dummy, IDummy) >>> IDummy.implementedBy(Dummy) True
然后接口作为严格的验证器
>>> field._validate(Dummy) Traceback (most recent call last): ... BrokenImplementation: An object has failed to implement interface <InterfaceClass dolmen.field.tests.IDummy> <BLANKLINE> The shall_fail attribute was not provided. <BLANKLINE> >>> Dummy.shall_fail = lambda x: u'not' >>> field._validate(Dummy) is None True
变更日志
0.3 (2009-10-25)
重构了字段以使用“schema”属性而不是“interface”。属性名“interface”与其他操作包的字段冲突。
现在使用README.txt而不是内联doctests,以便更好地阅读。
0.2 (2009-06-09)
首次Pypi发布
0.1 (2009-05-03)
内部发布
项目详情
关闭
dolmen.field-0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c42446b44628d36be6bfe85cc89a35936d5adccf13ff4f71ed384e3814cb25d6 |
|
MD5 | 548ffc36e7aaaa4a47e7f157559d0e74 |
|
BLAKE2b-256 | c18a9d35e951bb0fa8601ce4d1ab695812cd07cf3ef3a0e7089e8d10fb3c6590 |