某些方法可以禁用ivar自动交叉引用属性名称

时间:2016-12-14 14:55:40

标签: python python-sphinx sphinx-napoleon

当使用带有谷歌文档字符串的拿破仑(我还没有测试过numpy,但我怀疑类似的问题)napoleon_use_ivar选项设置为True时,它会创建指向名称的链接实例变量。这些名称显然非常常见(例如" name"),并将它们链接到一些随机定义没有帮助 - 有没有办法禁用它?

给出以下文档字符串:

"""
Attributes:
  name (str): Friendly name
"""

它将尝试在html输出中交叉引用name。鉴于目标含糊不清,它抱怨这个:

/home/nbastin/geni-lib/geni/rspec/pgad.py:docstring of geni.rspec.pgad.AdInterface:None: WARNING: more than one target found for cross-reference u'name': geni.rspec.igext.AddressPool.name, geni.rspec.vtsmanifest.GREPort.name, geni.rspec.vtsmanifest.InternalPort.name, geni.rspec.pg.
Node.name, geni.rspec.vtsmanifest.PGLocalPort.name, geni.rspec.pg.Interface.name, geni.rspec.vtsmanifest.GenericPort.name, geni.rspec.vtsmanifest.ManifestContainer.name, geni.urn.GENI.name, geni.rspec.vtsmanifest.InternalContainerPort.name

但是,它仍会在HTML输出中创建一个链接 - 如果单击name属性,它会愉快地将您发送到与当前属性无关的随机符号。有没有办法禁用这种行为?

如果napoleon_use_ivar设置为False,则不会发生这种情况,但属性输出完全不紧凑且难以阅读。

这是特定于拿破仑 - 如果你用ivar手动指定属性,它也会以你无法控制的方式交叉引用它们:

:ivar name: Friendly name
:vartype name: str

仍会获得name的链接。

0 个答案:

没有答案