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

評論沒有發現
添加評論
打開圖片!