Форум сайта python.su
Решил, что этот вопрос стоит запостить не в zope - раздел, а именно сюда, так как он к вебу и, собственно к Zope 3 в принципе прямого отношения не имеет.
Собственно, вопрос в следующем:
Возможно ли, и если возможно, то как подходить к написанию приложений с компонентной архитектурой на базе интерфейсов (zope.interface.Interface), без старта application server, а только использовать такие вещи, как:
- интерфейсы,
- адаптеры,
- реестры утилит, адаптеров, …
- ZCML. ?
Заранее спасибо за ответ.
Отредактировано (Сен. 22, 2009 18:15:09)
Офлайн
zope.interface постоянно использую без zope. Это - интерфейссы и адаптеры. Остальное было не нужно
Офлайн
А как насчет реестра адаптеров, утилит и ZCML?
Офлайн
реестр нужен был примитивный - сделал через хук в zope.interface.
Утилиты - как-то обхожусь. В zope оно удобно, но я использую немного другие средства для того же.
ZCML - чур меня, чур. Кстати, а кому он без zope нужен?
Офлайн
Андрей СветловНу, мне zcml все-таки очень удобное средство для конфигурации, чтобы не делать в коде каждый раз что-то типа,
ZCML - чур меня, чур. Кстати, а кому он без zope нужен?
registry.register..
<adapter
for = "IFoo"
factory = "FooToBar"
...
</adapter>
Офлайн
zope.interface использую давно.
Буквально пару недель назад начал пользовать zope.component, zope.configuration и zope.schema, пока впечатления только положительные. Стремно, что многие другие любопытные пакеты тянут за сабой огромные зависимости, вплоть до ZODB3.
> можно ли обойтись одним пакетом zope.configuration
Нет. Но зависимости у него минимальные и в основном полезные. Т.е. меня они совершенно не смущают.
p.s. Пользуясь случаем хочу выразить благодарность разработчикам компонентной модели и других полезняшек Zope3.
..bw
Офлайн
Значит так. Покопался в коде и таки кое-чему научился =).
Подключить ZCML довольно-таки просто:
from zope.configuration.xmlconfig import xmlconfig
from cStringIO import StringIO
from zope.component.tests import clearZCML,
clearZCML()
xmlconfig(StringIO(open('configure.zcml').read()))
bwПрисоединяюсь =)
Пользуясь случаем хочу выразить благодарность разработчикам компонентной модели и других полезняшек Zope3.
Отредактировано (Сен. 24, 2009 13:41:44)
Офлайн
regallЧего-то по выделенным местам не похоже, что это прямой путь :)
from zope.component.tests import clearZCML … Смотрим base.adapters._adapters
regallотлично, поддерживаю ;)
Возникла у меня идейка написать по поводу моих скитаний статейку, если решусь - кину ссылку
Офлайн
> Подключить ZCML довольно-таки просто:
Ты хотел сказать…
from zope.configuration import xmlconfig
xmlconfig.file('configure.zcml')
Офлайн
Сейчас такое полезное наблюдение сделал, если дернуть за zope.security вытягивается небольшой набор очень интересных пакетов, которые, пожалуй, можно поголовно использовать в средних и крупных проектах:
- zope.component
- zope.configuration
- zope.copy
- zope.event
- zope.exceptions
- zope.i18nmessageid
- zope.interface
- zope.location
- zope.proxy
- zope.schema
- zope.security
Общий объем ~3.5 метра (с компиляцией модулей в pyc). Пока уверенности нет, но если они заработают в архиве, то размер будет заметно меньше. Глянул сейчас исходники zope.configuration, все .zcml в архивах работать не будут :-(, т.е. они не будут читаться из архивных яиц. Это объясняется тем, что доступ к конф. файлам осуществляется через системные функции, а не (религиозно правильно :-) через pkg_resources. Собственно я сам начал лишь недавно пользоваться этим модулем, а зоповцам, как я понимаю, еще предстоит его внедрить в zope.configuration и другой код, работающий с “пакетными” ресурсами.
..bw
Отредактировано (Сен. 24, 2009 21:13:47)
Офлайн