在Plone 4.3中开发grok风格的Dexterity附加组件

时间:2012-10-30 12:50:29

标签: plone setuptools buildout dexterity grok

根据:

要在 Plone 4.3 中使用 grok-style 声明,必须通过带有 setuptools 附加要求的buildout安装 Dexterity :grok和relations(指的是plone.app.dexterity&setup;中的extras_require定义)。但是,想要代表最终用户执行此配置的附加开发人员应该做些什么呢?

使用我的collective.project插件,我从plone.app.dexterity复制了extras_require

setup(
    author='Alex Clark',
    author_email='aclark@aclark.net',
    description='Demo app: project management with dexterity content types.',
    entry_points={
        'z3c.autoinclude.plugin': 'target = plone',
    },
    extras_require = {
        'test': [
            'plone.app.testing',
            'unittest2'
            ],
        'grok': [
            'five.grok',
            'plone.directives.dexterity',
            'plone.directives.form >=1.1dev',
            ],
        'relations': [
            'plone.app.relationfield',
            'plone.app.intid',
            'z3c.relationfield',
            ]
    },

这允许最终用户只需添加到一个鸡蛋列表即可安装collective.project。

[plone]
recipe = plone.recipe.zope2instance
eggs =
  Pillow
  Plone
  collective.project

这是一种合理的方法吗?

1 个答案:

答案 0 :(得分:2)

不,不是。不要从plone.app.dexterity复制extras_require,它没有帮助(虽然可能包括extras_require,因为install_requires会起作用,但这会破坏extras_require的目的)

但是,您可以使用与Buildout用于在 setup.py 中指定extras_require的类似语法:

install_requires=[
    'setuptools',
    'plone.app.dexterity[grok]',
],