忽略Sphinx autodoc对rtype值的警告



现在autodoc似乎对任何不只是对象类型(类实例,int,列表,字典等)的rtype值抛出警告。返回值如"list of tuple "会抛出警告。是否有任何方法可以忽略这些警告(无论是单独的还是整体的)?我不想忽略整个文件,只忽略那些特定的警告。

这个警告的一个例子可能是这样的:

/path/to/code.py:docstring of path.to.code.method:: WARNING: py:class reference target not found: list of tuples

在某些情况下,我看到错误的对象,我知道是合法的类导入到代码中,如:

/path/to/code.py:docstring of path.to.code.method:: WARNING: py:class reference target not found: Response

在这个例子中,"Response"是rest_framework的一部分。响应,所以它是一个非常常用的类对象。

每当我执行新的make文档时,这些警告就会发生。目前还不清楚它是否能在另一个环境中复制。

这里的解决方案是,所讨论的类不在toctree中,因此不是文档的一部分。基本上,autodocs希望能够链接到类型变量中提到的类。如果它不能做到这一点,它会抛出一个错误说&;我不知道什么&;响应&;Is(或您返回的任何类)。不是错误,因为它假设你是对的,而是一个无法找到它的警告。这里的解决方法是创建一个索引。首先包含类,然后是Response。RST(例如),包括类的相对路径。下面是这个过程的一个例子。它假设Response在rest.py文件中。

error:  /path/to/code.py:docstring of the.code.rest.GetAccount.get:: WARNING: py:class reference target not found: Response

在我的例子中,这需要以下内容:

  1. response添加行项到modules/code/rest.rst
  2. 添加响应。在同一目录
  3. 包含行' ..automodule: code.rest.Response

然后删除并重建文档,应该就可以了。

相关内容

  • 没有找到相关文章

最新更新