Python-Sphinx检查域链接
如果Python-Sphinx检查域链接,python,python-sphinx,Python,Python Sphinx,如果:func:`my\u function\u name`未指向有效链接,如何报告错误?理想情况下,我想要一个工具,可以检查只与代码相关的域,而不检查其他内容,并将这些断开的链接作为错误返回,以便用于CI目的 理想/理想的工具 运行时,它将遍历Python文件,并在存在链接问题的地方打印行号/列号。e、 g 链接检查器my_module.py my_module.py|4|6|:func:`get_foo`|Missing link my_module.py|4|8|:attr:`some.t
:func:`my\u function\u name`
未指向有效链接,如何报告错误?理想情况下,我想要一个工具,可以检查只与代码相关的域,而不检查其他内容,并将这些断开的链接作为错误返回,以便用于CI目的
理想/理想的工具
运行时,它将遍历Python文件,并在存在链接问题的地方打印行号/列号。e、 g
链接检查器my_module.py
my_module.py|4|6|:func:`get_foo`|Missing link
my_module.py|4|8|:attr:`some.thing`|More than one target
这种特定的工具可能不存在,但这是绝对理想的。但是如果该工具只是报告来自.rst
文件的缺少链接,那就足够了,因为我的大多数docstring都变成了API文档<代码>吹毛求疵和链接检查
几乎可以工作,但不能
当前使用挑剔的问题
有一个-n
或挑剔的选项可以满足我的需求。问题是,它不适合CI,因为它捕获了太多的误报
例如:
例如,以拿破仑的“谷歌风格”文档字符串为例:
def foo(bar=8):
“做点什么。
Args:
条形图(int,可选):这里有一些信息。
"""
通过
挑剔的回报
WARNING: py:class reference target not found: int
WARNING: py:class reference target not found: optional
int
或optional
都不能解释为py:class
。但它还是把它当作一个整体
使用链接检查时出现的当前问题
建议使用linkcheck。就我所见,它有着与挑剔同样的问题。我希望使用类似于sphinx build-b linkcheck foo bar-W的东西将警告更改为错误,以便CI工具可以使用它。但是因为它报告了如此多的误报,它会向用户发送不必要的信息
总结
如果只检查Sphinx域,例如py:class
,py:func
等,那么linkcheck
就可以很好地工作,并且不会在所有这些误报上出错。也许有个办法可以解决这个问题?我在文档或源代码中没有看到任何有用的东西。任何帮助都将不胜感激。您是否尝试过?“例如,以这个napoleon”谷歌风格的“docstring”为例,我不知道您为什么要提到napoleon扩展。AFAIK只增加了谷歌风格和numpy支持。它与斯芬克斯域没有任何关系。不过我可能错过了什么。你能解释一下吗?也许会有帮助?