ng.lib
2007-11-29 22:37Небольшая общеупотребительная библиотека почти ни на что не годных функций и классов для Zope.
Продукт
| Название: | |
| ng.lib | |
| Выложен на PyPI | |
| Репозиторий |
Краткое описание пакета
Пакет разработан для того, что бы содержать всякие мелкие модули для Zope, которые поодиночке поставлять неактуально.
Описание модулей
ng.lib.interface
Модуль предоставляет мелкие приблуды для работы с интерфейсами в Zope. Модуль предоставляет функции:
- implements
- При инициализации получает список интерфейсо, которые должен предоставлять класс, в контексте которого она вызвана. В отличие от оригинальной функции, дополнительно, для каждого имени интерфейса, создает в классе аргумент типа FieldProperty.
ng.lib.editannotationnotify
Модуль предоставляет mix-in для формы edit, который отправляет сообщение о модификации объекта, даже если модификация проводилась через адаптер. Пример использования:
<editform schema="..interfaces.IDictAnnotation" for="..interfaces.IDictAnnotationAble" label="Dictionary" class="ng.lib.editannotationnotify.EditAnnotationNotify" name="dictannotation.html" permission="zope.ManageContent" menu="zmi_views" title="Dictionary" />
В этом случае форма используется для отсылки сообщения о модификации, если модифицирована аннотация, которая модифицируется через адаптер.
ng.lib.objectwidget
Модуль предоставляет класс ObjectWidget производный от zope.app.form.browser.ObjectWidget и исправляющий ошибку в нем, делающую невозможной заливку картинки при помощи следующего кода:
from zope.app.form import CustomWidgetFactory
from zope.app.form import ObjectWidget
from zope.app.file.image import Image
LogoWidget = CustomWidgetFactory(
ObjectWidget,
Image
)
С исправленным модулем ошибки не возникает.
ng.lib.dynamicdefault
Модуль предоставляет фабрику полей DynamicDefault, которая позволяет для полей, порожденных от Field, использовать значение по умолчанию, вычисляемое в период выполнения. Пример использования:
from zope.interface import Interface
from zope.schema import Datetime
from ng.lib.dynamicdefault.DynamicDefault
class IA(Interface) :
""" Sample Interface """
created = DynamicDefault(DateTime,title = u'Date/Time',
description = u'Date/Time',
default = datetime.datetime.today,
required = True)
ng.lib.simplevocabulary
Модуль предоставляет пару классов, SimpleVocabulary и SimpleTerm, которые аналогичны одноименным классам из zope.schema.vocabulary, но содержат пару исправлений, допускающих нормальную работу со строками unicode на национальном языке.
ng.lib.registryvocabulary
Модуль предоставляет класс RegistryVocabulary, позволяющий использовать в качестве источника словаря содержимое текстового элемента реестра IRegistry. Строки этого текста становятся элементами словаря. Пример использования:
from zope.interface import Interface
from zope.schema import Set,
from ng.lib.registryvocabulary import RegistryVocabulary
class IA(Interface) :
""" Sample Interface """
things = Set(title=u"A few things",
value_type = Choice(
source = RegistryVocabulary('things',[u'thing1',u'thing2'])
),
required=False)
Конструктору класса RegistryVocabulary в первом атрибуте передается имя элемента реестра, во втором - список строк, который будет использован, если реестр или элемент не найдены.
ng.lib.utilityvocabulary
Модуль предоставляет класс UtilityVocabulary, позволяющий использовать в качестве источника словаря список зарегестрированных утилит с определенным интерфейсом. Пример использования:
from zope.interface import Interface
from zope.schema import Choice
from ng.lib.utilityvocabulary import UtilityVocabulary
class ISomeUtility(Interface) :
""" Interface of some utility """
class IA(Interface) :
""" Sample Interface """
utility = Choice(
title=u'Some utiltity',
source=UtilityVocabulary(ISomeUtility),
required=True)
Конструктору класса UtilityVocabulary в первом атрибуте передается интерфейс утилиты, список имен которых будет использован для заполнения словаря.
ng.lib.indexvocabulary
Модуль предоставляет класс IndexVocabulary, позволяющий использовать в качестве источника словаря содержимое индекса zc.catalog или другой утилиты, предоставляющей интерфейс IIndexValues. Эта возможность может быть использована для создания элементов выбора в формах поиска и аналогичных случаях. Пример использования:
from zope.interface import Interface
from zope.schema import Choice, Set
from ng.lib.indexvocabulary import IndexVocabulary
class IA(Interface) :
""" Sample Interface """
feasibilityes = Set(title=u"Feasibility",
value_type = Choice(
source = IndexVocabulary('feasibility')
))
Конструктору класса IndexVocabulary в первом атрибуте передается имя, под которым зарегистрирована утилита IIndexValues.
Ссылки на эту статью:
Вышел ng.lib 0.0.5 Как использовать в словаре русские строки Наши продукты используются Использование схем интерфейсов.txt Вышел ng.lib-0.0.6Вложено:
content some simple modules and fucntions for use in Zope. The module to provide different small tools to deal with interfaces in Zope. /> In this case editform sent object-moodifyed notify on context when annotation modufied thro adapter. The module provide fields factory DynamicDefault. Thr factory allow use run-time computed default value for fields, inherited from Field. ...



