跳转到主要内容

通用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 (3.7 kB 查看哈希值)

上传时间 源代码

支持