dm.zope.schema

Skjermbilde programvare:
dm.zope.schema
Prog.varedetaljer:
Versjon: 2.0
Last opp dato: 14 Apr 15
Utvikler: Dieter Maurer
Lisens: Gratis
Popularitet: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema inneholder utvidelser for zope.schema.
Moduler
verifisere
En følgesvenn til zope.interface.verify for skjemaet del av grensesnitt.
Det inneholder funksjonen verify_schema (iface, obj, context = Ingen, check_declaration = True) som bekrefter at obj tilfredsstiller skjemaet del av grensesnittet iface. Skjemafelt trenger å bli bundet til en kontekst før de kan valideres. sammenheng angir denne sammenheng og mislighold til obj. check_declaration sjekker at obj erklærer å privide iface.
skjema
Hovedinnholdet er mixinen klasse SchemaConfigured. Den støtter konfigurering etter skjemaet del av grensesnittene implementert av SchemaConfigured avledet klasse. Hvis du ønsker å styre hvilket grensesnitt skjemaet er avledet, kan du bruke klassen attributtet SC_SCHEMAS: verdien bør være Ingen (utlede skjema automatisk fra de gjennomførte grensesnitt), et enkelt grensesnitt eller et tuppel av grensesnitt. Tar eksplisitt kontroll over grensesnitt som brukes til å bestemme skjemaet er spesielt viktig for Zope to skjema konfigurert innholds klasser (som sin base klasse OFS.SimpleItem.SimpleItem implementerer et stort antall grensesnitt som felt du sannsynligvis ikke vil ha i ditt skjema).
Mixinen klasse SchemaConfiguredEvolution gir støtte for skjema evolusjon for (ZODB) vedvarende stedene. Sin __setstate__ legger mangler attributter til objektet slik at du kan legge til nye felt til skjema og fortsatt finne alle tilsvarende egenskaper på de respektive stedene, selv når de har blitt opprettet før utvidelsen. Merk: for at SchemaConfiguredEvolution å være effektiv, må det komme tidlig i metoden oppløsning rekkefølge (MRO) (før persistent.Persistent). Det er derfor det er en egen klasse og dens funksjon ikke inkludert i SchemaConfigured selv (kan det være gode grunner til å ha SchemaConfigured sent på MRO). Som et alternativ til bruk av SchemaConfiguredEvolution, kan du bruke standardverdier definert på klassenivå for nye felt.
Av og til kan funksjoner schemaitems og schemadict være nyttig. De trekke ut skjemaet del av et grensesnitt eller grensesnittspesifikasjon som en liste med id, felt par eller en ordbok, henholdsvis.
Feltet Object er en erstatning for zope.schema.Object. Sistnevnte mangler informasjonsfeltet i valideringsfeil (https://bugs.launchpad.net/zope.schema/+bug/620324) som gjør identifisering av de berørte felt unødvendig vanskelig. Noen ganger ønsker man å undertrykke sjekken som en validert objekt eksplisitt erklærer å gi grensesnittet. Objekt har den ekstra eiendom check_declaration å kontrollere dette (som standard sann).
Property
Denne modulen implementerer et skjema basert OFS.PropertyManager.PropertyManager underklasse. De _properties attributt som beskriver egenskapene ikke blir vedlikeholdt på klassen eller forekomstene, men stammer fra den angitte (henholdsvis implementert) skjemaer. For øyeblikket kan egenskaper ikke forlenges på en forekomst basert nivå (annet enn ved å gi et annet skjema).
zope.schema bruker Unicode for å representere tekst. Property kan i prinsippet støtte Unicode egenskaper. Men på grunn av en feil / svakhet, eiendomsforvaltning side håndterer dem riktig bare når management_page_charset ikke er definert eller har verdi UTF-8 (merk den store bokstaver stavemåten!). Vi bruker unicode egenskaper som standard med mindre management_page_charset.upper () gir en verdi forskjellig fra UTF-8. Vi tilbyr også en mixinen klasse WorkaroundSpelling_management_page_charset å omgå Zope er dum insistering på store bokstaver rettskrivning for management_page_charset.
For øyeblikket er følgende felttyper støttes: Tekst, TextLine, Bytes, BytesLine`, Bool, Int, Float og liste med en verdi type TextLine eller BytesLine. Andre typer vil heve NotImplementedError.
Modulen har blitt iverksatt for å utnytte dm.zope.generate. Et alternativ ville ha vært gjennomføringen av produksjonsanlegg basert på "zope.formlib" og bruk av såkalte add former. Avhengig av erfaring, kan jeg bytte til dette alternativet.
skjema
Modulen definerer standard redigere (SchemaConfiguredEditForm) og skjerm (SchemaConfiguredDisplayForm) former for dm.zope.schema.schema.SchemaConfigured.
Det avhenger zope.formlib.
widget
Gir vise og redigere widgets for Timedelta felt, en anstendig skjerm widget for passordfelt (standard viser passord i klartekst) og en inngang widget for passord som ikke tvinge deg til å oppgi passordet verdi når du redigerer skjemaet.
Det avhenger zope.app.form i eldre Zope versjoner og på zope.formlib i nyere.
z2
Dette subpackage kombinerer skjema relatert og Zope 2-funksjonalitet. I nyere Zope versjoner, det avhenger five.formlib.
skjema
Modulen definerer standard redigere (SchemaConfiguredEditForm) og skjerm (SchemaConfiguredDisplayForm) former for dm.zope.schema.schema.SchemaConfigured for bruk i Zope to.
Det avhenger zope.formlib.
konstruktør
Denne modulen inneholder et tilleggsskjema klasse SchemaConfiguredAddForm og en fabrikk add_form_factory for generering av et tilleggsskjema (kalt "konstruktør" av Zope 2) for dm.zope.schema.schema.SchemaConfigured baserte klasser. Den genererte add formen er vanligvis brukt som en del av konstruktører parameter til Register.
add_form_factory har parametrene:
& Nbsp; navn standardbeskrivelse
& Nbsp; class_ klassen til å generere form for
& Nbsp; tittelen Lag forekomst av class_ tittelen som vises i form
& Nbsp; beskrivelse klasse _.__ doc__ dokumentasjonen vist i form
& Nbsp; form_class SchemaConfiguredAddForm skjema klasse som skal brukes
add_form_factory genererer en zope.formlib skjema med felt som er definert av de gjennomførte skjemaer av dm.zope.schema.schema.SchemaConfigured klasse class_.
Denne modulen er lik dm.zope.generate.constructor. Men, det fungerer for SchemaConfigured baserte klasser mens sistnevnte støtter Property baserte klasser.
mal
Gir oversikt sidemalen form_template i stand til å vise og redigere Zope to skjema konfigurert innholdsobjekter innenfor standard ZMI grensesnitt.
Eksempler
Oppsett: Det definerer to skjemaer S1 og S2, et grensesnitt jeg og en klasse C som stammer fra SchemaConfigured gjennomføre de skjemaer og grensesnittet.
>>> Fra zope.interface import Interface, redskaper, 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):
... redskaper (S1, S2, I)
... Def metode (egen-): pass
...
C tilfeller har egenskaper som svarer til de skjemafeltene. Hvis ingen argumenter er gitt for konstruktøren, de får feltet standard som verdi. Forut (nøkkelord!) Argumenter overstyre standardinnstillingene.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> c = C (i1 = 5)
>>> C.i1
5
Konstruktøren avviser søkeord argumenter som ikke er definert i skjemaet for å raskt oppdage skrivefeil. Imidlertid hindrer dette ved bruk av super i klassehierarkiet for __init__ metoden. Kanskje vil fremtidige versjoner gi et middel for å kontrollere denne sjekken.
>>> C = C (x = 5)
Traceback (siste samtale sist):
& Nbsp; ...
Feiltype: non skjema søkeord argument: x
Hvis feltverdiene er riktige, C tilfeller gi skjemaene (som bekreftet av verify_schema). Ellers vil verify_schema heve et unntak. Dette eksempelet viser også elementær bruk av verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = None
>>> Verify_schema (S1, c)
Traceback (siste samtale sist):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Vi kan skape en endring (eller skjerm) form for våre gjenstander. Skjemafelt blir automatisk opprettet for våre skjemafeltene. Skjema klasser har en customize_fields metode du kan overstyre å gi egendefinerte felt og / eller widgets.
Lignende funksjonalitet er tilgjengelig for Zope 2 i z2 subpackage.
>>> Fra zope.publisher.browser import TestRequest
>>> Fra dm.zope.schema.form import SchemaConfiguredEditForm
>>>
>>> Skjema = SchemaConfiguredEditForm (c, TestRequest ())
>>> Liste ([f .__ name__ for f i form.form_fields])
['I1', 'i2']

Hva er nytt i denne utgaven:

  • skjema støtte
  • Zope to konstruktør støtte

Krav :

  • Python

Annen programvare fra utvikleren Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Kommentarer til dm.zope.schema

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!