dm.zope.schema

Software screenshot:
dm.zope.schema
Dettagli del software:
Versione: 2.0
Data di caricamento: 14 Apr 15
Sviluppatore: Dieter Maurer
Licenza: Libero
Popolarità: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema contiene estensioni per zope.schema.
Moduli
verificare
Un compagno di zope.interface.verify per la parte dello schema di interfacce.
Esso contiene la funzione verify_schema (iface, obj, context = None, check_declaration = True) che verifica che soddisfa obj la parte dello schema di interfaccia iface. Campi schema devono ottenere legato a un contesto prima di poter essere convalidati. contesto specifica questo contesto e default obj. check_declaration controlli che obj dichiara di privide iface.
schema
Il contenuto principale è la classe intermedia SchemaConfigured. Esso supporta la configurazione base la parte dello schema delle interfacce implementate dalla classe derivata SchemaConfigured. Se si desidera controllare da cui si interfaccia schema è derivato, è possibile utilizzare l'attributo class SC_SCHEMAS: il suo valore dovrebbe essere None (derivare schema automaticamente dalle interfacce implementate), una singola interfaccia o una tupla di interfacce. Prendendo il controllo esplicito sulle interfacce utilizzate per determinare lo schema è particolarmente importante per Zope 2 dello schema classi di contenuto configurati (come OFS.SimpleItem.SimpleItem classe base implementa un enorme numero di interfacce di cui campi che probabilmente non si vuole nello schema).
Il SchemaConfiguredEvolution classe intermedia fornisce il supporto per l'evoluzione dello schema per (ZODB) oggetti persistenti. La sua __setstate__ aggiunge manca attributi all'oggetto in modo tale che è possibile aggiungere nuovi campi per lo schema e ancora trovare tutti gli attributi corrispondenti sui rispettivi oggetti, anche quando questi sono stati creati prima dell'estensione. Nota: in ordine per SchemaConfiguredEvolution per essere efficace, deve venire presto l'ordine di risoluzione metodo (MRO) (prima persistent.Persistent). Ecco perché si è una classe a parte e la sua funzione non incluso nel SchemaConfigured sé (ci possono essere buone ragioni per aver SchemaConfigured tarda MRO). Come alternativa all'uso di SchemaConfiguredEvolution, è possibile utilizzare valori di default definiti a livello di classe per nuovi campi.
Di tanto in tanto, funzioni schemaitems e schemadict potrebbe essere utile. Essi estrarre la parte dello schema di una specifica di interfaccia o l'interfaccia come un elenco di id, coppie di campi o un dizionario, rispettivamente.
L'oggetto campo è un sostituto per zope.schema.Object. Quest'ultimo manca informazioni campo in errori di validazione (https://bugs.launchpad.net/zope.schema/+bug/620324) che rende l'identificazione dei settori colpiti inutilmente difficili. Occasionalmente, si vuole sopprimere il controllo che un oggetto convalidato dichiara esplicitamente per fornire l'interfaccia. Oggetto ha la check_declaration proprietà aggiuntiva per controllare questo (il default è True).
PropertyManager
Questo modulo implementa uno schema basato OFS.PropertyManager.PropertyManager sottoclasse. I _properties attributo che descrive le proprietà non è mantenuto sulla classe o le sue istanze, ma derivano dalle (rispettivamente attuate) schemi forniti. Per il momento, proprietà non possono essere estese a livello basato istanza (diverso fornendo un altro schema).
zope.schema utilizza unicode per rappresentare il testo. PropertyManager può in linea di principio le proprietà di supporto Unicode. Tuttavia, a causa di un bug / debolezza, la pagina di gestione della proprietà li gestisce correttamente solo quando management_page_charset non è definito o ha valore UTF-8 (notare l'utilizzo di maiuscole!). Usiamo le proprietà Unicode per default a meno management_page_charset.upper () produce un valore diverso da UTF-8. Forniamo anche un WorkaroundSpelling_management_page_charset classe intermedia per aggirare di Zope stupida insistenza utilizzo di maiuscole per management_page_charset.
Per il momento, sono supportati i seguenti tipi di campo: Testo, TextLine, Byte, BytesLine`, Bool, int, float e List con un tipo di valore di TextLine o BytesLine. Altri tipi alzeranno NotImplementedError.
Il modulo è stato implementato per sfruttare dm.zope.generate. Un'alternativa sarebbe stata la realizzazione degli impianti di generazione basati su "zope.formlib" e l'uso delle cosiddette forme aggiuntivi. A seconda esperienza, posso passare a questa alternativa.
forma
Il modulo definisce modifica predefinito (SchemaConfiguredEditForm) e display (SchemaConfiguredDisplayForm) forme per dm.zope.schema.schema.SchemaConfigured.
Dipende zope.formlib.
del widget
Fornisce visualizzare e modificare i widget per i campi timedelta, un widget decente di visualizzazione per campi Password (password di default visualizza in testo in chiaro) e un widget di input per la password che non ti obbliga a fornire il valore della password ogni volta che si modifica il modulo.
Dipende zope.app.form in versioni precedenti di Zope e zope.formlib in quelli più recenti.
z2
Questo sottopacchetto combina schema correlate e Zope funzionalità 2. Nelle versioni più recenti di Zope, dipende five.formlib.
forma
Il modulo definisce modifica predefinito (SchemaConfiguredEditForm) e display (SchemaConfiguredDisplayForm) moduli per dm.zope.schema.schema.SchemaConfigured per l'uso in Zope 2.
Dipende zope.formlib.
costruttore
Questo modulo contiene una classe SchemaConfiguredAddForm modulo add e un add_form_factory fabbrica per la generazione di un modulo aggiuntivo (chiamato "costruttore" di Zope 2) per le classi basate dm.zope.schema.schema.SchemaConfigured. Il modulo aggiuntivo generato di solito è usato come parte del parametro costruttori di registerClass.
add_form_factory ha i parametri:
& Nbsp; descrizione nome predefinito
& Nbsp; class_ la classe per generare il modulo per
& Nbsp; titolo Creare istanza class_ titolo mostrato in forma
& Nbsp; classe descrizione _.__ doc__ la documentazione indicata in forma
& Nbsp; form_class classe form SchemaConfiguredAddForm da utilizzare
add_form_factory genera una forma zope.formlib con campi definiti dagli schemi attuati di dm.zope.schema.schema.SchemaConfigured classe class_.
Questo modulo è simile a dm.zope.generate.constructor. Tuttavia, funziona per le classi basate SchemaConfigured mentre il secondo supporta classi basate PropertyManager.
sagoma
Fornisce la visualizzazione della pagina template form_template in grado di visualizzare e modificare Zope 2 dello schema configurato oggetti contenuti all'interno della interfaccia standard ZMI.
Esempi
Setup: Definisce due schemi S1 e S2, un interfaccia I e una classe C derivante dalla SchemaConfigured attuare gli schemi e l'interfaccia.
>>> Da zope.interface Interface importazione, attrezzi, providedby
>>> Da zope.schema import Int
>>>
>>> Da dm.zope.schema.schema import SchemaConfigured
>>> Da dm.zope.schema.verify verify_schema import
>>>
>>> Classe S1 (Interface): i1 = Int (default = 0)
...
>>> Classe S2 (Interface): i2 = Int (default = 1)
...
>>> Classe I (Interface):
... Def Metodo (): passaggio
...
>>> Classe C (SchemaConfigured):
... attrezzi (S1, S2, I)
... Def metodo (auto): passaggio
...
Istanze di C hanno attributi corrispondenti ai campi di schema. Se nessun argomento è dato per il costruttore, che ottengono il default campo come valore. Fornito (parola chiave!) Argomenti sovrascrivono le impostazioni predefinite.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> c = C (i1 = 5)
>>> C.i1
5
Il costruttore respinge argomenti chiave non definiti nello schema per rilevare rapidamente gli errori di ortografia. Tuttavia, questo ostacola l'uso di super nella gerarchia di classe per il metodo __init__. Forse, le versioni future forniranno un mezzo per controllare questo controllo.
>>> C = C (x = 5)
Traceback (chiamata più recente scorso):
& Nbsp; ...
TypeError: argomento non schema parola chiave: x
Se i valori di campo sono adeguate, le istanze C forniscono gli schemi (come verificato da verify_schema). In caso contrario, verify_schema solleverà un'eccezione. Questo esempio dimostra anche l'uso elementare di verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Nessuno
>>> Verify_schema (S1, c)
Traceback (chiamata più recente scorso):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Possiamo creare una modifica (o display) modulo per i nostri oggetti. I campi del form vengono creati automaticamente per i nostri campi di schema. Le classi dei form hanno un metodo di customize_fields è possibile ignorare fornire campi personalizzati e / o widget.
Una funzionalità simile è disponibile per Zope 2 nella sottopacchetto Z2.
>>> Da zope.publisher.browser import TestRequest
>>> Da dm.zope.schema.form import SchemaConfiguredEditForm
>>>
>>> Forma = SchemaConfiguredEditForm (c, TestRequest ())
>>> List ([f .__ name__ for f in form.form_fields])
['I1', 'i2']

Cosa c'è di nuovo in questa versione:

  • Supporto modulo
  • Zope 2 Supporto costruttore

Requisiti :

  • Python

Altri software di sviluppo Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Commenti a dm.zope.schema

I commenti non trovato
Aggiungi commento
Accendere le immagini!