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.
<Силен> Модули
провери
A спътник на zope.interface.verify за схема част на интерфейси.
Той съдържа функция verify_schema (iface, OBJ, контекст = None, check_declaration = True), който удостоверява, че OBJ отговаря на схема част на интерфейса iface. Схема полета трябва да се свързва с един контекст, преди те да могат да бъдат заверени. контекст определя този контекст и просрочията на OBJ. check_declaration проверки, които OBJ декларира privide iface.
схема
Основното съдържание е Mixin класа SchemaConfigured. Той поддържа конфигурация според схемата част на интерфейсите, изпълнявани от новия клас SchemaConfigured. Ако искате да управлявате, от която има допирни точки се получава схемата, можете да използвате клас атрибут SC_SCHEMAS на: стойността му трябва да е None (извлече схема автоматично от реализираните интерфейси), единен интерфейс или кортеж на интерфейси. Като изрично контрол върху интерфейсите, използвани за определяне на схема е особено важно за Zope 2 схема конфигурирани класове на съдържание (като техния базов клас OFS.SimpleItem.SimpleItem реализира огромен брой интерфейси, чиито полета вие вероятно не искате във вашата схема).
SchemaConfiguredEvolution The Mixin клас осигурява подкрепа за развитие на схема за (ZODB) постоянни обекти. Нейната __setstate__ добавя липсващите качества на обекта, така че можете да добавяте нови полета за вашата схема и все още да намерите всички съответни атрибути на съответните обекти, дори когато тези са били създадени преди удължаването. Забележка: за да SchemaConfiguredEvolution да бъде ефективна, тя трябва да дойде в началото на реда за разрешаване на метод (MRO) (преди persistent.Persistent). Ето защо се е отделен клас и неговата функция не е включена в самия SchemaConfigured (може да има основателни причини да се SchemaConfigured късно в ООР). Като алтернатива на използването на SchemaConfiguredEvolution, можете да използвате стойности, определени на ниво клас за нови полета.
От време на време, функциите schemaitems и schemadict биха могли да бъдат полезни. Те се извлече схема част на интерфейса или интерфейс спецификация и списък на ID, полеви двойки или речник, съответно.
Обектът на поле е заместител на zope.schema.Object. Последното липсва информация поле в грешки валидиране (https://bugs.launchpad.net/zope.schema/+bug/620324), който дава възможност за идентифициране на засегнатите области ненужно трудни. От време на време, не иска да потуши проверката, че валидиран обект декларира изрично да предостави интерфейс. Object има допълнителна check_declaration имот за контрол на това (по подразбиране е True).
propertymanager
Този модул изпълнява схема на базата OFS.PropertyManager.PropertyManager подклас. На _properties атрибут описване на имотите не се поддържа от класа или неговите инстанции, но получени от предоставяните (реализирани съответно) схеми. За момента, свойства не могат да бъдат удължени за случай на базата ниво (различни от извършването на друга схема).
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, Bytes, BytesLine`, булев, Int, флоат и Списък със стойностен тип на 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
Този под-пакет комбинира схема, свързана и 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 интерфейс.
<Силни> Примери
Setup: Той определя две схеми S1 и S2, интерфейс I и клас C, произтичащи от 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)
...
>>> Клас I (Interface):
... Def метод (): пас
...
>>> Клас C (SchemaConfigured):
... сечива (S1, S2, I)
... Def метод (самостоятелно): пас
...
С случаи имат качества, съответстващи на полетата схемата. Ако не се дават аргументи дадени за строителя, те ще получат по подразбиране поле като стойност. Предоставени (ключовата дума!) Аргументи, елиминират настройките по подразбиране.
>>> С = С ()
>>> C.i1
0
>>> C.i2
1
>>> С = С (i1 = 5)
>>> C.i1
5
Конструкторът отхвърля доводите на ключовите думи не са определени в схемата за бързо откриване на правописни грешки. Все пак, това затруднява използването на супер в йерархията клас за метода на __init__. Може би, бъдещите версии ще се осигурят средства за контрол на тази проверка.
>>> C = C (X = 5)
Traceback (последното повикване последната):
& Nbsp; ...
Тип грешка: не е аргумент схема ключова дума: X
Ако стойностите на полетата са подходящи, C случаи предоставят схеми (както е проверено от verify_schema). В противен случай, verify_schema ще повдигне изключение. Този пример показва също елементарния използването на verify_schema.
>>> Verify_schema (S1, в)
>>> C.i1 = None
>>> Verify_schema (S1, в)
Traceback (последното повикване последната):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [("i1", RequiredMissing ())]
Ние можем да създадем редактиране (или езика) форма за нашите обекти. Формулярните полета се създават автоматично за нашите схеми полета. Класовете на формуляра имат метод customize_fields можете да замените да предоставят потребителски полета и / или приспособления.
Подобна функционалност е достъпна за Zope 2 в Z2-пакет.
>>> От zope.publisher.browser внос TestRequest
>>> От dm.zope.schema.form внос SchemaConfiguredEditForm
>>>
>>> Форма = SchemaConfiguredEditForm (C, TestRequest ())
>>> Списък ([г .__ name__ за е в form.form_fields])
['I1', 'i2']

Какво ново в тази версия:

  • форма подкрепа
  • Zope 2 конструктор подкрепа

<силни> Изисквания :

  • Python

Друг софтуер на разработчика Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Коментари към dm.zope.schema

Коментари не е намерена
добавите коментар
Включете на изображения!