dm.zope.schema

Screenshot Λογισμικό:
dm.zope.schema
Στοιχεία Λογισμικού:
Εκδοχή: 2.0
Ανεβάστε ημερομηνία: 14 Apr 15
Προγραμματιστής: Dieter Maurer
Άδεια: Δωρεάν
Δημοτικότητα: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema περιλαμβάνει επεκτάσεις για zope.schema.
Ενότητες
επαλήθευση
Ένας σύντροφος να zope.interface.verify για το τμήμα του σχήματος των διεπαφών.
Περιέχει το verify_schema λειτουργία (iface, obj, το πλαίσιο = Καμία, check_declaration = True), η οποία επαληθεύει ότι obj ικανοποιεί το μέρος του σχήματος iface διεπαφής. Πεδία Schema χρειάζεστε για να δεσμεύεται σε ένα πλαίσιο για να μπορούν να επικυρωθούν. Το περιβάλλον καθορίζει αυτό το πλαίσιο και τις προεπιλογές για obj. check_declaration ελέγχους που obj δηλώνει privide iface.
σχήμα
Το βασικό περιεχόμενο είναι η Μίχίη τάξη SchemaConfigured. Υποστηρίζει διαμόρφωση σύμφωνα με το μέρος του σχήματος των διεπαφών υλοποιείται από το SchemaConfigured παραγόμενη κλάση. Αν θέλετε να ελέγξετε από το οποίο διασυνδέει το σχήμα προέρχεται, μπορείτε να χρησιμοποιήσετε το χαρακτηριστικό κλάσης SC_SCHEMAS: αξία του θα πρέπει να είναι Κανένα (προέρχεται από το σχήμα αυτόματα από τα υλοποιηθέντα διεπαφές), ένα ενιαίο περιβάλλον ή για μια πλειάδα των διεπαφών. Λαμβάνοντας ρητή έλεγχο των διεπαφών που χρησιμοποιούνται για τον προσδιορισμό του σχήματος είναι ιδιαίτερα σημαντικό για Zope 2 σχημάτων ρυθμιστεί κατηγορίες περιεχομένου (ως βασική κλάση OFS.SimpleItem.SimpleItem τους υλοποιεί έναν τεράστιο αριθμό των διασυνδέσεων των οποίων οι τομείς είναι πιθανό να μην θέλετε στο σχήμα σας).
Η κατηγορία Μίχίη SchemaConfiguredEvolution παρέχει υποστήριξη για την εξέλιξη του σχήματος για (ZODB) επίμονη αντικείμενα. __setstate__ Του προσθέτει χαρακτηριστικά που λείπουν στο αντικείμενο έτσι ώστε να μπορείτε να προσθέσετε νέα πεδία σε σχήμα σας και να βρείτε όλες τις αντίστοιχες ιδιότητες με τις αντίστοιχες αντικείμενα, ακόμη και όταν αυτά έχουν δημιουργηθεί πριν από την επέκταση. Σημείωση: για SchemaConfiguredEvolution να είναι αποτελεσματική, θα πρέπει να έρθει από νωρίς με τη σειρά ανάλυση μέθοδο (MRO) (πριν persistent.Persistent). Γι 'αυτό είναι μια ξεχωριστή κατηγορία και το χαρακτηριστικό του δεν περιλαμβάνονται στο ίδιο SchemaConfigured (μπορεί να υπάρχουν καλοί λόγοι για να έχουν SchemaConfigured αργά το MRO). Ως εναλλακτική λύση για τη χρήση του SchemaConfiguredEvolution, μπορείτε να χρησιμοποιήσετε τις προεπιλεγμένες τιμές που ορίζονται σε επίπεδο τάξης για νέα πεδία.
Περιστασιακά, οι λειτουργίες schemaitems και schemadict μπορεί να είναι χρήσιμο. Μπορούν να εξαγάγετε το τμήμα σχήματος μιας προδιαγραφή διασύνδεσης ή διασύνδεσης ως λίστα id, ζευγάρια πεδίο ή ένα λεξικό, αντίστοιχα.
Το αντικείμενο του πεδίου είναι μια αντικατάσταση για zope.schema.Object. Η τελευταία δεν έχει πληροφορίες πεδίου σε σφάλματα επικύρωσης (https://bugs.launchpad.net/zope.schema/+bug/620324), η οποία καθιστά την αναγνώριση των επηρεαζόμενων πεδία ασκόπως δύσκολη. Περιστασιακά, κάποιος θέλει να καταστείλει την επιταγή που επικυρωμένη αντικείμενο δηλώνει ρητά να παρέχουν τη διεπαφή. Αντικείμενο έχει την επιπλέον ιδιότητα check_declaration για τον έλεγχο αυτό (η προεπιλογή είναι True).
propertymanager
Η μονάδα αυτή υλοποιεί ένα σχήμα που βασίζεται OFS.PropertyManager.PropertyManager υποκατηγορία. Οι _properties τις ιδιότητες που περιγράφουν τις ιδιότητες δεν διατηρείται με την κατηγορία ή τις περιπτώσεις της, αλλά προέρχεται από τις παρεχόμενες (εφαρμόζεται αντίστοιχα) σχήματα. Προς το παρόν, οι ιδιότητες δεν μπορεί να επεκταθεί σε ένα παράδειγμα που βασίζεται επίπεδο (εκτός από την παροχή ενός άλλου σχήματος).
zope.schema χρησιμοποιεί Unicode για να αντιπροσωπεύσουν το κείμενο. PropertyManager μπορεί κατ 'αρχήν ιδιότητες υποστήριξη Unicode. Ωστόσο, λόγω ενός bug / αδυναμία, η σελίδα διαχείρισης ακινήτων τους χειρίζεται σωστά μόνο, όταν management_page_charset δεν έχει οριστεί ή έχει αξία UTF-8 (σημειώστε το κεφαλαίο ορθογραφία!). Χρησιμοποιούμε Unicode ιδιότητες από προεπιλογή, εκτός εάν management_page_charset.upper () αποδίδει μια τιμή διαφορετική από UTF-8. Πρέπει επίσης να παρέχουν ένα Μίχίη κατηγορία WorkaroundSpelling_management_page_charset να επιλύσετε ηλίθια επιμονή Zope σχετικά με κεφαλαία ορθογραφία για management_page_charset.
Προς το παρόν, οι παρακάτω τύποι πεδίων που υποστηρίζονται: Κείμενο, Textline, Byte, BytesLine`, Bool, Int, Float και τον κατάλογο με έναν τύπο αξία της Textline ή BytesLine. Άλλοι τύποι θα αυξήσει NotImplementedError.
Η μονάδα έχει τεθεί σε εφαρμογή για τη μόχλευση dm.zope.generate. Μια εναλλακτική λύση θα ήταν η υλοποίηση των εγκαταστάσεων ηλεκτροπαραγωγής που στηρίζονται στη «zope.formlib» και τη χρήση των λεγόμενων μορφές add. Ανάλογα με την εμπειρία, θα μπορούν να στραφούν σε αυτή την εναλλακτική λύση.
μορφή
Η μονάδα καθορίζει προεπιλεγμένη επεξεργασία (SchemaConfiguredEditForm) και οθόνη (SchemaConfiguredDisplayForm) έντυπα για dm.zope.schema.schema.SchemaConfigured.
Εξαρτάται από zope.formlib.
widget
Παρέχει οθόνη και να επεξεργαστείτε widgets για πεδία Timedelta, ένα αξιοπρεπές widget οθόνη για τα πεδία κωδικού πρόσβασης (η προεπιλογή εμφανίζει τους κωδικούς πρόσβασης σε απλό κείμενο) και ένα widget εισόδου για κωδικό που δεν σας υποχρεώνει να παρέχει την τιμή κωδικό πρόσβασης κάθε φορά που επεξεργάζεστε τη φόρμα.
Εξαρτάται από zope.app.form σε παλαιότερες εκδόσεις Zope και zope.formlib σε νεώτερους.
Ζ2
Αυτό υποπακέτο συνδυάζει το σχήμα που σχετίζονται και Zope 2 λειτουργικότητα. Σε νεότερες εκδόσεις Zope, αυτό εξαρτάται από five.formlib.
μορφή
Η μονάδα καθορίζει προεπιλεγμένη επεξεργασία (SchemaConfiguredEditForm) και οθόνη (SchemaConfiguredDisplayForm) έντυπα για dm.zope.schema.schema.SchemaConfigured για χρήση σε Zope 2.
Εξαρτάται από zope.formlib.
κατασκευαστής
Αυτή η ενότητα περιέχει μια μορφή Add Class SchemaConfiguredAddForm και add_form_factory εργοστάσιο για την παραγωγή ενός εντύπου add (που ονομάζεται «κατασκευαστή» από Zope 2) για τις κατηγορίες dm.zope.schema.schema.SchemaConfigured βάση. Η παραγόμενη μορφή add χρησιμοποιείται συνήθως ως μέρος της παραμέτρου κατασκευαστές να registerClass.
add_form_factory έχει τις παραμέτρους:
& Nbsp? Προεπιλεγμένο όνομα περιγραφή
& Nbsp? Class_ την τάξη για να δημιουργήσουν το έντυπο για
& Nbsp? Τίτλο Δημιουργία παράδειγμα του class_ τον τίτλο που αναγράφεται στο έντυπο
& Nbsp? Περιγραφή της κλάσης _.__ doc__ την τεκμηρίωση παρουσιάζεται με τη μορφή
& Nbsp? Form_class τάξη μορφή SchemaConfiguredAddForm να χρησιμοποιείται
add_form_factory δημιουργεί μια μορφή zope.formlib με πεδία που ορίζονται από τα σχήματα που εφαρμόζονται από dm.zope.schema.schema.SchemaConfigured κατηγορίας class_.
Αυτή η ενότητα είναι παρόμοια με dm.zope.generate.constructor. Ωστόσο, αυτό λειτουργεί για SchemaConfigured με βάση τις κατηγορίες, ενώ η δεύτερη υποστηρίζει τάξεις PropertyManager βάση.
περίγραμμα
Παρέχει την άποψη πρότυπο σελίδας form_template σε θέση να δείτε και να επεξεργαστείτε Zope 2 σχήμα διαμορφωμένο περιεχόμενο των αντικειμένων μέσα στο πρότυπο διασύνδεσης ΖΜΙ.
Παραδείγματα
Ρύθμιση: Καθορίζει δύο σχήματα S1 και S2, μια διεπαφή Ι και Γ κατηγορίας που απορρέουν από την εφαρμογή των SchemaConfigured σχήματα και το περιβάλλον.
>>> Από zope.interface Interface εισαγωγής, εργαλεία, providedBy
>>> Από zope.schema Int εισαγωγής
>>>
>>> Από την εισαγωγή dm.zope.schema.schema SchemaConfigured
>>> Από dm.zope.schema.verify verify_schema εισαγωγής
>>>
>>> Κατηγορία S1 (Interface): i1 = Int (προεπιλογή = 0)
...
>>> Κατηγορία S2 (Interface): I2 = Int (προεπιλογή = 1)
...
>>> Τάξης Ι (Interface):
... Def () μέθοδος: πέρασμα
...
>>> Κατηγορίας Γ (SchemaConfigured):
... Εργαλεία (S1, S2, Ι)
... Def μέθοδος (αυτο): πέρασμα
...
Γ περιπτώσεις έχουν χαρακτηριστικά που αντιστοιχούν στα πεδία σχήμα. Εάν δεν αναφέρονται επιχειρήματα για τον κατασκευαστή, παίρνουν την προεπιλεγμένη πεδίο ως αξία. Υπό την προϋπόθεση (λέξη-κλειδί!) Επιχειρήματα παρακάμψετε τις προεπιλεγμένες ρυθμίσεις.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> C = C (i1 = 5)
>>> C.i1
5
Ο κατασκευαστής απορρίπτει τα επιχειρήματα λέξη-κλειδί που δεν ορίζεται στο σχήμα, προκειμένου να εντοπίσει γρήγορα τα ορθογραφικά λάθη. Ωστόσο, αυτό εμποδίζει τη χρήση του super στην ιεραρχία κατηγορίας για τη μέθοδο __init__. Ίσως, οι μελλοντικές εκδόσεις θα παρέχει ένα μέσο για τον έλεγχο αυτού του ελέγχου.
>>> C = C (χ = 5)
Traceback (πιο πρόσφατη κλήση τελευταία):
& Nbsp? ...
TypeError: μη επιχείρημα σχήμα λέξη-κλειδί: x
Αν οι τιμές των πεδίων είναι κατάλληλες, περιπτώσεις Γ παρέχουν τα σχήματα (όπως επαληθεύεται από verify_schema). Διαφορετικά, verify_schema θα αυξήσει μια εξαίρεση. Το παράδειγμα αυτό καταδεικνύει επίσης τη στοιχειώδη χρήση της verify_schema.
>>> Verify_schema (S1, γ)
>>> C.i1 = Κανένας
>>> Verify_schema (S1, γ)
Traceback (πιο πρόσφατη κλήση τελευταία):
& Nbsp? ...
zope.schema.interfaces.WrongContainedType: [(«Ι1», RequiredMissing ())]
Μπορούμε να δημιουργήσουμε μια επεξεργασία (ή οθόνη) μορφή για τα αντικείμενα μας. Πεδία της φόρμας είναι δημιουργούνται αυτόματα για τα πεδία σχήμα μας. Οι τάξεις έχουν μια μορφή μέθοδος customize_fields μπορείτε να παρακάμψετε την παροχή προσαρμοσμένα πεδία ή / και widgets.
Παρόμοια λειτουργία είναι διαθέσιμη για Zope 2 στο υποπακέτο Ζ2.
>>> Από zope.publisher.browser TestRequest εισαγωγής
>>> Από dm.zope.schema.form SchemaConfiguredEditForm εισαγωγής
>>>
>>> Μορφή = SchemaConfiguredEditForm (c, TestRequest ())
>>> Λίστα ([f .__ name__ για f σε form.form_fields])
[«I1», «I2"]

Τι είναι καινούργιο σε αυτήν την έκδοση:

  • υποστήριξη μορφής
  • Zope 2 υποστήριξη κατασκευαστή

Απαιτήσεις :

  • Python

Άλλο λογισμικό του προγραμματιστή Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Σχόλια για dm.zope.schema

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!