当前位置: 首页 > 知识库问答 >
问题:

Python设置。带三个单引号的py entry_points语法

许兴文
2023-03-14

我在看CKAN的扩展,它们的入口点如下所示:

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的现有扩展。上面的第三个条目用于CLI命令。我正在尝试更新它,使其成为CKAN的最新版本,不再使用粘贴器,而是使用Click。

我试图告诉如何更新[paste.paster_command],但是我找不到使用这种entry_points语法的任何其他引用来确定如何更新它。对于我能找到的setup.py语法的任何引用,它看起来像下面(在本例中,来自点击的留档):

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

setuptools文档仅参考与设置相关的入口点。cfg。因此,他们文档中的入口点示例毫无帮助。因此,根据我能找到的,我必须假设上面的三引号语法只是常规的Python字符串格式,方括号是“额外依赖项”。符合事实的如果没有,它们是什么?如能参考此“备用”字符串语法,将不胜感激。

共有1个答案

司空瑾瑜
2023-03-14

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

语法是. ini样式的:https://setuptools.readthedocs.io/en/latest/pkg_resources.html#creating-and-parsing如果数据是字符串或行序列,则首先将其拆分为. ini样式的部分(使用split_sections()实用程序函数),部分名称用作组名称。

使用IClick接口实现的Click命令不再需要在entry_点中输入,因为它们是通过新的ckan命令执行的,而不是通过需要您通过entry_点告诉paster的paster命令。

如果您只想支持CKAN 2.9,您可以删除整个条目。

 类似资料:
  • 问题内容: Python中的单引号与双引号 问题答案: 我喜欢在用于插值或自然语言消息的字符串周围使用双引号,对于像符号一样小的字符串使用单引号,但是如果字符串包含引号或者我忘记了,则会违反规则。我对文档字符串使用三重双引号,对正则表达式使用原始字符串文字,即使不需要它们也是如此。 例如:

  • 我使用此模式在解析器中匹配单引号字符串: 但是我需要正则表达式,它可以找到带有 postgres 的单引号字符串,例如 bied of single qoutes(加倍单个 qoutes)。需要匹配这样的东西: 我想为以单引号开头和结尾的字符串找到最短的匹配项,因此上面的字符串意味着 3 个子字符串:

  • 问题内容: 我注意到单引号导致的功能失败: 我正在解析以下内容:从文本文件转换为Python中的列表,并且也想接受。便于自动将其放入列表。 我如何才能接受单引号,或在不破坏输入的情况下自动将双引号替换为单引号?谢谢。 问题答案: 使用适合该工作的工具,您不是在解析JSON,而是在解析Python,因此请改用: JSON文件总是使用字符串双引号,使用UTF-16 进制转义语法,具有与键始终字符串键值

  • 我有以下字符串。它是度、分、秒格式的LatLongs,可以按如下方式输入:

  • 问题内容: 我有此命令可以执行我想要的操作,但无法在我的.bashrc中使用别名(请注意,它同时使用单引号和双引号): 我试过了: 还有一些其他没有运气的常识组合。.我知道bash带有引号是非常挑剔的。.因此,为它加上别名的正确方法是什么?为什么?谢谢 问题答案: 您只需要正确地转义即可。

  • mysql语法,设置默认值时要不要加引号? 例如下面 DEFAULT '3600' 和 DEFAULT 3600 哪个是对的?