python - 取消设置或关闭当前模块的某些属性

标签 python python-sphinx restructuredtext

我正在编写一些文档,其中列出了鸭子类型对象必须具有的实现特定接口(interface)的属性。我尝试做这样的事情:

List of required attributes:

.. py:attribute:: x

   The x-coordinate, as a :py:class:`float`.

.. py:attribute:: y

   The y-coordinate, as a :py:class:`float`.

我期望获得带有描述的属性列表,但文档最终的名称不是简单的名称,而是包含先前的 .. py:currentmodule 指令。因此,我最终得到的是 my.current.module.x,而不是 x

有没有办法执行以下任一操作:

  1. 关闭.. py:currentmodule::。我尝试将其设置为空字符串以及 .,但这只是生成了一个警告并继续使用先前的值。
  2. 将生成的属性名称配置为不将模块包含在名称中(最好也包含在链接中)。

我更喜欢选项#2,因为我实际上在文档中具有指向当前模块中对象的链接,因此最好在不实际更改当前模块的情况下明确这些属性不在模块中。

目前,我的解决方法是临时设置 .. py:currentmodule::duck,并在该段之后恢复。

我还尝试将属性文档编写为 .. py:attribute::~x.. py:attribute::!x .. py:attribute::.x。所有情况都在名称中包含特殊字符,前两种情况无法生成属性的 anchor 。

最佳答案

您可以set currentmodule to None在这些对象之前:

.. currentmodule:: None

而且,如果稍后您确实希望为当前模块添加其他对象的前缀,您也可以重新设置该模块:

.. currentmodule:: your.module

关于python - 取消设置或关闭当前模块的某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50221980/

相关文章:

python - 如何使用 FFMPEG 选择文件的保存位置

python - python 对象的 bool 上下文

python-sphinx - 将 Sphinx TOC 分成带有副标题的小节

django - ImportError:没有以我在 Readthedocs 上的代码命名的模块

git - autodoc 指令在本地有效,但在 readthedocs 上无效

python-sphinx - 如何在不创建任意标签的情况下在sphinx restructuredtext中建立到标题的内部链接?

python - 欧拉计划 - 问题 160

python - 如何将 kwargs 从 save 传递到 post_save 信号

python - reStructuredText 中的宏或等效项?

python - 如何使用 reStructuredText/Sphinx 插入空白行