dm.zope.schema

Software screenshot:
dm.zope.schema
Rincian Software:
Versi: 2.0
Tanggal Upload: 14 Apr 15
Pengembang: Dieter Maurer
Lisensi: Gratis
Popularitas: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema berisi ekstensi untuk zope.schema.
Modul
memeriksa
Pendamping A ke zope.interface.verify untuk skema bagian dari antarmuka.
Ini berisi fungsi verify_schema (iface, obj, context = None, check_declaration = True) yang menyatakan bahwa memenuhi obj skema bagian dari antarmuka iface. Bidang skema perlu mendapatkan terikat dengan konteks sebelum mereka dapat divalidasi. konteks menentukan konteks ini dan default untuk obj. check_declaration cek yang obj menyatakan untuk privide iface.
skema
Isi utama adalah kelas mixin SchemaConfigured. Mendukung konfigurasi sesuai skema bagian dari antarmuka dilaksanakan oleh SchemaConfigured kelas turunan. Jika Anda ingin mengontrol dari yang interface skema berasal, Anda dapat menggunakan atribut kelas SC_SCHEMAS: nilainya harus ada (berasal skema otomatis dari interface diimplementasikan), antarmuka tunggal atau tuple interface. Mengambil kendali eksplisit atas interface yang digunakan untuk menentukan skema sangat penting untuk Zope 2 skema kelas konten dikonfigurasi (sebagai OFS.SimpleItem.SimpleItem kelas dasar mereka menerapkan sejumlah besar interface yang bidang Anda mungkin tidak ingin dalam skema Anda).
Kelas mixin SchemaConfiguredEvolution menyediakan dukungan untuk skema evolusi untuk (ZODB) obyek persisten. __setstate__ Yang menambahkan hilang atribut ke objek sehingga Anda dapat menambahkan kolom baru untuk skema dan masih menemukan semua atribut yang sesuai pada masing-masing objek bahkan ketika mereka telah diciptakan sebelum ekstensi. Catatan: agar SchemaConfiguredEvolution menjadi efektif, hal itu harus datang lebih awal dalam urutan resolusi metode (MRO) (sebelum persistent.Persistent). Itulah mengapa adalah kelas terpisah dan fitur yang tidak termasuk dalam SchemaConfigured sendiri (mungkin ada alasan yang baik untuk memiliki SchemaConfigured akhir MRO tersebut). Sebagai alternatif untuk penggunaan SchemaConfiguredEvolution, Anda dapat menggunakan nilai default didefinisikan pada tingkat kelas untuk bidang baru.
Kadang-kadang, fungsi schemaitems dan schemadict mungkin berguna. Mereka mengekstrak skema bagian dari sebuah antarmuka atau interface spesifikasi sebagai daftar id, pasang lapangan atau kamus, masing-masing.
Bidang Obyek pengganti zope.schema.Object. Yang terakhir tidak memiliki informasi lapangan di kesalahan validasi (https://bugs.launchpad.net/zope.schema/+bug/620324) yang membuat identifikasi bidang yang terkena tidak perlu sulit. Kadang-kadang, seseorang ingin menekan cek bahwa benda divalidasi secara eksplisit menyatakan untuk menyediakan antarmuka. Obyek memiliki check_declaration properti tambahan untuk mengendalikan ini (default ke True).
PropertyManager
Modul ini mengimplementasikan skema berbasis OFS.PropertyManager.PropertyManager subclass. Para _properties atribut menggambarkan sifat tidak dipertahankan pada kelas atau contoh tetapi berasal dari disediakan (masing-masing dilaksanakan) skema. Untuk saat ini, sifat tidak dapat diperpanjang pada tingkat berbasis instance (selain dengan memberikan skema lain).
zope.schema menggunakan unicode untuk mewakili teks. PropertyManager bisa pada prinsipnya sifat dukungan unicode. Namun, karena bug / kelemahan, halaman manajemen properti menangani mereka dengan benar saja, ketika management_page_charset tidak didefinisikan atau memiliki nilai UTF-8 (perhatikan kasus ejaan atas!). Kami menggunakan sifat unicode secara default kecuali management_page_charset.upper () menghasilkan nilai yang berbeda dari UTF-8. Kami juga menyediakan kelas WorkaroundSpelling_management_page_charset mixin untuk bekerja di sekitar desakan bodoh Zope pada kasus ejaan atas untuk management_page_charset.
Untuk saat ini, jenis bidang berikut yang didukung: Teks, textline, Bytes, BytesLine`, Bool, Int, Float dan Daftar dengan jenis nilai textline atau BytesLine. Jenis lain akan meningkatkan NotImplementedError.
Modul telah dilaksanakan untuk meningkatkan dm.zope.generate. Sebuah alternatif akan menjadi pelaksanaan fasilitas pembangkit berdasarkan "zope.formlib" dan penggunaan apa yang disebut add bentuk. Tergantung pada pengalaman, saya dapat beralih ke alternatif ini.
untuk m
Modul ini mendefinisikan mengedit default (SchemaConfiguredEditForm) dan display (SchemaConfiguredDisplayForm) formulir untuk dm.zope.schema.schema.SchemaConfigured.
Hal ini tergantung pada zope.formlib.
widget
Memberikan tampilan dan mengedit widget untuk bidang timedelta, tampilan widget yang layak untuk bidang Password (default menampilkan password dalam teks-jelas) dan widget masukan Password yang tidak memaksa Anda untuk memberikan nilai sandi setiap kali Anda mengedit formulir.
Hal ini tergantung pada zope.app.form di Zope versi dan zope.formlib dalam yang baru.
z2
Sub-paket ini menggabungkan skema terkait dan Zope 2 fungsi. Dalam Zope versi baru, itu tergantung pada five.formlib.
untuk m
Modul ini mendefinisikan mengedit default (SchemaConfiguredEditForm) dan display (SchemaConfiguredDisplayForm) formulir untuk dm.zope.schema.schema.SchemaConfigured untuk digunakan dalam Zope 2.
Hal ini tergantung pada zope.formlib.
pembina
Modul ini berisi kelas SchemaConfiguredAddForm bentuk add dan add_form_factory pabrik untuk generasi bentuk add (disebut "konstruktor" oleh Zope 2) untuk kelas berbasis dm.zope.schema.schema.SchemaConfigured. Bentuk add dihasilkan biasanya digunakan sebagai bagian dari konstruktor parameter untuk RegisterClass.
add_form_factory memiliki parameter:
& Nbsp; deskripsi nama standar
& Nbsp; class_ kelas untuk menghasilkan bentuk untuk
& Nbsp; judul Buat contoh class_ judul ditunjukkan dalam bentuk
& Nbsp; kelas deskripsi _.__ doc__ dokumentasi yang ditunjukkan dalam bentuk
& Nbsp; form_class bentuk SchemaConfiguredAddForm kelas yang akan digunakan
add_form_factory menghasilkan bentuk zope.formlib dengan bidang ditentukan oleh skema yang diterapkan dari dm.zope.schema.schema.SchemaConfigured kelas class_.
Modul ini mirip dengan dm.zope.generate.constructor. Namun, ia bekerja untuk kelas berdasarkan SchemaConfigured sedangkan yang kedua mendukung kelas berdasarkan PropertyManager.
contoh
Memberikan tampilan halaman template form_template dapat melihat dan mengedit Zope 2 skema dikonfigurasi objek konten dalam antarmuka ZMI standar.
Contoh
Setup: Ini mendefinisikan dua skema S1 dan S2, antarmuka I dan kelas C yang berasal dari SchemaConfigured menerapkan skema dan antarmuka.
>>> Dari zope.interface impor Interface, alat, providedBy
>>> Dari zope.schema impor Int
>>>
>>> Dari dm.zope.schema.schema impor SchemaConfigured
>>> Dari dm.zope.schema.verify impor verify_schema
>>>
>>> Kelas S1 (Interface): i1 = Int (default = 0)
...
>>> Kelas S2 (Interface): i2 = Int (default = 1)
...
>>> Kelas I (Interface):
... Def metode (): lulus
...
>>> Kelas C (SchemaConfigured):
... Alat (S1, S2, I)
... Def metode (self): lulus
...
Contoh C memiliki atribut yang sesuai dengan bidang skema. Jika tidak ada argumen yang diberikan untuk konstruktor, mereka mendapatkan default field sebagai nilai. Disediakan (kata kunci!) Argumen menimpa default.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> C = C (i1 = 5)
>>> C.i1
5
Konstruktor menolak argumen kata kunci tidak didefinisikan dalam skema untuk cepat mendeteksi kesalahan ejaan. Namun, hal ini menghambat penggunaan super dalam hirarki kelas untuk metode __init__. Mungkin, versi masa depan akan menyediakan sarana untuk mengontrol cek ini.
>>> C = C (x = 5)
Traceback (paling panggilan terakhir terakhir):
& Nbsp; ...
TypeError: Argumen non skema kata kunci: x
Jika nilai bidang yang sesuai, contoh C menyediakan skema (seperti diverifikasi oleh verify_schema). Jika tidak, verify_schema akan meningkatkan pengecualian. Contoh ini menunjukkan juga penggunaan dasar dari verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = None
>>> Verify_schema (S1, c)
Traceback (paling panggilan terakhir terakhir):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Kita bisa membuat mengedit (atau layar) bentuk untuk objek kita. Kolom formulir secara otomatis dibuat untuk bidang skema kami. Kelas Bentuk memiliki metode customize_fields Anda dapat mengganti untuk memberikan bidang dan / atau widget kustom.
Fungsi serupa yang tersedia untuk Zope 2 dalam sub-paket z2.
>>> Dari zope.publisher.browser impor TestRequest
>>> Dari dm.zope.schema.form impor SchemaConfiguredEditForm
>>>
>>> Bentuk = SchemaConfiguredEditForm (c, TestRequest ())
>>> Daftar ([f .__ name__ untuk f di form.form_fields])
['I1', 'i2']

Apa yang baru dalam rilis ini:

  • bentuk dukungan
  • Zope 2 support konstruktor

Persyaratan :

  • Python

Perangkat lunak lain dari pengembang Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Komentar untuk dm.zope.schema

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!