dm.zope.schema

Szoftver screenshot:
dm.zope.schema
Szoftver adatai:
Változat: 2.0
Feltöltés dátuma: 14 Apr 15
Fejlesztő: Dieter Maurer
Engedély: Ingyenes
Népszerűség: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema tartalmaz kiterjesztéseket zope.schema.
Modules
ellenőrizze
A társa zope.interface.verify A séma részét interfészek.
Ez tartalmazza a funkciót verify_schema (iface, obj, context = Nincs, check_declaration = True), amely igazolja, hogy obj megfelel a séma részét interface iface. Sémát mezőket kell, hogy köteles a kontextusban, mielőtt jóváhagyják azokat. összefüggésben meghatározza az összefüggésben és az alapértelmezett obj. check_declaration ellenőrzi, hogy obj kijelenti, hogy privide iface.
séma
A fő tartalma a mixin class SchemaConfigured. Támogatja konfiguráció szerint a séma része a felületek által végrehajtott SchemaConfigured származtatott osztály. Ha azt szeretnénk, hogy ellenőrizzék a interfésszel a séma származik, akkor a class attribútum SC_SCHEMAS: értéke legyen Nincs (levezetni séma automatikusan a megvalósított interfészek), egyetlen felületen, vagy egy tuple felületek. Hogy pontosan felett a felületek meghatározásához használt séma különösen fontos a Zope 2 séma konfigurált tartalmat osztályok (például a szülő osztály OFS.SimpleItem.SimpleItem végre egy hatalmas számos interfész akinek mezőket, akkor valószínűleg nem akarja a séma).
A mixin class SchemaConfiguredEvolution támogatást nyújt séma evolúció (ZODB) perzisztens objektumokat. A __setstate__ hozzáteszi hiányzik attribútumok az objektum olyan, hogy képes új mezőket a sémát, és még mindig minden megfelelő attribútumokat az adott objektumok akkor is, ha azok hoztak létre a kiterjesztés elé. Megjegyzés: ahhoz, hogy SchemaConfiguredEvolution, hogy hatékony legyen, meg kell korán jött a módszert felbontású érdekében (MRO) (mielőtt persistent.Persistent). Ezért van egy külön osztály és a szolgáltatás nem tartalmazza SchemaConfigured magát (lehet, hogy jó oka van arra, SchemaConfigured késő MRO). Alternatívaként a használata SchemaConfiguredEvolution, akkor az alapértelmezett értékek határozzák osztály szintjén az új területeken.
Alkalmanként funkciók schemaitems és schemadict lehet hasznos. Ők kivonat a séma részét egy interfész vagy interfész specifikáció, mint egy listát id, mezőpárokat vagy egy szótár, ill.
Az objektumban felváltja a zope.schema.Object. Az utóbbi hiányzik a területen információkat ellenőrzési hibák (https://bugs.launchpad.net/zope.schema/+bug/620324) ami azonosítását az érintett területek feleslegesen bonyolult. Időnként valaki meg akarja elnyomni az ellenőrzést, amelyet validált objektum határozottan kijelenti, hogy a felület. Objektum a kiegészítő check_declaration a szabályozás ezt a (alapértelmezésben True).
PropertyManager
Ez a modul végrehajtja a séma alapú OFS.PropertyManager.PropertyManager alosztály. A _properties attribútum leíró tulajdonságok nem marad fenn az osztály vagy a példányra, de nyert a biztosított (illetve megvalósított) sémák. Ebben a pillanatban, tulajdonságokat nem lehet hosszabbítani egy példány alapú szinten (kivéve azáltal, hogy egy másik séma).
zope.schema használ unicode képviseletére szöveget. PropertyManager elvileg támogatást unicode tulajdonságait. Azonban egy hiba miatt, / gyengeség, a vagyonkezelés oldalon kezeli őket helyesen csak, ha management_page_charset nincs definiálva vagy értéke van UTF-8 (vegye figyelembe a nagybetűs írásmódját!). Az általunk használt unicode tulajdonságai alapértelmezés szerint, kivéve, ha management_page_charset.upper () értéket kapunk eltér UTF-8. Mi is egy mixin class WorkaroundSpelling_management_page_charset a munka körül Zope hülye ragaszkodik nagybetűvel helyesírását management_page_charset.
Ebben a pillanatban, a következő mezőben típust támogatja: szöveg, TextLine, Bytes, BytesLine`, Bool, Int, úszó és List értékű típusú TextLine vagy BytesLine. Más típusú emelni fogja NotImplementedError.
A modul hajtották végre, hogy kihasználják dm.zope.generate. Egy alternatív lett volna a végrehajtása a termelő létesítmények alapuló "zope.formlib" és a használata úgynevezett kiegészítő formák. Attól függően, tapasztalat, meg lehet váltani ezt az alternatívát.
nyomtatvány
A modul határozza meg az alapértelmezett szerkesztés (SchemaConfiguredEditForm) és a kijelző (SchemaConfiguredDisplayForm) formák dm.zope.schema.schema.SchemaConfigured.
Attól függ, zope.formlib.
Widget
Biztosítja kijelzése és módosítása widgetek Timedelta mezőket, tisztességes kijelző widget Password mezőket (alapértelmezett kijelzők jelszavakat cleartext) és egy bemeneti widget Password, hogy nem kényszeríti arra, hogy a jelszó értéket, amikor módosítja formájában.
Attól függ, zope.app.form idősebb Zope verziók és a zope.formlib a újabbak.
z2
Ez subpackage egyesíti séma kapcsolatos és Zope 2 funkciót. Az újabb verziók Zope, ez attól függ, five.formlib.
nyomtatvány
A modul határozza meg az alapértelmezett szerkesztés (SchemaConfiguredEditForm) és a kijelző (SchemaConfiguredDisplayForm) űrlapok dm.zope.schema.schema.SchemaConfigured használatra Zope 2.
Attól függ, zope.formlib.
konstruktőr
Ez a modul egy kiegészítő formájában class SchemaConfiguredAddForm és egy gyári add_form_factory a generáció egy add formában (úgynevezett "konstruktor" Zope 2) A dm.zope.schema.schema.SchemaConfigured alapú osztályok. A keletkezett add formát rendszerint részeként alkalmazzák a konstruktőrök paraméter registerClass.
add_form_factory van a paramétereket:
& Nbsp; name alapértelmezett leírás
& Nbsp; class_ az osztály, hogy létrehoz a formában
& Nbsp; cím létrehozása például a class_ a cím látható formában
& Nbsp; leírás class _.__ doc__ dokumentáció formájában tüntetik fel
& Nbsp; form_class SchemaConfiguredAddForm űrlap osztályban használható
add_form_factory generál zope.formlib űrlap mezők által meghatározott végre sémák dm.zope.schema.schema.SchemaConfigured class class_.
Ez a modul hasonló a dm.zope.generate.constructor. Azonban dolgozik SchemaConfigured alapú osztályok, míg az utóbbi támogatja PropertyManager alapú osztályok.
sablon
Biztosítja a véleményen oldalsablonhoz form_template képes megtekintheti és szerkesztheti Zope 2 sémát konfigurált tartalmat tárgyak a standard ZMI felületen.
Példák
Setup: Meghatározza két séma S1 és S2, egy interfész I és C osztályú származó SchemaConfigured végrehajtása sémák és a felület.
>>> From zope.interface import Interface, eszközök, rendelkezésre bocsátott
>>> From zope.schema import Int
>>>
>>> From dm.zope.schema.schema import SchemaConfigured
>>> From dm.zope.schema.verify import verify_schema
>>>
>>> S1 osztály (Interface): i1 = Int (default = 0)
...
>>> S2 osztály (Interface): i2 = Int (default = 1)
...
>>> Class I (Interface):
... Def módszerrel (): passz
...
>>> Class C (SchemaConfigured):
... Eszközök (S1, S2, I)
... Def módszer (self): passz
...
C példányok tulajdonságaik megfelelő sémát területeken. Ha nincs argumentum megadva a kivitelező, kapnak területén alapértelmezett értékként. Feltéve, (kulcsszó!) Érvek felülírják az alapértelmezett.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> C = C (I1 = 5)
>>> C.i1
5
A kivitelező elutasítja kulcsszó érvek nem határozza meg a séma annak érdekében, hogy gyorsan érzékeli a helyesírási hibákat. Azonban ez korlátozza a használatát szuper osztályhierarchia a __init__ módszert. Talán, későbbi verziói nyújt olyan szabályozási ezt az ellenőrzést.
>>> C = C (x = 5)
Traceback (legutolsó hívás utolsó):
& Nbsp; ...
Típushiba: nem sémát kulcsszó érv: x
Ha a mező értékek megfelelnek, C eset azonban a sémákat (hitelesítő által verify_schema). Ellenkező esetben, verify_schema lesz arra, hogy kivételt. Ez a példa bemutatja továbbá az elemi használatát verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = None
>>> Verify_schema (S1, c)
Traceback (legutolsó hívás utolsó):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1 ", RequiredMissing ())]
Mi is létrehozhatunk egy szerkesztő (vagy kijelző) formában tárgyaink. Űrlapmezőket automatikusan elkészül a séma területeken. Az iskolai osztályt van customize_fields módszerrel felül tudja írni, hogy az egyéni mezők és / vagy kütyü.
Hasonló funkció elérhető a Zope 2 a Z2 subpackage.
>>> From zope.publisher.browser import TestRequest
>>> From dm.zope.schema.form import SchemaConfiguredEditForm
>>>
>>> Forma = SchemaConfiguredEditForm (C, TestRequest ())
>>> Listája ([f .__ name__ for f in form.form_fields])
["I1", "i2"]

Mi az új ebben a kiadásban:

  • formában támogatás
  • Zope 2 konstruktor támogatás

követelmények :

  • Python

Más szoftver fejlesztő Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Hozzászólások a dm.zope.schema

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!