Python setup.py entry_points 带三重单引号的语法

Python setup.py entry_points syntax with triple single quotes

我正在查看 CKAN 的扩展,它们的 entry_points 条目如下所示:

setup(
    #...,
    entry_points='''
        [ckan.plugins]
        template=ckanext.template.plugin:TemplatePlugin

        [babel.extractors]
        ckan = ckan.lib.extract:extract_ckan

        [paste.paster_command]
        template=ckanext.template.commands.custom_commands:CustomCommand

    ''',
    #...,
)

我正在尝试升级使用 CKAN 的 CLI 的现有扩展。上面的第 3 个条目用于 CLI 命令。我正在尝试将其更新为不再使用 Paster 而是使用 Click 的 CKAN 最新版本。

我试图告诉您如何更新 [paste.paster_command],但我找不到任何其他使用此 entry_points 语法的参考资料来确定如何更新它。对于我能找到的任何对 setup.py 语法的引用,它如下所示(在本例中来自 Click 的文档):

setup(
    #...,
    entry_points={
        'console_scripts': [
            'yourscript = yourpackage.scripts.yourscript:cli',
        ],
    },
)

setuptools 文档仅引用了 entry_points 与 setup.cfg 相关的内容。因此,他们文档中 entry_points 的示例没有帮助。因此,鉴于我能找到的,我必须假设上面的三引号语法只是常规的 Python 字符串格式,方括号是“额外的依赖项”。真的?如果不是,它们是什么?任何对此“替代”字符串语法的引用将不胜感激。

根据 Zharktas 在 CKAN 的 GitHub 讨论板上的回复:

The syntax is in .ini-style: https://setuptools.readthedocs.io/en/latest/pkg_resources.html#creating-and-parsing "If data is a string or sequence of lines, it is first split into .ini-style sections (using the split_sections() utility function) and the section names are used as group names."

Click commands implemented with IClick interface do not require entry in entry_points anymore as they are executed through the new ckan command instead of paster which required that you tell paster about them via entry_points.

You can just remove whole entry if you want to support only CKAN 2.9.