-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error when inherit a class that is inherited from pydantic.BaseModel #291
Comments
Other than the fact that this theme requires pydantic v2.0+, I'm not sure how this question is related to this theme. |
I indeed using pydantic v2.0+. I encounter this issue while trying to use the Python API documentation generation. If this is not the appropriate place, where do yout think I should create an issue instead? |
autodoc is an extension that ships with Sphinx. Unless I read something wrong, I don't see anything in your comments that specify this theme (sphinx-immaterial) as a cause of the problem. |
You could try just using the autodoc_pydantic extension, though it is likely our Python apigen extension will need some changes to work with it. |
I just tried it and it went haywire quick. I was hoping someone here will be able to help. When I installed the autodoc_pydantic the only meaningful error I can get is: File "~/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/pydantic/json_schema.py", line 2124, in model_json_schema
assert '__pydantic_core_schema__' in cls.__dict__, 'this is a bug! please report it'
AssertionError: this is a bug! please report it Which looks like a pydantic error? Do you have any suggestion on how to make changes in this theme apigen config? There is an issue that talks about this. Unfortunately, in order to activate this feature, I need to put |
Use |
No config on auto_pydantic Running Sphinx v5.3.0
locale_dir /Users/jimboy/Documents/CS/send-the-raven/source/locales/en/LC_MESSAGES does not exists
Traceback (most recent call last):
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/events.py", line 94, in emit
results.append(listener.handler(self.app, *args))
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx_immaterial/apidoc/python/apigen.py", line 1663, in _builder_inited
_ApiEntityCollector(
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx_immaterial/apidoc/python/apigen.py", line 1529, in collect_documenter_members
member_canonical_object_name = self.collect_entity_recursively(entry)
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx_immaterial/apidoc/python/apigen.py", line 1452, in collect_entity_recursively
entry.documenter.generate()
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/ext/autodoc/__init__.py", line 1798, in generate
return super().generate(more_content=more_content,
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/ext/autodoc/__init__.py", line 951, in generate
self.add_content(more_content)
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinxcontrib/autodoc_pydantic/directives/autodocumenters.py", line 290, in add_content
self.add_collapsable_schema()
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinxcontrib/autodoc_pydantic/directives/autodocumenters.py", line 328, in add_collapsable_schema
schema = self.pydantic.inspect.schema.sanitized
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinxcontrib/autodoc_pydantic/inspection.py", line 420, in sanitized
schema = self.model.model_json_schema()
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/pydantic/main.py", line 386, in model_json_schema
return model_json_schema(
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/pydantic/json_schema.py", line 2124, in model_json_schema
assert '__pydantic_core_schema__' in cls.__dict__, 'this is a bug! please report it'
AssertionError: this is a bug! please report it
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/cmd/build.py", line 276, in build_main
app = Sphinx(args.sourcedir, args.confdir, args.outputdir,
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/application.py", line 262, in __init__
self._init_builder()
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/application.py", line 335, in _init_builder
self.events.emit('builder-inited')
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/events.py", line 105, in emit
raise ExtensionError(__("Handler %r for event %r threw an exception") %
sphinx.errors.ExtensionError: Handler <function _builder_inited at 0x10b00d2d0> for event 'builder-inited' threw an exception (exception: this is a bug! please report it)
Extension error (sphinx_immaterial.apidoc.python.apigen):
Handler <function _builder_inited at 0x10b00d2d0> for event 'builder-inited' threw an exception (exception: this is a bug! please report it)
make: *** [html] Error 2 With autodoc_pydantic config in conf.py autodoc_pydantic_model_show_json = False
autodoc_pydantic_model_show_config_summary = False Trace back Running Sphinx v5.3.0
locale_dir /Users/jimboy/Documents/CS/send-the-raven/source/locales/en/LC_MESSAGES does not exists
WARNING: error while formatting arguments for send_the_raven.address.normalize_address_record: Handler <function update_annotations_using_type_comments at 0x10ef6b520> for event 'autodoc-before-process-signature' threw an exception (exception: list index out of range)
WARNING: error while formatting arguments for send_the_raven.address.normalize_address_record: Handler <function update_annotations_using_type_comments at 0x10ef6b520> for event 'autodoc-before-process-signature' threw an exception (exception: list index out of range)
Traceback (most recent call last):
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/events.py", line 94, in emit
results.append(listener.handler(self.app, *args))
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx_immaterial/apidoc/python/apigen.py", line 1649, in _builder_inited
importlib.import_module(module_name)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/Users/jimboy/Documents/CS/send-the-raven/send_the_raven/geoaddress.py", line 17, in <module>
class GeoAddress(Address):
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py", line 177, in __new__
set_model_fields(cls, bases, config_wrapper, types_namespace)
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py", line 405, in set_model_fields
fields, class_vars = collect_model_fields(cls, bases, config_wrapper, types_namespace, typevars_map=typevars_map)
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/pydantic/_internal/_fields.py", line 119, in collect_model_fields
raise NameError(
NameError: Field "model_fields" conflicts with member {'full_address': FieldInfo(annotation=Union[str, NoneType], required=False), 'street': FieldInfo(annotation=Union[str, NoneType], required=False), 'address_line_2': FieldInfo(annotation=Union[str, NoneType], required=False), 'city': FieldInfo(annotation=Union[str, NoneType], required=False), 'state': FieldInfo(annotation=Union[str, NoneType], required=False), 'zip_code': FieldInfo(annotation=Union[str, NoneType], required=False), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, default='2f684c9ccc8990a')} of protected namespace "model_".
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/cmd/build.py", line 276, in build_main
app = Sphinx(args.sourcedir, args.confdir, args.outputdir,
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/application.py", line 262, in __init__
self._init_builder()
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/application.py", line 335, in _init_builder
self.events.emit('builder-inited')
File "/Users/jimboy/Documents/CS/send-the-raven/.venv/lib/python3.10/site-packages/sphinx/events.py", line 105, in emit
raise ExtensionError(__("Handler %r for event %r threw an exception") %
sphinx.errors.ExtensionError: Handler <function _builder_inited at 0x10f8dd2d0> for event 'builder-inited' threw an exception (exception: Field "model_fields" conflicts with member {'full_address': FieldInfo(annotation=Union[str, NoneType], required=False), 'street': FieldInfo(annotation=Union[str, NoneType], required=False), 'address_line_2': FieldInfo(annotation=Union[str, NoneType], required=False), 'city': FieldInfo(annotation=Union[str, NoneType], required=False), 'state': FieldInfo(annotation=Union[str, NoneType], required=False), 'zip_code': FieldInfo(annotation=Union[str, NoneType], required=False), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, default='2f684c9ccc8990a')} of protected namespace "model_".)
Extension error (sphinx_immaterial.apidoc.python.apigen):
Handler <function _builder_inited at 0x10f8dd2d0> for event 'builder-inited' threw an exception (exception: Field "model_fields" conflicts with member {'full_address': FieldInfo(annotation=Union[str, NoneType], required=False), 'street': FieldInfo(annotation=Union[str, NoneType], required=False), 'address_line_2': FieldInfo(annotation=Union[str, NoneType], required=False), 'city': FieldInfo(annotation=Union[str, NoneType], required=False), 'state': FieldInfo(annotation=Union[str, NoneType], required=False), 'zip_code': FieldInfo(annotation=Union[str, NoneType], required=False), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, default='2f684c9ccc8990a')} of protected namespace "model_".)
make: *** [html] Error 2 |
This problem seems happening with sphinx.automodule and autodoc. People solve it with this library. However, I am not sure how to apply the fix with sphinx-immaterial.
This is the error:
The text was updated successfully, but these errors were encountered: