具有嵌套pydantic模型的类的自动发现失败



作为我的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:

我已经安装了pydanticautodoc_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版本中修复。

相关内容

  • 没有找到相关文章

最新更新