dm.zope.schema

Software screenshot:
dm.zope.schema
Software detaljer:
Version: 2.0
Upload dato: 14 Apr 15
Udvikler: Dieter Maurer
Licens: Gratis
Popularitet: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema indeholder udvidelser til zope.schema.
Moduler
verificere
En ledsager til zope.interface.verify for skemaet del af grænseflader.
Den indeholder funktionen verify_schema (IFACE, OBJ, context = Ingen, check_declaration = True), som kontrollerer, at obj opfylder skemaet del af grænsefladen IFACE. Schema felter brug for at få bundet til en kontekst, før de kan valideres. sammenhæng angiver denne sammenhæng, og som standard obj. check_declaration kontrollerer, at obj erklærer at privide IFACE.
skema
Hovedindholdet er den MixIn klasse SchemaConfigured. Det understøtter konfiguration ifølge skemaet del af grænsefladerne gennemføres af SchemaConfigured afledte klasse. Hvis du vil styre, hvorfra grænseflader skemaet er afledt, kan du bruge klassen attribut SC_SCHEMAS: dens værdi skal være Ingen (udlede skema automatisk fra de gennemførte interfaces), et enkelt interface eller en tupel af grænseflader. Tager eksplicit kontrol over de grænseflader, der anvendes til at bestemme skemaet er især vigtigt for Zope 2 skema konfigurerede indhold klasser (som deres base klasse OFS.SimpleItem.SimpleItem implementerer et stort antal grænseflader, hvis felter, du sandsynligvis ikke ønsker i dit skema).
Den MixIn klasse SchemaConfiguredEvolution understøtter skema evolution for (ZODB) persistente objekter. Dens __setstate__ tilføjer manglende attributter til objektet, så du kan tilføje nye felter til din skema og stadig finde alle tilsvarende attributter på de respektive objekter, selv når de er blevet oprettet inden forlængelsen. Bemærk: For at SchemaConfiguredEvolution at være effektiv, skal det komme tidligt i metoden resolution rækkefølge (MRO) (før persistent.Persistent). Derfor er en separat klasse og dens funktion ikke inkluderet i SchemaConfigured selv (der kan være gode grunde til at have SchemaConfigured sent i MRO). Som et alternativ til brugen af ​​SchemaConfiguredEvolution, kan du bruge standardværdier, der er defineret på klasse niveau for nye områder.
Lejlighedsvis, kan funktioner schemaitems og schemadict være praktiske. De udtrække skemaet del af en grænseflade eller grænseflade specifikation som en liste over id, field par eller en ordbog, hhv.
Feltet Object er en erstatning for zope.schema.Object. Sidstnævnte mangler information felt i valideringsfejl (https://bugs.launchpad.net/zope.schema/+bug/620324), hvilket gør identifikation af de berørte områder unødigt vanskeligt. Lejlighedsvis, man ønsker at undertrykke kontrollere, at en valideret objekt udtrykkeligt erklærer at give grænsefladen. Objekt har den ekstra egenskab check_declaration til at styre dette (standard sand).
propertymanager
Dette modul implementerer et skema baseret OFS.PropertyManager.PropertyManager underklasse. De _properties attribut beskriver egenskaberne vedligeholdes ikke på klassen eller dets instanser, men stammer fra de medfølgende (gennemført henholdsvis) skemaer. For øjeblikket kan egenskaber ikke forlænges på en instans baseret niveau (ud over at give en anden skema).
zope.schema bruger Unicode til at repræsentere tekst. PropertyManager kan i princippet støtte unicode egenskaber. Men på grund af en fejl / svaghed, ejendomsadministration siden håndterer dem korrekt kun, når management_page_charset ikke er defineret eller har værdi UTF-8 (bemærk store bogstaver stavemåde!). Vi bruger unicode egenskaber som standard, medmindre management_page_charset.upper () giver en værdi forskellig fra UTF-8. Vi tilbyder også en MixIn klasse WorkaroundSpelling_management_page_charset at arbejde omkring Zope er dum insisteren på store bogstaver stavemåde for management_page_charset.
For øjeblikket er følgende felttyper understøttes: Tekst, TextLine, Bytes, BytesLine`, Bool, Int, Float og Liste med en værdi type TextLine eller BytesLine. Andre typer vil øge NotImplementedError.
Modulet er gennemført for at udnytte dm.zope.generate. Et alternativ ville have været gennemførelsen af ​​produktionsanlæg baseret på "zope.formlib", og brugen af ​​såkaldte add former. Afhængig af erfaring, kan jeg skifte til dette alternativ.
formular
Modulet definerer standard edit (SchemaConfiguredEditForm) og display (SchemaConfiguredDisplayForm) formularer til dm.zope.schema.schema.SchemaConfigured.
Det afhænger af zope.formlib.
widget
Giver display og redigere widgets til Timedelta felter, en anstændig skærm widget til Password felter (standard viser adgangskoder i klartekst) og en indgang widget for password, der ikke tvinge dig til at give den værdi, adgangskode, hver gang du redigerer formularen.
Det afhænger af zope.app.form i ældre Zope versioner og på zope.formlib i nyere.
z2
Denne underpakke kombinerer skema relaterede og Zope 2 funktionalitet. I nyere Zope versioner, det afhænger af five.formlib.
formular
Modulet definerer standard edit (SchemaConfiguredEditForm) og display (SchemaConfiguredDisplayForm) former for dm.zope.schema.schema.SchemaConfigured til brug i Zope 2.
Det afhænger af zope.formlib.
konstruktør
Dette modul indeholder en add formular klasse SchemaConfiguredAddForm og en fabrik add_form_factory til generering af en add formular (kaldet "konstruktør" af Zope 2) til dm.zope.schema.schema.SchemaConfigured baserede klasser. Den genererede add formular er normalt bruges som en del af konstruktører parameter til registerClass.
add_form_factory har parametre:
& Nbsp; navn standardbeskrivelse
& Nbsp; class_ klassen til at generere formularen for
& Nbsp; title Opret forekomst af class_ titlen vist i form
& Nbsp; Beskrivelse klasse _.__ doc__ det vist i form dokumentation
& Nbsp; form_class SchemaConfiguredAddForm formular klasse, der skal anvendes
add_form_factory genererer en zope.formlib formular med felter, der er defineret af de gennemførte skemaer i dm.zope.schema.schema.SchemaConfigured klasse class_.
Dette modul svarer til dm.zope.generate.constructor. Det virker dog til SchemaConfigured baserede klasser mens sidstnævnte understøtter PropertyManager baserede klasser.
skabelon
Giver det synspunkt side skabelon form_template stand til at se og redigere Zope 2 skema konfigureret indhold objekter i standard ZMI interface.
Eksempler
Setup: Det definerer to skemaer S1 og S2, en grænseflade I og en klasse C stammer fra SchemaConfigured gennemføre skemaer og grænsefladen.
>>> Fra zope.interface import interface, redskaber, providedBy
>>> Fra zope.schema import Int
>>>
>>> Fra dm.zope.schema.schema import SchemaConfigured
>>> Fra dm.zope.schema.verify import verify_schema
>>>
>>> Klasse S1 (Interface): i1 = Int (standard = 0)
...
>>> Klasse S2 (Interface): i2 = Int (standard = 1)
...
>>> Klasse I (Interface):
... Def metode (): pass
...
>>> Klasse C (SchemaConfigured):
... redskaber (S1, S2, I)
... Def metode (selv-): pass
...
C forekomster har attributter, der svarer til skema felter. Hvis der er givet nogen argumenter for konstruktøren, de får feltet standard som værdi. Forudsat (søgeord!) Argumenter tilsidesætte standardindstillingerne.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> = C (I1 = 5)
>>> C.i1
5
Konstruktøren afviser søgeord argumenter ikke er defineret i skemaet for hurtigt opdage stavefejl. Men det hæmmer brugen af ​​super i klassen hierarkiet for __init__ metoden. Måske vil fremtidige versioner giver et middel til at styre denne kontrol.
>>> C = C (x = 5)
Tilbagesporingstællingen (seneste opkald sidste):
& Nbsp; ...
TypeError: non skema søgeord argument: x
Hvis feltværdier er passende, C forekomster giver skemaerne (som bekræftet ved verify_schema). Ellers vil verify_schema hæve en undtagelse. Dette eksempel viser også den elementære brug af verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Ingen
>>> Verify_schema (S1, c)
Tilbagesporingstællingen (seneste opkald sidste):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [(»i1«, RequiredMissing ())]
Vi kan skabe en redigering (eller display) formular til vores objekter. Formularfelter oprettes automatisk for vores skema felter. De danner klasser har en customize_fields metode, du kan tilsidesætte at give brugerdefinerede felter og / eller widgets.
Lignende funktionalitet er tilgængelig for Zope 2 i Z2 underpakke.
>>> Fra zope.publisher.browser import TestRequest
>>> Fra dm.zope.schema.form import SchemaConfiguredEditForm
>>>
>>> Formen = SchemaConfiguredEditForm (c, TestRequest ())
>>> Liste ([f .__ name__ for f i form.form_fields])
['I1', 'i2']

Hvad er nyt i denne udgivelse:

  • formular support
  • Zope 2 konstruktør support

Krav :

  • Python

Andre software developer Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Kommentarer til dm.zope.schema

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!