我目前正在使用Sphinx(第一次使用)为我的模块建立文档,我有一些类,其中有一些类变量是以默认值初始化的。
例如
class ConfigSettings(object):
"""Class that manages a config file
"""
#: Contains the path to the config file (root dir of module)
path = Path(util.getAbsCurrentPath('configfile.ini'))
当构建文档时,变量被评估并打印出文件的完整路径,这是我不希望看到的(出于安全考虑).有没有一种方法可以不显示变量值,而只显示Sphinx的注释?
我尝试了各种组合 .. autoclass:
和 .. autodata:
但到目前为止没有一个成功的......
这是我目前的构建文件。
Config module
----------------------------
.. automodule:: lib.config
:members:
:undoc-members:
:show-inheritance:
谢谢你
卢卡
Sphinx指令最简单的方法是使用注释或排除成员。
除非有严格的需求,阻止变量在模块导入时自初始化,否则因为你想呈现的方式而改变你的Python源代码是不正确的。如果你的Python源代码是正确的,那么调整你的 .rst
文件来定制演示。
your_module.py
from pathlib import Path
class YourClass:
#: This comment is documented with the member.
path = Path('your_path', 'configfile.ini')
your_module.rst (显示2种可能的方式)。
your_module
===========
.. automodule:: your_module
:exclude-members: YourClass
.. autoclass:: YourClass
:exclude-members: path
In this example you use an annotation while excluding from autoclass.
.. autoattribute:: path
:annotation: ='write your path here'
.. autoclass:: YourClass
:noindex:
:exclude-members: path
In this example you simply exclude from autoclass.
结果。
你可以通过在导入时不评估路径来解决这个问题。 我认为最好的方法是在导入路径时使用 族类属性.
例如:
class ConfigSettings(object):
@classproperty
def path(cls):
return Path(util.getAbsCurrentPath('configfile.ini'))