dm.zope.schema

Screenshot Software:
dm.zope.schema
Detalii soft:
Versiune: 2.0
Incarca data: 14 Apr 15
Producător: Dieter Maurer
Licenţă: Gratuit
Popularitate: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema conține extensii pentru zope.schema.
Module
verifica
O companie a zope.interface.verify pentru partea schemă de interfețe.
Acesta conține funcția verify_schema (iface, obj, context = Nici una, check_declaration = True), care verifică faptul că îndeplinește obj partea schemă de interfață iface. Câmpuri Schema nevoie pentru a obține legat la un context înainte de a putea fi validate. Contextul specifică acest context și implicit la obj. verificări check_declaration care obj declară privide iface.
schemă
Conținutul principal este clasa mixin SchemaConfigured. Acesta susține configurație conform partea schemă a interfețelor implementate de clasa derivată SchemaConfigured. Dacă doriți să controlați de la care interfețele schema este derivat, puteți folosi atributul clasa SC_SCHEMAS: valoarea sa ar trebui să fie Fără specialitate (deriva schemă automat începând cu interfețele implementate), o interfață unică sau un tuplu de interfețe. Având un control explicit asupra interfețele utilizate pentru a determina schema este deosebit de important pentru Zope 2 scheme clase de conținut configurate (ca OFS.SimpleItem.SimpleItem lor de clasă de bază implementează un număr foarte mare de interfețe ale căror domenii tu probabil nu vrei în schema ta).
Clasa de mixin SchemaConfiguredEvolution oferă suport pentru evoluție schema de (ZODB) obiecte persistente. __setstate__ Sa adaugă lipsesc atributele la obiectul astfel încât să puteți adăuga noi domenii la schema dumneavoastră și încă găsi toate atributele corespunzătoare de pe obiectele respective chiar și atunci când acestea au fost create înainte de prelungirea. Notă: pentru SchemaConfiguredEvolution a fi eficientă, ea trebuie să vină mai devreme în ordinea de rezoluție metoda (MRO) (înainte persistent.Persistent). De aceea, este este o clasă separată și caracteristica sa nu sunt incluse în SchemaConfigured sine (pot exista motive bune pentru a fi SchemaConfigured târziu în OPR). Ca o alternativă la utilizarea SchemaConfiguredEvolution, puteți utiliza valorile implicite definite la nivel de clasă pentru noi domenii.
Ocazional, funcții schemaitems și schemadict ar putea fi util. Ei se extrage partea schemă a unei specificații interfață sau interfețe ca o listă de id, perechi de teren sau un dicționar, respectiv.
Câmp Obiectul este un înlocuitor pentru zope.schema.Object. Acesta din urmă nu are informații domeniu în erori de validare (https://bugs.launchpad.net/zope.schema/+bug/620324), care face ca identificarea domeniilor afectate inutil dificile. Ocazional, se dorește a suprima controlul care un obiect validat declară în mod explicit pentru a oferi interfața. Obiectul are check_declaration proprietate suplimentar pentru a controla acest lucru (implicit Adevărat).
propertymanager
Acest modul pune în aplicare o schemă bazată pe OFS.PropertyManager.PropertyManager subclasă. Cele _properties atribut descrie proprietățile nu este menținută pe clasa sau instanțele sale, dar care provin din prevăzute schemele (respectiv implementate). Pentru moment, proprietăți nu poate fi extinsă la un nivel bazat instanță (altele decât prin furnizarea de un alt schemă).
zope.schema folosește unicode pentru a reprezenta text. PropertyManager poate, în principiu, proprietăți suport Unicode. Cu toate acestea, din cauza unui bug / slăbiciune, pagina de administrare a proprietății lor se ocupă în mod corect doar atunci când management_page_charset nu este definită sau are o valoare UTF-8 (a se vedea cazul ortografia superior!). Noi folosim proprietăți Unicode în mod implicit dacă nu management_page_charset.upper () dă o valoare diferită de UTF-8. Oferim, de asemenea, o WorkaroundSpelling_management_page_charset clasă mixin de a lucra în jurul valorii de insistența prost Zope pe caz ortografie superior pentru management_page_charset.
Pentru moment, urmatoarele tipuri de teren sunt acceptate: Text, TextLine, Bytes, BytesLine`, Bool, Int, Float și lista cu o valoare de tip TextLine sau BytesLine. Alte tipuri va ridica NotImplementedError.
Modulul a fost pusă în aplicare să impulsioneze dm.zope.generate. O alternativă ar fi fost punerea în aplicare a instalațiilor de generare bazate pe "zope.formlib" și utilizarea așa numitelor forme add. In functie de experienta, pot trece la această alternativă.
formular
Modulul definește edita implicit (SchemaConfiguredEditForm) și afișare (SchemaConfiguredDisplayForm) formulare pentru dm.zope.schema.schema.SchemaConfigured.
Depinde de zope.formlib.
widget
Oferă afișa și edita widget-uri pentru câmpurile Timedelta, un widget decent de afișare pentru câmpurile Parola (se afișează implicit parolele în text clar), precum și un widget de intrare pentru parolă care nu te obliga să furnizeze valoarea parolă de fiecare dată când editați formularul.
Depinde zope.app.form în versiuni mai vechi Zope și pe zope.formlib în cele mai noi.
z2
Acest subpachet combină schemă legate și Zope 2 funcționalitatea. În versiunile mai noi de Zope, depinde de five.formlib.
formular
Modulul definește edita implicit (SchemaConfiguredEditForm) și forme de afișare (SchemaConfiguredDisplayForm) pentru dm.zope.schema.schema.SchemaConfigured pentru utilizarea în Zope 2.
Depinde de zope.formlib.
constructor
Acest modul conține un SchemaConfiguredAddForm clasă formular add și un add_form_factory fabrică pentru generarea unui formular add (denumit "constructor" de Zope 2) pentru clasele de dm.zope.schema.schema.SchemaConfigured bazate pe. Generat Forma adăugare în este de obicei folosit ca parte a parametrului constructori de RegisterClass.
add_form_factory are parametrii:
& Nbsp; descriere nume implicit
& Nbsp; class_ clasa a genera formularul de
& Nbsp; din titlu Creați instanță a class_ titlului prezentat în formă
& Nbsp; descriere clasă _.__ doc__ documentația prezentată în formă
& Nbsp; form_class formă SchemaConfiguredAddForm clasă pentru a fi utilizate
add_form_factory generează o formă zope.formlib cu câmpuri definite de schemele puse în aplicare de dm.zope.schema.schema.SchemaConfigured clasa class_.
Acest modul este similar cu dm.zope.generate.constructor. Cu toate acestea, funcționează pentru clasele bazate pe SchemaConfigured în timp ce acesta din urmă susține cursuri PropertyManager bazate pe.
șablon
Oferă vedere pagina form_template șablon putea vizualiza și edita Zope 2 scheme configurat obiecte de conținut în interfața standard de ZMI.
Exemple
Setup: Se definește două scheme S1 și S2, o interfață I si o clasa C derivă din SchemaConfigured de punere în aplicare schemele și interfața.
>>> De la Interface import zope.interface, ustensile, providedBy
>>> Din zope.schema Int import
>>>
>>> Din dm.zope.schema.schema import SchemaConfigured
>>> Din verify_schema import dm.zope.schema.verify
>>>
>>> Clasa S1 (Interface): i1 = Int (implicit = 0)
...
>>> Clasa S2 (Interface): I2 = Int (implicit = 1)
...
>>> Clasa I (Interface):
... Def metoda (): treci
...
>>> Clasa C (SchemaConfigured):
... implementeaza (S1, S2, I)
... Def metoda (auto): Pasă
...
C instanțe au atribute corespunzătoare domeniilor schemei. Dacă nu argumente sunt date pentru constructor, primesc implicit teren ca valoare. Prestate (cuvinte cheie!) Argumente suprascrie valorile implicite.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> c = C (i1 = 5)
>>> C.i1
5
Constructorul respinge argumentele cuvinte cheie nu sunt definite în schema pentru a detecta rapid greșeli de ortografie. Cu toate acestea, acest împiedică utilizarea super-în ierarhia de clasă pentru metoda __init__. Poate, versiunile viitoare va oferi un mijloc de a controla această verificare.
>>> C = C (x = 5)
Traceback (cel mai recent apel ultima):
& Nbsp; ...
TypeError: argument de bază non schemă de cuvinte cheie: x
În cazul în care valorile de câmp sunt adecvate, C instanțe furniza schemele (verificate de verify_schema). În caz contrar, verify_schema va ridica o excepție. Acest exemplu demonstrează, de asemenea, utilizarea elementară a verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Nici unul
>>> Verify_schema (S1, c)
Traceback (cel mai recent apel ultima):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Putem crea o edita (sau afișare) formă pentru obiectele noastre. Câmpurile de formular sunt create automat pentru domeniile noastre de schemă. Clasele forma au o metodă customize_fields puteți suprascrie pentru a oferi câmpuri personalizate și / sau widget-uri.
Funcționalitate similară este disponibilă pentru Zope 2 în subpachet Z2.
>>> Din zope.publisher.browser TestRequest import
>>> Din dm.zope.schema.form SchemaConfiguredEditForm import
>>>
>>> Formular = SchemaConfiguredEditForm (c, TestRequest ())
>>> Listă ([f .__ name__ pentru f în form.form_fields])
["I1", "i2"]

Ce este nou în această versiune:

  • suport formă
  • Zope 2 suport constructor

Cerințe :

  • Python

Alte software-uri de dezvoltator Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Comentarii la dm.zope.schema

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!