dm.zope.schema

Software screenshot:
dm.zope.schema
Software informatie:
Versie: 2.0
Upload datum: 14 Apr 15
Ontwikkelaar: Dieter Maurer
Licentie: Gratis
Populariteit: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema bevat extensies voor zope.schema.
Modules
controleren
Een metgezel voor zope.interface.verify voor het schema deel van interfaces.
Het bevat de functie verify_schema (iface, obj, context = Geen, check_declaration = True), die dat obj voldoet het schema deel van interface-iface controleert. Schema velden moeten gebonden raken aan een context voordat ze kunnen worden gevalideerd. context specificeert deze context en staat standaard op obj. check_declaration controles die obj verklaart iface privide.
schema
De belangrijkste inhoud is de mixin klasse SchemaConfigured. Het ondersteunt configuratie volgens het schema een deel van de maatregelen die de SchemaConfigured afgeleide klasse interfaces. Als u wilt bedienen waaruit interfaces het schema wordt afgeleid, kunt u gebruik maken van de class attribuut SC_SCHEMAS: zijn waarde moet Geen (ontlenen schema automatisch van de geïmplementeerde interfaces), een enkele interface of een tupel van interfaces zijn. Het nemen van expliciete controle over de interfaces gebruikt om het schema te bepalen is vooral belangrijk voor Zope 2 schema geconfigureerd inhoud klassen (als hun basisklasse OFS.SimpleItem.SimpleItem implementeert een groot aantal interfaces waarvan velden die u waarschijnlijk niet wilt in uw schema).
De mixin klasse SchemaConfiguredEvolution biedt ondersteuning voor het schema evolutie voor (ZODB) blijvende objecten. Haar __setstate__ voegt ontbrekende attributen om het object zodanig dat je nieuwe velden kunt toevoegen aan uw schema en nog steeds vind alle bijbehorende attributen op de respectievelijke objecten, zelfs wanneer die zijn gemaakt voordat de verlenging. Opmerking: om SchemaConfiguredEvolution effectief te zijn, moet het in het begin van de methode resolutie bestelling (MRO) (vóór persistent.Persistent) komen. Daarom is een aparte klasse en haar functie niet opgenomen in SchemaConfigured zelf (kunnen er goede redenen te laat te hebben SchemaConfigured in de MRO zijn). Als alternatief voor het gebruik van SchemaConfiguredEvolution, kan standaard gedefinieerd op klasseniveau voor nieuwe velden waarden.
Af en toe, misschien functies schemaitems en schemadict zijn nuttig. Ze halen het schema deel van een interface of een interface specificatie als een lijst van id, veld paren of een woordenboek, respectievelijk.
Het veld object is een vervanging voor zope.schema.Object. De laatste ontbreekt veld informatie in validatiefouten (https://bugs.launchpad.net/zope.schema/+bug/620324), die de identificatie van de getroffen gebieden onnodig moeilijk maakt. Af en toe, men wil de controle dat een gevalideerde object verklaart uitdrukkelijk aan de interface te onderdrukken. Object heeft de extra eigenschap check_declaration te controleren deze (standaard op true).
PropertyMa-
Deze module implementeert een schema gebaseerd OFS.PropertyManager.PropertyManager subklasse. De _properties attribuut beschrijven van de eigenschappen wordt niet bijgehouden op de klasse of zijn gevallen, maar afgeleid van de voorwaarde (respectievelijk geïmplementeerd) schema. Voor het moment, kan eigenschappen niet worden verlengd op een instantie gebaseerd niveau (anders dan door het verstrekken van een ander schema).
zope.schema gebruikt Unicode om tekst weer te geven. PropertyMa- kan in principe ondersteuning unicode eigenschappen. Echter, als gevolg van een bug / zwakte, het beheer van onroerend goed pagina verwerkt ze alleen correct, wanneer management_page_charset niet is gedefinieerd of heeft waarde UTF-8 (let op de hoofdletters spelling!). We maken gebruik van Unicode-eigenschappen standaard tenzij management_page_charset.upper () geeft een waarde verschillend van UTF-8. We bieden ook een mixin klasse WorkaroundSpelling_management_page_charset om te werken rond domme aandringen Zope op hoofdletters spelling voor management_page_charset.
Op dit moment worden de volgende types veld ondersteund: Tekst, TextLine, Bytes, BytesLine`, Bool, Int, Float en Lijst met een waarde type TextLine of BytesLine. Andere soorten zal verhogen NotImplementedError.
De module is geïmplementeerd te dm.zope.generate benutten. Een alternatief zou de uitvoering van de productie-installaties op basis van "zope.formlib" en het gebruik van zogeheten add vormen hebben. Afhankelijk van ervaring, kan ik overschakelen naar dit alternatief.
vorm
De module definieert standaard bewerken (SchemaConfiguredEditForm) en display (SchemaConfiguredDisplayForm) formulieren voor dm.zope.schema.schema.SchemaConfigured.
Het hangt af van zope.formlib.
widget
Biedt weergave en bewerken widgets voor timedelta velden, een fatsoenlijk scherm widget voor Password velden (de standaard displays wachtwoorden in platte tekst) en een ingang widget voor het wachtwoord die u niet dwingen om het wachtwoord in waarde wanneer u het formulier bewerken bieden.
Het hangt af van zope.app.form bij oudere Zope versies en op zope.formlib in nieuwere.
z2
Dit subpackage combineert schema gerelateerd en Zope 2 functionaliteit. In nieuwere versies Zope, hangt five.formlib.
vorm
De module definieert standaard bewerken (SchemaConfiguredEditForm) en display (SchemaConfiguredDisplayForm) formulieren voor dm.zope.schema.schema.SchemaConfigured voor gebruik in Zope 2.
Het hangt af van zope.formlib.
bouwer
Deze module bevat een add formulierklasse SchemaConfiguredAddForm en een fabriek add_form_factory voor het genereren van een add vorm (zogenaamde "constructor" van Zope 2) dm.zope.schema.schema.SchemaConfigured gebaseerde klassen. De gegenereerde add vorm wordt meestal gebruikt als onderdeel van de parameter constructeurs om registerClass.
add_form_factory heeft de parameters:
& Nbsp; naam default beschrijving
& Nbsp; class_ de klas om het formulier voor het genereren
& Nbsp; titel Maak bijvoorbeeld van class_ de titel weergegeven in de vorm
& Nbsp; beschrijving klasse _.__ doc__ het getoond in de vorm documentatie
& Nbsp; form_class SchemaConfiguredAddForm vorm klas te gebruiken
add_form_factory genereert een zope.formlib formulier met velden gedefinieerd door de geïmplementeerde schema van dm.zope.schema.schema.SchemaConfigured klasse class_.
Deze module is vergelijkbaar met dm.zope.generate.constructor. Echter, het werkt voor SchemaConfigured gebaseerd klassen, terwijl de laatste ondersteunt PropertyMa- gebaseerd klassen.
sjabloon
Biedt het uitzicht pagina sjabloon form_template kunnen bekijken en bewerken Zope 2 schema geconfigureerd inhoud objecten binnen de norm ZMI interface.
Voorbeelden
Setup: Het definieert twee schema's S1 en S2, een interface I en een klasse C die voortvloeien uit SchemaConfigured uitvoering van de schema's en de interface.
>>> Van zope.interface import Interface, implementeert, providedby
>>> Van zope.schema import Int
>>>
>>> Van dm.zope.schema.schema import SchemaConfigured
>>> Van dm.zope.schema.verify import verify_schema
>>>
>>> Klasse S1 (Interface): i1 = Int (default = 0)
...
>>> Klasse S2 (Interface): i2 = Int (default = 1)
...
>>> Klasse I (Interface):
... Def () methode: pas
...
>>> Klasse C (SchemaConfigured):
... Werktuigen (S1, S2, I)
... Def methode (zelf): pas
...
C gevallen hebben eigenschappen die overeenkomen met het schema velden. Als er geen argumenten worden gegeven voor de constructeur, krijgen ze het veld standaard als waarde. Voorwaarde (trefwoord!) Argumenten overschrijven de standaardinstellingen.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> C = C (i1 = 5)
>>> C.i1
5
De constructeur wijst de argumenten zoekwoord niet in het schema gedefinieerd om spelfouten snel op te sporen. Echter, dit belemmert de toepassing van super in de klasse hiërarchie de __init__ methode. Misschien zullen toekomstige versies een middel om deze controle beheersen.
>>> C = C (x = 5)
Traceback (meest recente oproep vorige):
& Nbsp; ...
TypeError: non-schema trefwoord argument: x
Als het veld waarden zijn van toepassing, C gevallen bieden de schema's (zoals geverifieerd door verify_schema). Anders zal verify_schema een uitzondering te verhogen. Dit voorbeeld toont ook de elementaire gebruik van verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Geen
>>> Verify_schema (S1, c)
Traceback (meest recente oproep vorige):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
We kunnen een bewerking (of display) formulier voor onze objecten. Formuliervelden worden automatisch aangemaakt voor onze schema velden. De vorm klassen hebben een customize_fields methode die u kunt overschrijven om aangepaste velden en / of widgets te bieden.
Vergelijkbare functionaliteit is beschikbaar voor Zope 2 in de Z2 subpackage.
>>> Van zope.publisher.browser import TestRequest
>>> Van dm.zope.schema.form import SchemaConfiguredEditForm
>>>
>>> Vorm = SchemaConfiguredEditForm (c, TestRequest ())
>>> Lijst ([f .__ name__ for f in form.form_fields])
['I1', 'i2']

Wat is nieuw in deze release:

  • vorm ondersteuning
  • Zope 2 constructeur ondersteuning

Eisen

  • Python

Andere software van ontwikkelaar Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Reacties op dm.zope.schema

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!