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, OBJ, контекст = нет, check_declaration = True), который проверяет, что OBJ удовлетворяет часть схемы интерфейса IFACE. Поля схемы нужно, чтобы привязаны к контексту, прежде чем они могут быть проверены. Контекст определяет этот контекст и по умолчанию OBJ. check_declaration проверяет, что OBJ заявляет privide Iface.
схема
Основное содержание является примесь класс SchemaConfigured. Он поддерживает конфигурацию в соответствии с частью схемы интерфейсов, реализуемых производного класса SchemaConfigured. Если вы хотите управлять, из которых взаимодействует схема получается, вы можете использовать атрибут класса SC_SCHEMAS: его значение не должно быть None (вывести схему автоматически из реализованных интерфейсов), один интерфейс или кортеж интерфейсов. Принимая явный контроль над интерфейсов, используемых для определения схемы особенно важно для 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).
менеджер по недвижимости
Этот модуль реализует схемы на основе OFS.PropertyManager.PropertyManager подкласс. В _Недвижимости атрибут описания свойств не поддерживается в классе или его экземпляров, но получены из предусмотренных (соответственно реализовано) схем. На данный момент, свойства не может быть продлен на основании уровня экземпляра (кроме, предоставляя другой схемы).
zope.schema использует Unicode для представления текста. PropertyManager в принципе может свойствами поддержка Unicode. Тем не менее, из-за ошибок / слабости, страница управления собственностью обрабатывает их корректно только при management_page_charset не определен или имеет значение UTF-8 (обратите внимание на заглавную правописания!). Мы используем Юникода свойства по умолчанию, если management_page_charset.upper () не дает значение, отличное от UTF-8. Мы также предоставляем подмешать класс WorkaroundSpelling_management_page_charset работать вокруг глупого настоянию Zope на верхнем регистре правописания для management_page_charset.
На данный момент, поддерживаются следующие типы полей: текст, TextLine, Б, BytesLine`, Bool, Int, Float и список с типом значения в 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.
Примеры
Настройка: Это определяет две схемы S1 и S2, интерфейс ввода и класс С, вытекающие из SchemaConfigured реализации схем и интерфейс.
>>> От zope.interface интерфейс импорта, орудий, providedBy
>>> От импорта zope.schema Int
>>>
>>> От импорта dm.zope.schema.schema SchemaConfigured
>>> От импорта verify_schema dm.zope.schema.verify
>>>
>>> Класс S1 (интерфейс): i1 = Int (по умолчанию = 0)
...
>>> Класс S2 (интерфейс): i2 = Int (по умолчанию = 1)
...
>>> Класс I (интерфейс):
... Def () метод: передача
...
>>> Класса С (SchemaConfigured):
... Орудия (S1, S2, I)
... Def метод (само): проход
...
Примеры С имеют атрибуты, соответствующие поля схемы. Если аргументы не даны для конструктора, они получают полей по умолчанию в качестве значения. Предоставляемые (ключевое слово!) Аргументы переопределить значения по умолчанию.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> C = C (I1 = 5)
>>> C.i1
5
Конструктор отвергает аргументы ключевых слов, не определенные в схеме для того, чтобы быстро выявить орфографические ошибки. Тем не менее, это затрудняет использование супер в иерархии классов для метода __init__. Может быть, будущие версии будут предоставлять средства для управления этой проверки.
>>> С = С (х = 5)
Traceback (самый последний вызов последнего):
& NBSP; ...
Ошибка типа: не аргумент ключевое слово схемы: X
Если значения полей являются целесообразными, случаи C обеспечивают схемы (а проверяется verify_schema). В противном случае, verify_schema вызовет исключение. Этот пример демонстрирует также элементарное использование verify_schema.
>>> Verify_schema (S1, C)
Не >>> c.i1 = Нет
>>> Verify_schema (S1, C)
Traceback (самый последний вызов последнего):
& NBSP; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Мы можем создать редактировать (или дисплея) форму для наших объектов. Поля формы создаются автоматически для наших полей схемы. Классы форм есть метод customize_fields можно переопределить, чтобы обеспечить пользовательских полей и / или виджеты.
Аналогичная функциональность доступна для Zope 2 в z2 подпакет.
>>> От импорта zope.publisher.browser TestRequest
>>> От импорта dm.zope.schema.form SchemaConfiguredEditForm
>>>
>>> Форма = SchemaConfiguredEditForm (с, TestRequest ())
>>> Лист ([F .__ name__ для F в form.form_fields])
['i1', 'i2']

Что нового В этом выпуске:

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

Требования

  • Python

Другие программы разработчика Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

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

Комментарии не найдены
добавить комментарий
Включите картинки!