dm.zope.schema

Logiciel capture d'écran:
dm.zope.schema
Détails logiciels:
Version: 2.0
Date de transfert: 14 Apr 15
Développeur: Dieter Maurer
Licence: Gratuit
Popularité: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema contient des extensions pour zope.schema.
Modules
vérifier
Un compagnon à zope.interface.verify pour la partie du schéma d'interfaces.
Il contient la fonction verify_schema (iface, obj, context = Aucun, check_declaration = True) qui vérifie que satisfait obj la partie du schéma de l'interface iface. champs de schéma doivent se lié à un contexte avant qu'ils puissent être validés. cadre spécifie ce contexte et par défaut obj. check_declaration vérifie que obj déclare privide iface.
schéma
Le contenu principal est la classe mixin SchemaConfigured. Il prend en charge la configuration selon la partie du schéma des interfaces mises en œuvre par la classe dérivée SchemaConfigured. Si vous souhaitez commander à partir de laquelle le schéma interface est dérivée, vous pouvez utiliser l'attribut de classe SC_SCHEMAS: sa valeur devrait être Aucun (déduire automatiquement le schéma des interfaces mises en œuvre), une interface simple ou un tuple d'interfaces. Prendre le contrôle explicite sur les interfaces utilisées pour déterminer le schéma est particulièrement important pour Zope 2 schéma classes de contenu configurés (comme leur OFS.SimpleItem.SimpleItem de classe de base met en œuvre un grand nombre d'interfaces dont les champs que vous ne voulez probablement pas dans votre schéma).
Le SchemaConfiguredEvolution de classe mixin fournit un soutien pour l'évolution de schéma pour (ZODB) Les objets persistants. Son __setstate__ ajoute des attributs manquants à l'objet de telle sorte que vous pouvez ajouter de nouveaux champs à votre schéma et de trouver tous les attributs correspondants sur les objets respectifs, même lorsque ceux-ci ont été créés avant l'extension encore. Remarque: pour SchemaConfiguredEvolution pour être efficace, elle doit venir au début de l'ordre méthode de résolution (MRO) (avant persistent.Persistent). Ce est pourquoi est est une catégorie distincte et sa fonction ne figure pas dans SchemaConfigured lui-même (il peut y avoir de bonnes raisons d'avoir SchemaConfigured tard dans la MRO). Comme une alternative à l'utilisation de SchemaConfiguredEvolution, vous pouvez utiliser les valeurs par défaut définies au niveau de la classe de nouveaux champs.
Parfois, les fonctions et schemaitems schemadict pourraient être utile. Ils extraient la partie du schéma d'une spécification d'interface ou interface comme une liste de id, paires de terrain ou d'un dictionnaire, respectivement.
L'objet de champ est un remplacement pour zope.schema.Object. Ce dernier manque d'informations sur le terrain dans les erreurs de validation (https://bugs.launchpad.net/zope.schema/+bug/620324) qui rend l'identification des domaines touchés inutilement difficiles. Parfois, on veut supprimer le chèque qu'un objet validé déclare explicitement de fournir l'interface. Objet possède la propriété check_declaration supplémentaire pour contrôler cette (true par défaut).
gestionnaire de l'immeuble
Ce module implémente un schéma basé OFS.PropertyManager.PropertyManager sous-classe. Les _properties attribut décrivant les propriétés ne est pas maintenue sur la classe ou de ses instances, mais proviennent des schémas fournis (respectivement mises en œuvre). Pour le moment, les propriétés ne peuvent être accordés à un niveau en fonction de l'instance (autre que en fournissant un autre schéma).
zope.schema utilise Unicode pour représenter du texte. PropertyManager peut en principe propriétés support Unicode. Toutefois, en raison d'un bogue / faiblesse, la page de gestion de la propriété les traite correctement que lorsque management_page_charset est pas définie ou a une valeur UTF-8 (notez l'orthographe majuscule!). Nous utilisons propriétés Unicode par défaut, sauf si management_page_charset.upper () donne une valeur différente de UTF-8. Nous fournissons également un WorkaroundSpelling_management_page_charset de classe mixin pour contourner l'insistance stupide de Zope sur l'orthographe de majuscules pour management_page_charset.
Pour le moment, les types de champs suivants sont supportés: texte, TextLine, Octets, BytesLine`, Bool, Int, Float et liste avec un type de TextLine ou BytesLine valeur. Autres types soulèveront NotImplementedError.
Le module a été mis en œuvre pour tirer parti dm.zope.generate. Une alternative aurait été la mise en œuvre des installations de production sur la base de "zope.formlib" et l'utilisation de formes dites de add. Selon l'expérience, je peux passer à cette alternative.
forme
Le module définit modifier par défaut (SchemaConfiguredEditForm) et l'affichage (SchemaConfiguredDisplayForm) formes pour dm.zope.schema.schema.SchemaConfigured.
Il dépend de zope.formlib.
widget,
Fournit affichage et modifier des widgets pour les champs timedelta, un widget décent d'affichage pour les champs de mot de passe (les affiche par défaut des mots de passe en clair) et d'un widget d'entrée de mot de passe qui ne vous oblige pas à fournir la valeur de mot de passe à chaque fois que vous modifiez la forme.
Il dépend de zope.app.form dans les anciennes versions de Zope et zope.formlib dans les plus récents.
z2
Cette sous-paquetage combine schéma liées et Zope 2 fonctionnalité. Dans les versions plus récentes de Zope, cela dépend de five.formlib.
forme
Le module définit modifier par défaut (SchemaConfiguredEditForm) et l'affichage (SchemaConfiguredDisplayForm) formulaires pour dm.zope.schema.schema.SchemaConfigured pour une utilisation dans Zope 2.
Il dépend de zope.formlib.
constructeur
Ce module contient une SchemaConfiguredAddForm de classe de formulaire d'ajout et un add_form_factory d'usine pour la production d'une forme de add (appelé «constructeur» par Zope 2) pour les classes en fonction dm.zope.schema.schema.SchemaConfigured. Le formulaire d'ajout généré est généralement utilisé dans le cadre du paramètre constructeurs pour registerClass.
add_form_factory possède les paramètres:
& Nbsp; la description nom par défaut
& Nbsp; Class_ la classe pour générer le formulaire pour
& Nbsp; le titre Créer instance de class_ le titre représentée sous la forme
& Nbsp; description Classe _.__ doc__ la documentation représenté sous la forme
& Nbsp; form_class formulaire de SchemaConfiguredAddForm classe à être utilisé
add_form_factory génère une forme de zope.formlib avec des champs définis par les schémas mis en œuvre de dm.zope.schema.schema.SchemaConfigured classe class_.
Ce module est similaire à dm.zope.generate.constructor. Cependant, cela fonctionne pour les classes en fonction SchemaConfigured tandis que le second prend en charge des classes basées PropertyManager.
modèle
Fournit la vue modèle de page form_template pouvoir afficher et modifier Zope 2 schéma configuré les objets de contenu au sein de l'interface ZMI standard.
Exemples
Configuration: Il définit deux schémas S1 et S2, une interface I et une classe C découlant de la mise en œuvre SchemaConfigured les schémas et l'interface.
>>> Partir de l'interface d'importation de zope.interface, outils, providedBy
>>> From zope.schema importation Int
>>>
>>> From dm.zope.schema.schema importation SchemaConfigured
>>> From verify_schema d'importation dm.zope.schema.verify
>>>
>>> Classe S1 (Interface): i1 = int (default = 0)
...
>>> Classe S2 (Interface): i2 = int (default = 1)
...
>>> Classe I (Interface):
... Def méthode (): passe
...
>>> Classe C (SchemaConfigured):
... instruments (S1, S2, I)
... Def méthode (auto): passe
...
C instances ont des attributs correspondant aux champs de schéma. Si aucun argument ne est donné pour le constructeur, ils obtiennent la valeur par défaut sur le terrain en tant que valeur. Fournis (mot-clé!) Arguments remplacent les valeurs par défaut.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> c = C (i1 = 5)
>>> C.i1
5
Le constructeur rejette les arguments de mots-clés ne sont pas définis dans le schéma afin de détecter rapidement les erreurs d'orthographe. Cependant, cela entrave l'utilisation de super dans la hiérarchie de classe pour la méthode __init__. Peut-être, les futures versions fourniront un moyen de contrôler cette vérification.
>>> C = C (x = 5)
Retraçage (appel plus récente en dernier):
& Nbsp; ...
TypeError: argument non schéma de mot-clé: x
Si les valeurs de champ sont appropriées, les instances de C fournissent les schémas (comme vérifié par verify_schema). Sinon, verify_schema déclenche une exception. Cet exemple montre aussi l'utilisation élémentaire de verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Aucun
>>> Verify_schema (S1, c)
Retraçage (appel plus récente en dernier):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Nous pouvons créer une édition (ou écran) forme pour nos objets. Les champs du formulaire sont automatiquement créés pour nos champs de schéma. Les classes de formulaires ont une méthode de customize_fields vous pouvez remplacer à fournir des champs et / ou des widgets personnalisés.
Une fonctionnalité similaire est disponible pour Zope 2 dans le sous-paquetage de Z2.
>>> From zope.publisher.browser importation TestRequest
>>> From dm.zope.schema.form importation SchemaConfiguredEditForm
>>>
>>> Forme = SchemaConfiguredEditForm (c, TestRequest ())
>>> Liste ([f .__ name__ for f in form.form_fields])
['I1', 'i2']

Ce qui est nouveau dans cette version:

  • forme de soutien
  • Zope 2 soutien constructeur

Exigences :

  • Python

D'autres logiciels de développeur Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Commentaires à dm.zope.schema

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!