如何验证Python类文档字符串中列出的方法与属性真实存在?
需求:验证Python类文档字符串中列出的属性和方法是否真实存在
我需要一款工具,能解析Python类的文档字符串,验证其中列出的属性、方法确实存在于类中,用于CI/CD流水线,确保新代码的文档编写准确。PEP 257建议在类的文档字符串中列出方法,但这一做法存在争议。
示例代码
以下是带有文档字符串错误的示例类,用于展示我想要捕获的问题:
"""An example module to ask a question on SO.""" class ExampleClass: """ An example class. Attrs: ------------ typo_ : str mistake I made Methods -------------- my_method() method which doesn't exist """ typo: str def my_methd(self) -> None: """Typo in the name.""" return
注:文档字符串中的属性和方法存在拼写错误——实际属性是typo但文档里写了typo_,实际方法是my_methd但文档里写了my_method。
已测试但无效的工具
我已经测试过以下工具,但它们都没能检测出上述示例中的问题:
- Interrogate (1.5.0)
- pydocstyle(6.3.0)
- pydoctest (0.1.22)
- ruff (0.2.2)
- darglint2 (1.8.2)
- docsig (0.44.2)
- pydoclint (0.4.1)
部分有效的工具
其中flake8-docstring-complete (1.3.0)能捕获到typo属性未在文档字符串中描述的问题,但无法检查类方法的文档是否匹配。
提问
请问有什么方法可以实现我的需求?
内容的提问来源于stack exchange,提问作者John Otter
相关产品推荐
相关产品推荐

