gpt4 book ai didi

python - babel 的 message_extractors 配置在 setup.py : Third parameter in tuple

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:11 24 4
gpt4 key购买 nike

我想开始使用 Babel与我的 Python 项目。根据文档,我有一个 setup.py 包含以下内容:

setup(
...
message_extractors = {'my_project': [('**.py', 'lingua_python', None),
]},
...

一切正常。现在我想知道第三个参数(设置为 None)是什么意思以及我可以传入什么(只是为了了解它)。我看着 Babel documentation但找不到任何东西,但我在 Mako documentation 上看到了这个对于巴别塔:

# Extraction from Python source files

[python: myproj/**.py]

# Extraction from Mako templates

[mako: myproj/templates/**.html]
input_encoding = utf-8

我想知道:这个 input_encoding 选项似乎可以传递给那里。因为我在所有 Python、我的模板等中都使用 Unicode 和 UTF-8。我想这可能是一个有效的指定选项(也许这是一个隐含的假设,我不知道)。

所以现在我正在搜索记录此行为的内容,但即使是我发现的 Babel 文档部分也没有说明第三个参数是什么。

请分享一些详细解释这一点的有用链接来启发我。提前谢谢你。

更新:我发现最后一个参数似乎是选项的 dict,可能传递给扩展(例如 mako ).当我将最后一个参数从 None 设置为 {'input_encoding': 'utf-8'} 时,mako.exceptions.CompileException 提示 编码“ascii”的 Unicode 解码操作失败消失了。因此,虽然这似乎是答案,但我仍在寻找有关此的文档。

最佳答案

第三个参数是一个选项映射。

这可以包含将传递给提取器方法的任意关键字参数。这完全取决于提取器方法将接受哪些关键字参数。

提取器在调用时将这些选项作为最后一个参数传递,通常在方法签名中称为 optionsMako Babel plugin例如支持encodinginput_encoding。前者似乎是后者参数的遗留拼写,仅在未指定 input_encoding 时使用。

因此,每个 Babel 插件都需要单独记录支持的选项,Babel 项目不会设置限制,也不会知道每个插件支持的细节。

Mako 提取器的细节记录在 Common Framework Integrations section 中:

The Mako extractor supports an optional input_encoding parameter specifying the encoding of the templates (identical to Template/TemplateLookup‘s input_encoding parameter).

关于python - babel 的 message_extractors 配置在 setup.py : Third parameter in tuple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15257933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com