如何用sphinx-autodoc2隐藏dataclass类的重复参数列表?
解决sphinx-autodoc2生成dataclass文档时参数重复的问题
针对你遇到的dataclass参数在文档中重复显示的问题,有几种实用的解决办法:
方法一:移除docstring中的:param注释,直接用字段注释
既然@dataclass已经通过类属性定义了参数,没必要在docstring里重复写:param说明。可以把docstring里的参数部分删掉,转而在属性后面加注释,让sphinx-autodoc2直接从字段提取文档:
@dataclass class myclass: """Some class""" first_param: str # some description second_param: int # some description def __post_init__(self): etc...
这样生成的文档会把字段注释作为参数说明,不会出现重复条目。
方法二:全局配置隐藏类属性列表
如果不想修改代码,可在Sphinx的conf.py里添加配置,让autodoc2不单独显示类的属性字段,只保留docstring中的Parameters部分:
autodoc2_hide_class_attributes = True
开启这个配置后,所有dataclass的属性都不会被单独列出,只在Parameters区域展示一次。
方法三:用元指令单独隐藏指定属性
如果只想隐藏部分重复的属性,或者不想修改全局配置,可以在类属性定义后添加:meta hide-value:指令,告诉autodoc2不要单独显示这些属性:
@dataclass class myclass: """Some class :param first_param: some description :param second_param: some description """ first_param: str second_param: int :meta hide-value: def __post_init__(self): etc...
这个指令会让当前类的所有属性不被单独列出,只保留Parameters里的说明。
内容的提问来源于stack exchange,提问作者Gabriel
相关产品推荐
相关产品推荐

