3 回答
TA贡献1829条经验 获得超9个赞
我刚刚创建了一个工具来实现这一目标,称为pydoctest
.
它将尝试推断文档字符串中的类型(不仅仅是词法比较)并报告参数数量、参数名称、参数类型、返回类型之间的不匹配,(可选)如果缺少文档字符串等则抛出错误。
它目前支持 google、sphinx 和 numpy 文档字符串格式,但可以很容易地使用其他格式进行扩展。
例子:
def func_type_mismatch(self, a: int) -> int:
"""[summary]
Args:
a (float): [description] <-- float is not int
Returns:
int: [description]
"""
pass
在此函数上运行 pydoctest 会给出以下输出:
Function: <function IncorrectTestClass.func_type_mismatch at 0x7f9a8b52c8c8> FAIL | Argument type differ. Argument 'a' was expected (from signature) to have type '<class 'int'>', but has (in docs) type '<class 'float'>'
TA贡献1815条经验 获得超10个赞
pip install docsig
然后运行docsig .
它就会为你检查这一点
/path/to/project
-----------------------
def function(✖*args) -> ✓List[str]:
"""...
:param None: ✖
:return: ✓
"""
E103: parameters missing
目前还有8个错误
TA贡献1859条经验 获得超6个赞
除了其他答案中提到的pydoctest和docsig之外,至少还有这些工具:
pydoclint与 pydocstyle或ruff一起使用
Pylint 的docparams 扩展
flake8-文档字符串-完整
darglit2(对于大型项目来说速度慢得惊人)
添加回答
举报