dm.zope.schema

Software skärmdump:
dm.zope.schema
Mjukvaruinformation:
Version: 2.0
Ladda upp dagen: 14 Apr 15
Utvecklare: Dieter Maurer
Licens: Gratis
Popularitet: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema innehåller tillägg för zope.schema.
Moduler
verifiera
En kamrat till zope.interface.verify för schemat delen av gränssnitt.
Den innehåller funktionen verify_schema (iface, obj, context = Ingen, check_declaration = sant) som verifierar att obj uppfyller schemat delen av gränssnittet iface. Schema fält behöver få bunden till ett sammanhang innan de kan valideras. sammanhanget anger detta sammanhang och som standard obj. check_declaration kontrollerar att obj förklarar att privide iface.
schema
Det huvudsakliga innehållet är mixin klassen SchemaConfigured. Den stöder konfiguration enligt schemat delen av gränssnitten förs av SchemaConfigured härledda klassen. Om du vill styra från vilket gränssnitt schemat härrör, kan du använda klassen attributet SC_SCHEMAS: dess värde bör vara Ingen (härleda schema automatiskt från de genomförda gränssnitt), ett enda gränssnitt eller en tupel av gränssnitt. Med explicit kontroll över de gränssnitt som används för att bestämma schemat är särskilt viktigt för Zope 2 schema konfigurerade innehållsklasser (som sin basklass OFS.SimpleItem.SimpleItem implementerar ett stort antal gränssnitt vars fält du sannolikt inte vill ha i ditt schema).
Den mixin klassen SchemaConfiguredEvolution ger stöd för schema evolution för (ZODB) persistenta objekt. Dess __setstate__ lägger saknas attribut till objektet så att du kan lägga till nya fält till din schema och fortfarande hitta alla motsvarande attribut på respektive objekt, även när de har skapats före förlängningen. Obs: för att SchemaConfiguredEvolution att vara effektiv måste den komma tidigt i metoden upplösning ordning (MRO) (före persistent.Persistent). Det är därför är en separat klass och dess funktion som ingår inte i SchemaConfigured själv (det kan finnas goda skäl att ha SchemaConfigured sent i MRO). Som ett alternativ till användningen av SchemaConfiguredEvolution, kan du använda standardvärden definierade på klassnivå för nya fält.
Ibland kan det hända funktioner schemaitems och schemadict vara användbar. De extrahera schemat delen av ett gränssnitt eller gränssnittsspecifikation som en lista med id, fältspar eller en ordbok, respektive.
Fält Object är en ersättning för zope.schema.Object. Den senare saknar fältinformation i valideringsfel (https://bugs.launchpad.net/zope.schema/+bug/620324) som gör identifiering av de drabbade områdena onödigt svårt. Ibland vill man undertrycka kontrollera att ett validerat objektet uttryckligen förklarar att ge gränssnittet. Objekt har den ytterligare egenskapen check_declaration att kontrollera detta (standard är sant).
Property
Denna modul implementerar ett schema baserat OFS.PropertyManager.PropertyManager underklass. De _properties attribut beskriver fastigheterna inte upprätthålls på klass eller dess instanser utan härrör från den medföljande (respektive genomförts) scheman. För tillfället kan fastigheter inte förlängas på en instans baserad nivå (annat än genom att tillhandahålla en annan schema).
zope.schema använder unicode för att representera text. Property kan i princip stödja Unicode egenskaper. Men på grund av en bugg / svaghet, fastighetsförvaltning sidan hanterar dem på rätt sätt bara när management_page_charset inte är definierad eller har ett värde UTF-8 (observera versaler stavningen!). Vi använder unicode egenskaper som standard såvida management_page_charset.upper () ger ett värde som skiljer sig från UTF-8. Vi erbjuder även ett mixin klass WorkaroundSpelling_management_page_charset att arbeta runt Zope s dumma insisterande på versaler stavning för management_page_charset.
För närvarande är följande fälttyper som stöds: Text, Textline, Bytes, BytesLine`, Bool, Int, Float och Lista med ett värde typ av Textline eller BytesLine. Andra typer höjer NotImplementedError.
Modulen har genomförts för att utnyttja dm.zope.generate. Ett alternativ hade varit att genomföra de produktionsanläggningar som baseras på "zope.formlib" och användningen av så kallade add former. Beroende på erfarenhet, kan jag byta till detta alternativ.
formulär
Modulen definierar standard edit (SchemaConfiguredEditForm) och display (SchemaConfiguredDisplayForm) former för dm.zope.schema.schema.SchemaConfigured.
Det beror på zope.formlib.
widget
Ger display och redigera widgets för Timedelta fält, en anständig display widget för Password (standard visar lösenorden i klartext) och en ingångs widget för lösenord som inte tvingar dig att ge lösenordet värdet när du redigerar formuläret.
Det beror på zope.app.form i äldre Zope versioner och på zope.formlib i nyare.
z2
Denna underpaket kombinerar schema relaterade och Zope 2 funktionalitet. I nyare Zope versioner, det beror på five.formlib.
formulär
Modulen definierar standard edit (SchemaConfiguredEditForm) och display (SchemaConfiguredDisplayForm) former för dm.zope.schema.schema.SchemaConfigured för användning i Zope 2.
Det beror på zope.formlib.
konstruktor
Denna modul innehåller en add formklass SchemaConfiguredAddForm och en fabrik add_form_factory för generering av en add form (kallad "konstruktor" av Zope 2) för dm.zope.schema.schema.SchemaConfigured baserade klasser. Den genererade add formuläret används vanligen som en del av konstruktörer parametern till registerclass.
add_form_factory har parametrarna:
& Nbsp; namn standardbeskrivning
& Nbsp; class_ klassen att generera formuläret för
& Nbsp; title Skapa instans av class_ titeln visas i form
& Nbsp; beskrivning klass _.__ doc__ dokumentationen som visas i form
& Nbsp; form_class SchemaConfiguredAddForm formklass som ska användas
add_form_factory genererar en zope.formlib formulär med fält som definieras av de genomförda scheman för dm.zope.schema.schema.SchemaConfigured klass class_.
Denna modul liknar dm.zope.generate.constructor. Men, det fungerar för SchemaConfigured baserade klasser medan den senare har stöd Property baserade klasser.
mall
Ger utsikten sidmallen form_template kunna visa och redigera Zope 2 schema konfigurerad innehållsobjekt i standarden ZMI gränssnittet.
Exempel
Inställning: Den definierar två scheman S1 och S2, ett gränssnitt I och klass C som härrör från SchemaConfigured genomföra scheman och gränssnittet.
>>> Från zope.interface import Interface, redskap, providedBy
>>> Från zope.schema import Int
>>>
>>> Från dm.zope.schema.schema import SchemaConfigured
>>> Från dm.zope.schema.verify import verify_schema
>>>
>>> Klass S1 (Interface): i1 = Int (default = 0)
...
>>> Klass S2 (Interface): i2 = Int (default = 1)
...
>>> Klass I (Interface):
... Def metod (): pass
...
>>> Klass C (SchemaConfigured):
... redskap (S1, S2, I)
... Def metod (själv): pass
...
C instanser har attribut som motsvarar schemafält. Om inga argument ges för konstruktören, de får fältet standard som värde. Förutsatt (sökord!) Argument åsidosätta standardinställningarna.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> = C (i1 = 5)
>>> C.i1
5
Konstruktören avvisar sökords argument som inte definieras i schemat för att snabbt upptäcka stavfel. Emellertid hindrar detta användningen av super i klasshierarkin för __init__ metoden. Kanske kommer framtida versioner ger ett sätt att kontrollera denna kontroll.
>>> C = C (x = 5)
Spårnings (senaste samtalet sist):
& Nbsp; ...
Typfel: non schema sökord argument: x
Om fältvärdena är lämpligt, C instanser ge scheman (som kontrolleras av verify_schema). Annars kommer verify_schema höja ett undantag. Detta exempel visar också den elementära användning av verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = None
>>> Verify_schema (S1, c)
Spårnings (senaste samtalet sist):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Vi kan skapa en redigering (eller display) formen för våra objekt. Formulärfält skapas automatiskt för våra schemafält. De bildar klasser har en customize_fields metod du kan åsidosätta tillhandahålla egna fält och / eller widgets.
Liknande funktionalitet är tillgänglig för Zope 2 i z2 underpaket.
>>> Från zope.publisher.browser import TestRequest
>>> Från dm.zope.schema.form import SchemaConfiguredEditForm
>>>
>>> Formen = SchemaConfiguredEditForm (c, TestRequest ())
>>> Listan ([f .__ name__ för f i form.form_fields])
['I1', 'i2']

Vad är nytt i den här versionen:

  • formulär support
  • Zope 2 konstruktören support

Krav :

  • Python

Annan programvara för utvecklare Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Kommentarer till dm.zope.schema

Kommentarer hittades inte
Kommentar
Slå på bilder!