dm.zope.schema

Sagteware kiekie:
dm.zope.schema
Sagteware besonderhede:
Weergawe: 2.0
Upload datum: 14 Apr 15
Ontwikkelaar: Dieter Maurer
Lisensie: Gratis
Populariteit: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema bevat uitbreidings vir zope.schema.
Modules
verifieer
'N metgesel te zope.interface.verify vir die skema deel van koppelvlakke.
Dit bevat die funksie verify_schema (iface, obj, konteks = Geen, check_declaration = True) wat bevestig dat obj voldoen aan die skema deel van koppelvlak iface. Skema velde moet gebind te raak aan 'n konteks voordat hulle bekragtig kan word. konteks spesifiseer hierdie konteks en gebreke te obj. check_declaration tjeks wat obj verklaar iface te privide.
skema
Die inhoud is die mixin klas SchemaConfigured. Dit ondersteun opset volgens die skema deel van die koppelvlakke wat deur die SchemaConfigured afgeleide klas. As jy wil om te beheer van wat skakels die skema is afgelei, kan jy gebruik maak van die klas kenmerk SC_SCHEMAS: sy waarde moet Geen (put skema outomaties uit die geïmplementeer interfaces), 'n enkele koppelvlak of 'n tal van koppelvlakke. Neem eksplisiete beheer oor die koppelvlakke gebruik die skedule op te stel, is veral belangrik vir Zope 2 skema ingestel inhoud klasse (soos hul basis klas OFS.SimpleItem.SimpleItem implementeer 'n groot aantal van koppelvlakke wie velde wat jy waarskynlik wil nie in jou skedule).
Die mixin klas SchemaConfiguredEvolution bied ondersteuning vir skema evolusie vir (ZODB) aanhoudende voorwerpe. Sy __setstate__ voeg ontbreek eienskappe aan die voorwerp sodanig dat jy nuwe velde kan byvoeg by jou skedule en nog steeds al ooreenstemmende eienskappe van die onderskeie voorwerpe, selfs wanneer die het voor die uitbreiding is geskep. Let wel: om vir SchemaConfiguredEvolution om doeltreffend te wees, moet dit vroeg in die metode resolusie om (MRO) (voor persistent.Persistent) kom. Dit is die rede waarom 'n aparte klas en sy funksie nie ingesluit in SchemaConfigured self (daar kan goeie redes het laat SchemaConfigured in die MRO). As 'n alternatief vir die gebruik van SchemaConfiguredEvolution, kan jy gebruik standaard waardes gedefinieer op die klas vlak vir nuwe velde.
Soms is, mag funksies schemaitems en schemadict bruikbaar. Hulle pak die skema deel van 'n koppelvlak of koppelvlak spesifikasie as 'n lys van id, die veld pare of 'n woordeboek, onderskeidelik.
Die veld Object is 'n plaasvervanger vir zope.schema.Object. Die laasgenoemde nie in die veld inligting in validasiefoute (https://bugs.launchpad.net/zope.schema/+bug/620324) wat maak die identifisering van die geaffekteerde gebiede onnodig moeilik. Soms, 'n mens wil die tjek wat 'n erkende voorwerp uitdruklik verklaar dat die koppelvlak te verskaf om te onderdruk. Voorwerp het die bykomende eiendom check_declaration hierdie (verstek na True) te beheer.
propertymanager
Hierdie module implementeer 'n skema gegrond OFS.PropertyManager.PropertyManager subklas. Die _properties eienskap beskryf die eienskappe nie gehandhaaf word nie op die klas of sy gevalle maar afgelei van die voorwaarde (onderskeidelik geïmplementeer) skemas. Vir die oomblik, kan eienskappe nie op 'n geval gebaseer vlak (behalwe deur die verskaffing van 'n ander skema) uitgebrei word.
zope.schema gebruik unicode teks te verteenwoordig. PropertyManager kan in beginsel steun unicode eienskappe. Maar, as gevolg van 'n fout / swakheid, die eiendom bestuur bladsy hanteer dit korrek net toe management_page_charset is nie gedefinieer of waarde het UTF-8 (let op die hoofletters spelling!). Ons gebruik unicode eienskappe by verstek, tensy management_page_charset.upper () lewer 'n waarde verskil van UTF-8. Ons bied ook 'n mixin klas WorkaroundSpelling_management_page_charset rondom Zope se stupid aandrang om te werk op die boonste geval spelling vir management_page_charset.
Vir die oomblik is, is die volgende veldtipes ondersteun: teks, TextLine, Bytes, BytesLine`, Bool, Int, dryf en lys met 'n waarde tipe TextLine of BytesLine. Ander tipes sal verhoog NotImplementedError.
Die module is geïmplementeer om te hefboom dm.zope.generate. 'N alternatief sou gewees het om die implementering van die generasie fasiliteite gebaseer op "zope.formlib" en die gebruik van die sogenaamde byvoeging vorms. Afhangende van ondervinding, kan ek oorskakel na hierdie alternatiewe.
vorm
Die module definieer verstek wysig (SchemaConfiguredEditForm) en vertoon (SchemaConfiguredDisplayForm) vorms vir dm.zope.schema.schema.SchemaConfigured.
Dit hang af van zope.formlib.
widget
Bied die vertoning en wysig widgets vir Timedelta velde, 'n ordentlike vertoning widget vir Wagwoord velde (die verstek vertoon wagwoorde in clear text) en 'n inset widget vir Wagwoord wat nie dwing om die wagwoord waarde wanneer jy die vorm verander te voorsien.
Dit hang af van zope.app.form in ouer Zope weergawes en op zope.formlib in nuwer kinders.
Z2
Dit subpackage kombineer skema verwante en Zope 2 funksionaliteit. In nuwer Zope weergawes, dit hang af van five.formlib.
vorm
Die module definieer verstek wysig (SchemaConfiguredEditForm) en vertoon (SchemaConfiguredDisplayForm) vorms vir dm.zope.schema.schema.SchemaConfigured vir gebruik in Zope 2.
Dit hang af van zope.formlib.
constructor
Hierdie module bevat 'n add vorm klas SchemaConfiguredAddForm en 'n fabriek add_form_factory vir die opwekking van 'n byvoeging vorm (die sogenaamde "constructor" deur Zope 2) vir dm.zope.schema.schema.SchemaConfigured gebaseer klasse. Die gegenereerde byvoeging vorm word gewoonlik gebruik as deel van die vervaardigerskampioenskap parameter te registerClass.
add_form_factory het die parameters:
& Nbsp; naam verstek beskrywing
& Nbsp; class_ die klas die vorm vir te genereer
& Nbsp; titel Skep geval van class_ die titel getoon in die vorm
& Nbsp; beskrywing klas _.__ doc__ die dokumentasie getoon in die vorm
& Nbsp; form_class SchemaConfiguredAddForm vorm klas gebruik word
add_form_factory genereer 'n zope.formlib vorm met velde gedefinieer deur die geïmplementeer skemas van dm.zope.schema.schema.SchemaConfigured klas class_.
Hierdie module is soortgelyk aan dm.zope.generate.constructor. Maar dit werk vir SchemaConfigured gebaseer klasse terwyl die laasgenoemde ondersteun PropertyManager gebaseer klasse.
sjabloon
Bied die oog bladsy sjabloon form_template kan besigtig en wysig Zope 2 skema ingestel inhoud voorwerpe binne die standaard ZMI koppelvlak.
Voorbeelde
Setup: Dit definieer twee skemas S1 en S2, 'n koppelvlak ek en 'n klas C vloei uit SchemaConfigured die implementering van die skemas en die koppelvlak.
>>> Van zope.interface invoer Interface, implemente, providedBy
>>> Van zope.schema invoer Int
>>>
>>> Van dm.zope.schema.schema invoer SchemaConfigured
>>> Van dm.zope.schema.verify invoer verify_schema
>>>
>>> Klas S1 (Interface): i1 = Int (verstek = 0)
...
>>> Klas S2 (Interface): i2 = Int (verstek = 1)
...
>>> Klas I (Interface):
... Def metode (): pass
...
>>> Klas C (SchemaConfigured):
... Implemente (S1, S2, I)
... Def metode (self): pass
...
C gevalle het eienskappe wat ooreenstem met die skema velde. Indien geen argumente word gegee vir die konstruktor, kry hulle die veld verstek waarde. Voorsien (navraag!) Argumente ignoreer die standaard.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> C = C (i1 = 5)
>>> C.i1
5
Die constructor verwerp navraag argumente nie gedefinieer in die skema ten einde te vinnig spelling foute op te spoor. Maar hierdie belemmer die gebruik van super in die klas hiërargie vir die __init__ metode. Miskien, sal toekomstige weergawes bied 'n manier om die tjek te beheer.
>>> C = C (x = 5)
Stapelspoor (mees onlangse oproep laaste):
& Nbsp; ...
TypeError: nie skema navraag argument: x
As die veld waardes toepaslik, C gevalle verskaf die skemas (soos bevestig deur verify_schema). Andersins, sal verify_schema 'n uitsondering maak. Hierdie voorbeeld toon ook die basiese gebruik van verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Geen
>>> Verify_schema (S1, c)
Stapelspoor (mees onlangse oproep laaste):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Ons kan 'n verandering (of vertoning) vorm vir ons voorwerpe skep. Vorm velde word outomaties geskep vir ons skema velde. Die vorm klasse het 'n customize_fields metode wat jy kan ignoreer pasgemaakte velde en / of widgets te voorsien.
Soortgelyke funksionaliteit is beskikbaar vir Zope 2 in die Z2 subpackage.
>>> Van zope.publisher.browser invoer TestRequest
>>> Van dm.zope.schema.form invoer SchemaConfiguredEditForm
>>>
>>> Vorm = SchemaConfiguredEditForm (c, TestRequest ())
>>> Lys ([f .__ name__ vir f in form.form_fields])
['I1 "," i2']

Wat is nuut in hierdie release:

  • vorm ondersteuning
  • Zope 2 constructor ondersteuning

Vereistes :

  • Python

Ander sagteware ontwikkelaar Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Kommentaar te dm.zope.schema

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!