dm.zope.schema

Software screenshot:
dm.zope.schema
Podrobnosti Software:
Verze: 2.0
Datum uploadu: 14 Apr 15
Vývojka: Dieter Maurer
Licence: Volný
Popularita: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema obsahuje rozšíření pro zope.schema.
Moduly
ověřit
Společník zope.interface.verify pro část schématu rozhraní.
Obsahuje funkce verify_schema (iface, obj, context = None, check_declaration = True), který ověřuje, zda OBJ splňuje část schématu rozhraní iface. Pole schématu potřebujete, abyste mohli vázána na kontext předtím, než mohou být ověřeny. kontext obsahuje tento kontext a jako výchozí obj. check_declaration kontroly, které obj prohlašuje rádi odpovíme iface.
schéma
Hlavní náplní je mixin třída SchemaConfigured. Podporuje konfiguraci podle části schématu rozhraní realizovaných SchemaConfigured odvozené třídy. Chcete-li ovládat z nichž rozhraní schématu je odvozen, můžete použít třída atribut SC_SCHEMAS: její hodnota by měla být None (odvodit schéma automaticky z realizovaných rozhraní), jediné rozhraní nebo n-tice rozhraní. Užívání explicitní kontrolu nad rozhraní používaných k určení schématu je důležité zejména pro Zope 2 schématu nakonfigurovaných tříd obsahu (jako jejich základní třída OFS.SimpleItem.SimpleItem realizuje velké množství rozhraní, jejichž pole pravděpodobně nebudete chtít ve svém schématu).
Mixin Třída SchemaConfiguredEvolution poskytuje podporu pro evoluci schéma (ZODB) perzistentních objektů. Jeho __setstate__ přidává chybějící atributy na objekt tak, že můžete přidávat nové pole do svého schématu a ještě najít všechny odpovídající atributy příslušných objektů, i když ti, které byly vytvořeny před prodloužením. Poznámka: K tomu, aby SchemaConfiguredEvolution byla účinná, musí přijít brzy v pořadí rozlišení metody (MRO) (před persistent.Persistent). To je důvod, proč je zvláštní třídu a její funkce není zahrnuta v SchemaConfigured sám (mohou existovat dobré důvody k SchemaConfigured pozdě MRO). Jako alternativa k používání SchemaConfiguredEvolution, můžete použít výchozí hodnoty definované na úrovni třídy pro nové obory.
Občas, funkce schemaitems a schemadict mohou být užitečné. Oni extrahovat část schématu na rozhraní nebo rozhraní specifikace jako seznam id, párů pole nebo slovníku, resp.
Pole Objekt je náhradou za zope.schema.Object. Ten postrádá informace o pole v chyby ověření (https://bugs.launchpad.net/zope.schema/+bug/620324), který umožňuje identifikaci postižených oblastí zbytečně složité. Občas člověk chce potlačit kontrolu, že ověřený objekt výslovně prohlašuje, poskytovat rozhraní. Objekt má další vlastnost check_declaration řídit toto (výchozí nastavení na hodnotu true).
PropertyManager
Tento modul implementuje schéma založené OFS.PropertyManager.PropertyManager podtřídy. V _properties atribut popisující vlastnosti není udržován na třídě nebo jeho instancí, ale odvozena z uvedených (v tomto pořadí) realizovaných schémata. V tuto chvíli, vlastnosti nemůže být rozšířen na instance na základě úrovně (jiné než tím, že další schéma).
zope.schema používá unicode reprezentovat textu. PropertyManager může být v zásadě podpora unicode vlastnosti. Nicméně, kvůli chybě / slabost, stránka správy majetku zpracovává správně pouze, pokud je management_page_charset není definován nebo má hodnotu UTF-8 (poznámka pravopisu velkými písmeny!). Používáme unicode vlastnosti jako výchozí, pokud není management_page_charset.upper () se získá jinou hodnotu z UTF-8. Poskytujeme také mixin třídy WorkaroundSpelling_management_page_charset obejít Zope je hloupé naléhání na psaní velkých písmen u management_page_charset.
V tuto chvíli jsou podporovány následující typy polí: Text, TextLine, bajty, BytesLine`, Bool, Int, Float a seznam s typem hodnoty TextLine nebo BytesLine. Jiné typy zvýší NotImplementedError.
Modul byl zaveden využít dm.zope.generate. Alternativou by bylo provádění výrobních zařízení na základě "zope.formlib" a využívání tzv add forem. V závislosti na zkušenostech, mohu přejít k této alternativě.
formulář
Modul definuje standardní úpravy (SchemaConfiguredEditForm) a display (SchemaConfiguredDisplayForm) formuláře pro dm.zope.schema.schema.SchemaConfigured.
Záleží na zope.formlib.
Widget
Poskytuje zobrazení a editace widgety pro timeDelta pole, pro pole Heslo slušný display udělátko (výchozí zobrazuje hesla v podobě prostého textu) a heslo, které vás nenutí, aby hodnota hesla kdykoli upravit formuláře vstupní widget.
Záleží na tom, zope.app.form ve starších verzích Zope a zope.formlib v novější.
z2
To subpackage kombinuje schéma souvisí a Zope 2. funkčnost. V novějších verzích Zope, záleží na five.formlib.
formulář
Modul definuje standardní úpravy (SchemaConfiguredEditForm) a display (SchemaConfiguredDisplayForm) formuláře pro dm.zope.schema.schema.SchemaConfigured pro použití v Zope 2.
Záleží na zope.formlib.
stavitel
Tento modul obsahuje add formuláře třídy SchemaConfiguredAddForm a tovární add_form_factory pro generaci doplňku formuláře (s názvem "konstruktor" by Zope 2), na výuku dm.zope.schema.schema.SchemaConfigured bázi. Generovaný doplněk forma je obvykle používán jako součást parametru konstruktory registerClass.
add_form_factory má parametry:
& Nbsp; název výchozí popis
& Nbsp; class_ třídu k vytvoření formuláře pro
& Nbsp; title vytvořit instanci class_ titulu je uvedeno ve formě
& Nbsp; popis třída _.__ doc__ dokumentaci uvedenou v podobě
& Nbsp; form_class SchemaConfiguredAddForm formuláře třídy mají být použity
add_form_factory generuje zope.formlib formulář obsahující pole vymezených realizované schématy dm.zope.schema.schema.SchemaConfigured třídy class_.
Tento modul je podobný dm.zope.generate.constructor. Nicméně, to funguje u tříd podle SchemaConfigured, zatímco druhý podporuje třídy PropertyManager bázi.
šablona
Poskytuje pohled šablonu stránky form_template moci zobrazit a upravovat ZOPE 2 schématu nakonfigurován obsah objektů v rámci standardního rozhraní ZMI.
Příklady
Setup: Definuje dvě schémata S1 a S2, rozhraní I a třídy C vyplývající z SchemaConfigured provádění schémata a rozhraní.
>>> Z zope.interface dovozu rozhraní, nářadí, předkládané
>>> Z zope.schema dovozu Int
>>>
>>> Z dm.zope.schema.schema dovozu SchemaConfigured
>>> Z dm.zope.schema.verify dovozu verify_schema
>>>
>>> Třída S1 (Interface): I1 = Int (default = 0)
...
>>> Třída S2 (Interface): i2 = Int (default = 1)
...
>>> Třídy I (Interface):
... Def metoda (): průkaz
...
>>> Třída C (SchemaConfigured):
... nářadí (S1, S2, I)
... Def metoda (self): průchod
...
Instance C mají vlastnosti odpovídající pole schématu. Pokud nejsou zadány žádné argumenty pro konstruktor, dostanou výchozí pole jako hodnotu. Poskytnuté (klíčové slovo!) Argumenty přepsat výchozí nastavení.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> c = C (I1 = 5)
>>> C.i1
5
Konstruktor odmítá pojmenované argumenty, které nejsou definovány ve schématu tak, aby rychle odhalit pravopisné chyby. To však brání použití výborný ve třídě hierarchii pro metodu __init__. Možná, že bude budoucí verze poskytne prostředky pro řízení tuto kontrolu.
>>> C = C (x = 5)
TraceBack (poslední hovor poslední):
& Nbsp; ...
TypeError: non klíčové slovo schema argument: x
Pokud jsou hodnoty pole jsou vhodné případy C poskytnout schémata (podle ověřených verify_schema). V opačném případě, verify_schema zvýší výjimku. Tento příklad ukazuje, i elementární použití verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = None
>>> Verify_schema (S1, c)
TraceBack (poslední hovor poslední):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('I1', RequiredMissing ())]
Můžeme vytvořit upravit (nebo zobrazení) formulář pro naše objekty. Pole formuláře jsou automaticky vytvořeny pro naše pole schématu. Třídy tvoří mají metodu customize_fields můžete potlačit, aby vlastní pole a / nebo widgety.
Podobná funkce je k dispozici pro Zope 2 v Z2 subpackage.
>>> Z zope.publisher.browser dovozu TestRequest
>>> Z dm.zope.schema.form dovozu SchemaConfiguredEditForm
>>>
>>> Forma = SchemaConfiguredEditForm (c, TestRequest ())
>>> List ([f .__ name__ pro f v form.form_fields])
["I1", "i2 ']

Co je nového v této verzi:

  • Podpora forma
  • Zope 2 Podpora konstruktér

Požadavky na :

  • Python

Ostatní software developer Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Komentáře k dm.zope.schema

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!