作为我的MRE,我有以下文件:
blah.py
'''Blah module'''
import pydantic
class Foo:
'''Foo class'''
class Bar(pydantic.BaseModel):
'''Bar class'''
x: str = pydantic.Field(description='The x.')
@pydantic.validator('x')
def do_nothing(cls, value: str) -> str:
return value
我正试图使用Sphinx为这个模块生成文档。在我的conf.py中,我有
extensions = [
'sphinx.ext.autodoc',
'sphinxcontrib.autodoc_pydantic',
]
我的博客是
Blah
====
.. automodule:: blah.blah
:members:
我已经安装了pydantic
和autodoc_pydantic
。
然而,当我make html
时,我得到
Exception occurred:
File "/home/user/Projects/Workspace/env/lib/python3.10/site-packages/sphinxcontrib/autodoc_pydantic/inspection.py", line 311, in __init__
self.attribute: Dict = self.model.Config
AttributeError: type object 'Foo' has no attribute 'Config'
似乎autodoc_pydantic
认为Foo
继承了pydantic.BaseModel
,而实际上是Bar
继承了。如果我从extensions
中删除'sphinxcontrib.autodoc_pydantic'
,错误就会消失。
更有趣的是,如果我删除验证器,错误也会消失。
autodoc_pydantic
版本为1.6.1。
此问题已在1.7.2版本中修复。