как получить конфигурацию из buildout в моих продуктах plone? - PullRequest
9 голосов
/ 26 мая 2011

Как мне включить информацию о конфигурации из Buildout в мои продукты Plone?

Один из продуктов plone, над которыми я работаю, читает и записывает информацию в файловую систему и из нее.В настоящее время он делает это внутри пространства имен egg (например, внутри каталога plone / product /), но мне это не совсем подходит.

Идея состоит в том, чтобы настроить место для хранения этой информации по настраиваемому пути, как это делают iw.fss и iw.recipe.fss.

Например, сохранить эту информацию в $ {Buildout: каталог} /var/mydata.

1 Ответ

17 голосов
/ 27 мая 2011

Вы можете добавить разделы конфигурации в свой файл zope.conf через дополнительный раздел zope-conf-раздела части plone.recipe.zope2instance:

[instance]
recipe = plone.recipe.zope2instance
...
zope-conf-additional =
   <product-config foobar>
       spam eggs
   </product-config>

Любой названный раздел product-config затем становится доступным в виде простого словаря для любого продукта python, который хочет его найти; В приведенном выше примере создается запись 'foobar', которая является диктовкой с отображением 'spam': 'eggs'. Вот как вы можете получить доступ к этому из своего кода:

from App.config import getConfiguration
config = getConfiguration()
configuration = config.product_config.get('foobar', dict())
spamvalue = configuration.get('spam')
...