dm.zope.schema

软件截图:
dm.zope.schema
软件详细信息:
版本: 2.0
上传日期: 14 Apr 15
开发: Dieter Maurer
许可: 免费
人气: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema包含了对zope.schema。
模块
确认
一个同伴到zope.interface.verify的接口架构的一部分。
它包含了功能verify_schema(IFACE,OBJ,背景=无,check_declaration = TRUE)用于验证接口IFACE那OBJ满足架构的一部分。需要获得绑定到一个背景下,他们可以验证之前的模式领域。范围内指定这样的背景下,默认为OBJ。 check_declaration检查obj宣告privide iface的。
架构
其主要内容是mixin类SchemaConfigured。它支持根据由SchemaConfigured派生类中实现的接口架构的一部分配置。如果你想控制从接口模式导出,可以使用类属性SC_SCHEMAS:其值应为无(从实现的接口自动派生模式),一个单一的接口或接口的元组。以明确的控制权来确定模式的接口是Zope的2架构配置内容类尤其重要(因为它们的基类OFS.SimpleItem.SimpleItem实现了一个巨大的接口,你可能不希望在你的模式,其字段数)。
在混合类SchemaConfiguredEvolution提供了模式演变为(ZODB)持久化对象的支持。其__setstate__增加了缺少的属性的对象,这样你可以添加新的领域,以您的架构,仍然找到,即使在扩展名之前那些已经建立了各自的对象的所有相应的属性。注:为了SchemaConfiguredEvolution有效,则它必须在方法解析顺序(MRO)(persistent.Persistent之前)的早期。这就是为什么是一个单独的类和它的功能不包括在SchemaConfigured本身(可能有很好的理由已经在MRO后期SchemaConfigured)。作为替代使用SchemaConfiguredEvolution的,则可以使用上的类级的新字段中定义的默认值。
偶尔,功能schemaitems和schemadict可能是有用的。他们提取一个接口或接口规范作为ID分别列表,现场对或一本字典,架构的一部分。
Field对象是一个替代zope.schema.Object。后者缺乏验证错误的字段信息(https://bugs.launchpad.net/zope.schema/+bug/620324),这使得识别受影响的领域不必要的困难。有时,人们希望抑制了经过验证的对象明确宣布提供的接口的检查。对象具有附加属性check_declaration来控制这个(默认为True)。
PropertyManager中
该模块实现了一个基于架构OFS.PropertyManager.PropertyManager子类。该_properties属性描述的属性不保持在类或它的实例,但是从所提供的(分别实施)架构衍生。目前,性能不能扩展在一个基于实例级别(除提供了另一种模式除外)。
zope.schema使用Unicode来表示文字。 PropertyManager中可以在原则上支持Unicode属性。然而,由于错误/缺陷,物业管理页面只,当management_page_charset没有定义处理它们正确,或有值UTF-8(注意大写拼写!)。我们默认使用Unicode属性,除非management_page_charset.upper()产生的值从UTF-8的不同。我们还提供了一个mixin类WorkaroundSpelling_management_page_charset来解决Zope的愚蠢坚持大写字母拼写management_page_charset。
目前,以下字段类型支持:文本,一个TextLine,字节,BytesLine`,布尔,整型,浮点和列表与一个TextLine或BytesLine的值类型。其他类型将提高NotImplementedError。
该模块已经实现利用dm.zope.generate。另一种做法一直是基于“zope.formlib”以及利用所谓的加载形式的发电设施的实施。根据经验,我可能会切换到这种替代。
形式
该模块定义了默认的编辑(SchemaConfiguredEditForm)和显示器(SchemaConfiguredDisplayForm)形式dm.zope.schema.schema.SchemaConfigured。
这取决于zope.formlib。
小工具
提供显示和编辑小部件Timedelta领域,一个体面的显示部件密码字段(明文默认显示密码)和输入部件密码不强迫你提供当你编辑表单密码值。
这取决于zope.app.form在老版本的Zope和zope.formlib在较新的。
Z2
这种分装结合的模式和相关的Zope 2的功能。在较新的Zope版本,这取决于five.formlib。
形式
该模块定义了默认的编辑(SchemaConfiguredEditForm)和显示器(SchemaConfiguredDisplayForm)形式dm.zope.schema.schema.SchemaConfigured中的Zope 2使用。
这取决于zope.formlib。
构造函数
该模块包含一个附加的窗体类SchemaConfiguredAddForm和工厂add_form_factory的一个附加形式的产生(由Zope的2称为“构造”)的dm.zope.schema.schema.SchemaConfigured基础类。所产生的附加形式通常用作构造参数的registerClass的一部分。
add_form_factory有参数:
 名称默认说明
 为class_类来生成表单
 标题创建为class_形式显示的标题实例
 描述类_.__ doc__会给出形式显示的文档
  form_class SchemaConfiguredAddForm窗体类使用
add_form_factory产生与由dm.zope.schema.schema.SchemaConfigured类为class_的实施模式定义字段zope.formlib形式。
这个模块是类似于dm.zope.generate.constructor。但是,它适用于基于SchemaConfigured类,而后者支持基于PropertyManager中的类。
模板
提供视图页面模板form_template能够查看和编辑的Zope 2配置模式内容的标准ZMI接口中的对象。
范例
设置:它定义两个模式S1和S2,接口I和C类从SchemaConfigured导出实施模式和所述接口。
>>>从zope.interface进口接口,农具,providedBy
>>>从zope.schema进口诠释
>>>
>>>从dm.zope.schema.schema进口SchemaConfigured
>>>从dm.zope.schema.verify进口verify_schema
>>>
>>>类S1(接口):I1 = INT(默认值= 0)
...
>>>类S2(接口):I2 = INT(默认值= 1)
...
>>> I类(接口):
... DEF()的方法:通
...
>>> C类(SchemaConfigured):
...工具(S1,S2,I)的
...高清方法(个体经营):通
...
Ç实例具有相应的架构字段属性。如果没有给出任何参数的构造函数,他们得到的字段默认为值。提供(关键字!)参数覆盖默认值。
>>> C = C()
>>> c.i1
0
>>> c.i2
1
>>> C = C(I1 = 5)
>>> c.i1

构造函数拒绝架构中没有定义的关键字参数,以快速检测拼写错误。然而,这阻碍了为__init__方法的类层次结构使用超。也许,未来的版本将提供控制这种检查的一种手段。
>>> C = C(X = 5)
回溯(最近通话最后一个):
  ...
类型错误:非模式关键字参数:X
如果该字段的值是合适的,C实例提供模式(如通过核实verify_schema)。否则,verify_schema将引发异常。这个例子也说明了基本的使用verify_schema的。
>>> verify_schema(S1,C)
>>> c.i1 =无
>>> verify_schema(S1,C)
回溯(最近通话最后一个):
  ...
zope.schema.interfaces.WrongContainedType:[('I1',RequiredMissing())]
我们可以创建一个编辑(或显示器)的形式为我们的对象。表单字段都为我们的架构字段自动创建。表单类有一个customize_fields方法,你可以覆盖提供自定义字段和/或部件。
类似的功能是提供的Zope 2的Z2分装。
>>>从zope.publisher.browser进口TestRequest
>>>从dm.zope.schema.form进口SchemaConfiguredEditForm
>>>
>>>形式= SchemaConfiguredEditForm(C,TestRequest())
>>>列表([F .__ name__对于f在form.form_fields])
[“I1”,“I2”]

什么在此版本中是新的

  • 在形式的支持
  • 的Zope 2的构造支持

要求

  • 在Python中

显影剂的其他软件 Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

意见 dm.zope.schema

评论没有发现
添加评论
打开图片!