dm.zope.schema

البرمجيات قطة:
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، الكائنات، والسياق = بلا، check_declaration = صحيح) الذي يتحقق من أن يرضي الكائنات الجزء المخطط من واجهة iface. تحتاج الحقول مخطط للحصول على منضم إلى السياق قبل أن يتم التحقق من صحتها. يحدد سياق هذا السياق وافتراضات إلى الكائنات. الشيكات check_declaration أن الكائنات تعلن عن privide iface.
مخطط
المحتوى الرئيسي هو الطبقة mixin SchemaConfigured. وهو يدعم التكوين وفقا للجزء مخطط الواجهات التي تنفذها فئة مشتقة SchemaConfigured. إذا كنت تريد التحكم من خلالها واجهات مشتق مخطط، يمكنك استخدام سمة فئة SC_SCHEMAS: يجب أن تكون قيمته بلا (اشتقاق مخطط تلقائيا من واجهات تنفيذها)، واجهة واحدة أو الصفوف (tuple) من الواجهات. السيطرة واضحة على واجهات المستخدمة لتحديد مخطط مهم بشكل خاص لZope 2 مخطط الطبقات المحتوى تكوين (كما هم OFS.SimpleItem.SimpleItem الفئة الأساسية تنفذ عددا كبيرا من واجهات الذين الحقول التي من المحتمل لا تريد في المخطط الخاص بك).
يوفر SchemaConfiguredEvolution الطبقة mixin دعم تطور مخطط ل(ZODB) الأجسام الثابتة. __setstate__ في عداد المفقودين يضيف سمات إلى كائن بحيث يمكنك إضافة حقول جديدة إلى المخطط الخاص بك والتي لا تزال تجد كل الصفات المقابلة على الكائنات منها حتى عندما تكون هذه تم إنشاؤها قبل التمديد. ملاحظة: من أجل SchemaConfiguredEvolution أن تكون فعالة، يجب أن تأتي في الترتيب قرار طريقة (MRO) (قبل persistent.Persistent) في وقت مبكر. وهذا هو السبب هي فئة منفصلة ولها ميزة غير المدرجة في SchemaConfigured نفسه (قد تكون هناك أسباب وجيهة لوSchemaConfigured في وقت متأخر من MRO). كبديل لاستخدام SchemaConfiguredEvolution، يمكنك استخدام القيم الافتراضية المعرفة على مستوى فئة لحقول جديدة.
في بعض الأحيان، وظائف schemaitems وschemadict قد تكون مفيدة. انهم استخراج جزء من مخطط واجهة أو واجهة مواصفات وقائمة من الهوية، وأزواج الحقل أو القاموس، على التوالي.
كائن المجال هو استبدال لzope.schema.Object. يفتقر هذا الأخير المعلومات الميدانية في أخطاء التحقق من الصحة (https://bugs.launchpad.net/zope.schema/+bug/620324) مما يجعل تحديد المجالات المتضررة الصعبة دون داع. في بعض الأحيان، واحد يريد أن قمع الاختيار التي كائن التحقق من صحة يعلن صراحة إلى توفير واجهة. كائن لديه check_declaration خاصية إضافية للسيطرة على هذا (التخلف إلى True).
propertymanager
هذه الوحدة تنفذ مخطط استنادا OFS.PropertyManager.PropertyManager فئة فرعية. و_properties السمة التي تصف خصائص لم يتم المحافظة على الطبقة أو الحالات لكنها مستمدة من المقدمة (نفذت على التوالي) المخططات. لحظة، وخصائص لا يمكن أن تمتد على مستوى مقرها المثال (عدا من خلال توفير مخطط آخر).
يستخدم zope.schema يونيكود لتمثيل النص. PropertyManager يمكن في خصائص دعم يونيكود المبدأ. ولكن نظرا لخلل / ضعف، الصفحة إدارة الممتلكات يعالج بشكل صحيح فقط، وعندما لم يتم تعريف management_page_charset أو لها قيمة UTF-8 (لاحظ حالة الإملاء العلوي!). نحن نستخدم خصائص يونيكود بشكل افتراضي إلا management_page_charset.upper () تعطي قيمة مختلفة من UTF-8. كما نقدم WorkaroundSpelling_management_page_charset الطبقة mixin كمحاولة للتغلب على إصرار غبي Zope على العلوي حالة الإملاء لmanagement_page_charset.
لحظة، يتم اعتماد أنواع الحقول التالية: نص، TextLine، بايت، BytesLine`، منطقي، كثافة العمليات، تطفو وقائمة مع نوع قيمة TextLine أو BytesLine. أنواع أخرى سترفع NotImplementedError.
وقد تم تنفيذ وحدة للاستفادة dm.zope.generate. فإن البديل كان تنفيذ مرافق توليد على أساس "zope.formlib" واستخدام ما يسمى أشكال الإضافة. اعتمادا على الخبرة، وأنا قد التحول إلى هذا البديل.
شكل
وتعرف وحدة تحرير الافتراضي (SchemaConfiguredEditForm) وعرض (SchemaConfiguredDisplayForm) استمارات dm.zope.schema.schema.SchemaConfigured.
ذلك يعتمد على zope.formlib.
القطعة
يوفر عرض وتحرير الحاجيات لحقول Timedelta، القطعة لائقة عرض لحقول كلمة (كلمات السر يعرض الافتراضي في نص واضح)، والقطعة إدخال كلمة المرور لهذا لا يجبرك على تقديم قيمة كلمة المرور كلما قمت بتحرير النموذج.
ذلك يعتمد على zope.app.form في الإصدارات القديمة Zope وعلى zope.formlib في الأحدث منها.
Z2
هذا subpackage يجمع بين مخطط ذات الصلة وZope 2 وظيفة. في إصدارات أحدث Zope، فإنه يعتمد على five.formlib.
شكل
وتعرف وحدة تحرير الافتراضي (SchemaConfiguredEditForm) وعرض (SchemaConfiguredDisplayForm) استمارات dm.zope.schema.schema.SchemaConfigured للاستخدام في Zope 2.
ذلك يعتمد على zope.formlib.
منشئ
تحتوي هذه الوحدة SchemaConfiguredAddForm فئة النموذج إضافة وadd_form_factory مصنع لتوليد شكل الاعلان (تسمى "منشئ" حسب Zope 2) لفئات dm.zope.schema.schema.SchemaConfigured مقرها. وعادة ما تستخدم في شكل إضافة لدت كجزء من المعلمة الصانعين ل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 مخطط تكوين الأجسام المحتوى ضمن واجهة ZMI القياسية.
أمثلة
إعداد: إنه يعرف اثنين من مخططات S1 و S2، واجهة الأول والفئة (أ) C المستمدة من SchemaConfigured تنفيذ مخططات واجهة.
>>> من واجهة استيراد zope.interface، المعلقة، providedBy
>>> من zope.schema كثافة العمليات الواردات
>>>
>>> من dm.zope.schema.schema استيراد SchemaConfigured
>>> من dm.zope.schema.verify verify_schema استيراد
>>>
>>> الطبقة S1 (واجهة): I1 = كثافة العمليات (الافتراضي = 0)
...
>>> الطبقة S2 (واجهة): I2 = كثافة العمليات (الافتراضي = 1)
...
>>> الصف الأول (واجهة):
... مواطنه طريقة (): تمرير
...
>>> الفئة C (SchemaConfigured):
... الأدوات (S1، S2، I)
... مواطنه طريقة (النفس): تمرير
...
حالات C لها سمات المقابلة لحقول المخطط. إذا أعطيت بدون وسائط للمنشئ، ويحصلون الافتراضي المجال حيث القيمة. المقدمة (الكلمة!) الحجج تجاوز التخلف.
>>> ج = C ()
>>> c.i1
0
>>> c.i2
1
>>> ج = C (I1 = 5)
>>> c.i1
5
منشئ يرفض الحجج الكلمة غير معرفة في المخطط في النظام بسرعة للكشف عن الأخطاء الإملائية. ومع ذلك، وهذا يعوق استخدام فائقة في التسلسل الهرمي فئة لطريقة __init__. ربما، سوف الإصدارات المستقبلية توفر وسيلة للسيطرة على هذا الاختيار.
>>> ج = C (س = 5)
Traceback (معظم المكالمات الأخيرة الأخيرة):
على & nbsp؛ ...
TypeError: غير حجة الكلمة مخطط: س
إذا كانت القيم الحقل مناسبة، وحالات C توفر مخططات (كما تم التحقق منها من قبل verify_schema). خلاف ذلك، سوف verify_schema رفع استثناء. يوضح هذا المثال أيضا استخدام الابتدائية من verify_schema.
>>> verify_schema (S1، ج)
>>> c.i1 = بلا
>>> verify_schema (S1، ج)
Traceback (معظم المكالمات الأخيرة الأخيرة):
على & nbsp؛ ...
zope.schema.interfaces.WrongContainedType: [('I1، RequiredMissing ())]
يمكننا خلق تحرير (أو عرض) شكل لكائنات لدينا. يتم إنشاء حقول النموذج تلقائيا لحقول مخطط لدينا. الطبقات شكل لها طريقة customize_fields يمكنك تجاوز لتوفير حقول مخصصة و / أو الحاجيات.
وظائف مماثلة متاحة للZope 2 في subpackage Z2.
>>> من zope.publisher.browser TestRequest استيراد
>>> من dm.zope.schema.form SchemaConfiguredEditForm استيراد
>>>
>>> شكل = SchemaConfiguredEditForm (ج، TestRequest ())
>>> القائمة ([و .__ name__ لو في form.form_fields])
['I1'، 'شركة i2']

ما هو الجديد في هذا الإصدار:

دعم شكل
Zope دعم 2 منشئ

المتطلبات:

بيثون

البرامج الأخرى من المطور Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

تعليقات ل dm.zope.schema

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!