dm.zope.schema

ภาพหน้าจอของซอฟแวร์:
dm.zope.schema
รายละเอียดซอฟแวร์:
รุ่น: 2.0
วันที่อัพโหลด: 14 Apr 15
ผู้พัฒนา: Dieter Maurer
การอนุญาต: ฟรี
ความนิยม: 11

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
เค้าร่าง
เนื้อหาหลักเป็นชั้น mixin SchemaConfigured สนับสนุนการกำหนดค่าตามส่วนที่เค้าร่างของอินเตอร์เฟซการใช้งานโดย SchemaConfigured ชั้นเรียนมา ถ้าคุณต้องการที่จะควบคุมที่เชื่อมต่อสคีมาคุณสามารถใช้คลาสแอตทริบิวต์ SC_SCHEMAS: ค่าที่ควรจะไม่มี (ผลมาคีมาโดยอัตโนมัติจากอินเตอร์เฟซการใช้งาน), อินเตอร์เฟซเดียวหรือ tuple ของอินเตอร์เฟซ การควบคุมอย่างชัดเจนกว่าอินเตอร์เฟซที่ใช้ในการกำหนดสคีมาเป็นสิ่งสำคัญโดยเฉพาะอย่างยิ่งสำหรับ Zope 2 สคีกำหนดค่าเรียนเนื้อหา (ตาม OFS.SimpleItem.SimpleItem ชั้นฐานของพวกเขาดำเนินการเป็นจำนวนมากของอินเตอร์เฟซที่มีสาขาที่คุณอาจไม่ต้องการใน schema ของคุณ)
SchemaConfiguredEvolution ชั้น mixin ให้การสนับสนุนสำหรับคีมาสำหรับวิวัฒนาการ (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 อสังหาริมทรัพย์เพิ่มเติมในการควบคุมนี้ (เริ่มต้นที่ทรูมูฟ)
PropertyManager
โมดูลนี้จะดำเนินการตามสคีรอง OFS.PropertyManager.PropertyManager _properties แอตทริบิวต์อธิบายคุณสมบัติจะไม่รักษาไว้ในชั้นเรียนหรืออินสแตนซ์ของมัน แต่ที่ได้มาจากการให้บริการ (ดำเนินการตามลำดับ) schemas สำหรับขณะนี้คุณสมบัติไม่สามารถขยายบนอินสแตนระดับพื้นฐาน (นอกเหนือจากการให้คีมาอีก)
zope.schema ใช้ Unicode จะเป็นตัวแทนของข้อความ PropertyManager สามารถในการสนับสนุนคุณสมบัติ Unicode หลักการ แต่เนื่องจากข้อผิดพลาด / อ่อนแอ, หน้าการจัดการทรัพย์สินที่จับพวกเขาได้อย่างถูกต้องเท่านั้นเมื่อ management_page_charset ไม่ได้กำหนดหรือมีค่าเป็น UTF-8 (หมายเหตุสะกดกรณีบน!) เราใช้คุณสมบัติ Unicode โดยเริ่มต้นเว้นแต่ management_page_charset.upper () อัตราผลตอบแทนค่าแตกต่างจาก UTF-8 นอกจากนี้เรายังให้ WorkaroundSpelling_management_page_charset ชั้น mixin เพื่อหลีกเลี่ยงการเรียกร้องโง่ Zope ในการสะกดกรณีบนสำหรับ management_page_charset
สำหรับขณะนี้ประเภทฟิลด์ต่อไปนี้ได้รับการสนับสนุน: ข้อความ TEXTLINE ไบต์, BytesLine`, Bool, Int, ลอยและรายชื่อกับประเภทค่าของ TEXTLINE หรือ BytesLine ประเภทอื่น ๆ จะเพิ่ม NotImplementedError
โมดูลที่ได้รับการดำเนินการเพื่อยกระดับ dm.zope.generate ทางเลือกที่จะได้รับการดำเนินการของสิ่งอำนวยความสะดวกรุ่นบนพื้นฐานของ "zope.formlib" และการใช้ที่เรียกว่าการเพิ่มรูปแบบ ทั้งนี้ขึ้นอยู่กับประสบการณ์ของผมอาจจะเปลี่ยนไปใช้ทางเลือกนี้
รูป
โมดูลกำหนดแก้ไขค่าเริ่มต้น (SchemaConfiguredEditForm) แล​​ะการแสดง (SchemaConfiguredDisplayForm) แบบฟอร์มสำหรับ dm.zope.schema.schema.SchemaConfigured
มันขึ้นอยู่กับ zope.formlib
เครื่องมือ
มีการแสดงและแก้ไขเครื่องมือสำหรับสาขา timedelta, เครื่องมือการแสดงผลที่ดีสำหรับเขตข้อมูลรหัสผ่าน (เริ่มต้นแสดงรหัสผ่านใน cleartext) และเครื่องมือการป้อนรหัสผ่านที่ไม่บังคับให้คุณให้ค่ารหัสผ่านเมื่อใดก็ตามที่คุณแก้ไขรูปแบบ
มันขึ้นอยู่กับ 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 กับเขตที่กำหนดโดย schemas ดำเนินการของ dm.zope.schema.schema.SchemaConfigured ชั้น class_
โมดูลนี้จะคล้ายกับ dm.zope.generate.constructor อย่างไรก็ตามการทำงานสำหรับการเรียนตาม SchemaConfigured ขณะที่หลังการสนับสนุน PropertyManager เรียนตาม
แบบ
ให้มุมมองหน้าแม่ form_template สามารถที่จะดูและแก้ไข Zope 2 วัตถุเนื้อหาการกำหนดค่าสคีภายในมาตรฐานอินเตอร์เฟซ ZMI
ตัวอย่าง
การติดตั้ง: มันกำหนดสอง schemas S1 และ S2, อินเตอร์เฟซ I และ C ที่ได้รับจากชั้น SchemaConfigured ดำเนิน schemas และอินเตอร์เฟซ
>>> จากอินเตอร์เฟซที่นำเข้า zope.interface, ดำเนิน, providedBy
>>> จาก Int นำเข้า zope.schema
>>>
>>> จากการนำเข้า dm.zope.schema.schema SchemaConfigured
>>> จากการนำเข้า dm.zope.schema.verify verify_schema
>>>
>>> ชั้น S1 (Interface): i1 = Int (default = 0)
...
>>> ชั้น S2 (Interface): i2 = Int (default = 1)
...
>>> ชั้นผม (Interface):
... วิธี def (): ผ่าน
...
>>> คลาส C (SchemaConfigured):
... การดำเนินการ (S1, S2 I)
... วิธี def (ตัวเอง): ผ่าน
...
กรณี C มีแอตทริบิวต์ที่สอดคล้องกับสาขาสคี ถ้าไม่มีข้อโต้แย้งจะได้รับสำหรับการสร้างพวกเขาได้รับข้อมูลการเริ่มต้นเป็นค่า ได้มา (คำ!) ข้อโต้แย้งแทนที่ค่าเริ่มต้น
>>> c = C ()
>>> c.i1
0
>>> c.i2
1
>>> c = C (i1 = 5)
>>> c.i1
5
คอนสตรัคปฏิเสธข้อโต้แย้งคำไม่ได้กำหนดไว้ใน schema ในการสั่งซื้ออย่างรวดเร็วตรวจสอบการสะกดผิด แต่นี้ hampers ใช้สุดในลำดับชั้นสำหรับวิธีการ __init__ บางทีรุ่นในอนาคตจะให้ความหมายในการควบคุมการตรวจสอบนี้
>>> c = C (x = 5)
Traceback (โทรล่าสุดที่ผ่านมา):
& nbsp; ...
TypeError: การโต้แย้งคำคีมาไม่: x
หากค่าฟิลด์มีความเหมาะสมกรณี C ให้ schemas (ตามที่ตรวจสอบโดย 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 ใน z2 subpackage
>>> จากการนำเข้า zope.publisher.browser TestRequest
>>> จากการนำเข้า dm.zope.schema.form SchemaConfiguredEditForm
>>>
>>> รูปแบบ = SchemaConfiguredEditForm (ค, TestRequest ())
>>> รายการ ([F name__ สำหรับฉใน form.form_fields .__])
['i1', 'i2']

มีอะไรใหม่ ในข่าวประชาสัมพันธ์นี้:

  • การสนับสนุนรูปแบบ
  • Zope 2 สนับสนุนคอนสตรัค

ต้องการ

  • หลาม

ซอฟแวร์อื่น ๆ ของนักพัฒนา Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

ความคิดเห็นที่ dm.zope.schema

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!