2007-11-29

Zope3 продукты ng.fuzzytraverser ng.schema

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 README.txt 2007-11-29 22:37  

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. ...

Эпицентр Zope3 Учат тут Нейросети Репозиторий Статистика Редакторам Проекты
Подписаться на RSS Feed Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site noooxml