This repository was archived by the owner on Jan 2, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 21
This repository was archived by the owner on Jan 2, 2023. It is now read-only.
Support for dataclasses #84
Copy link
Copy link
Open
Description
When parsing a @dataclass, DocumentationGenerator.generate fails with AttributeError: module 'mantisshrimp.core.bbox' has no attribute '__create_fn__' (full stack trace at the bottom).
What happens is that the __init__ representation from dataclasses is different than for normal classes.
For normal classes we have:
<function DocumentationGenerator.__init__ at 0x104e56710>While for dataclasses:
<function __create_fn__.<locals>.__init__ at 0x13b3c1290>If I understood the problem correctly, get_class_from_method is trying to get the name of the class from the representation, but the name of the class is not present in the dataclass __init__.
Traceback (most recent call last):
File "autogen.py", line 340, in <module>
generate(mantisshrimp_dir / "docs" / "sources")
File "autogen.py", line 256, in generate
doc_generator.generate(dest_dir)
File "/Users/lgvaz/anaconda3/envs/mantis/lib/python3.7/site-packages/keras_autodoc/autogen.py", line 82, in generate
markdown_text += self._render(element)
File "/Users/lgvaz/anaconda3/envs/mantis/lib/python3.7/site-packages/keras_autodoc/autogen.py", line 109, in _render
return self._render_from_object(object_, signature_override)
File "/Users/lgvaz/anaconda3/envs/mantis/lib/python3.7/site-packages/keras_autodoc/autogen.py", line 116, in _render_from_object
object_, signature_override, self.max_signature_line_length
File "/Users/lgvaz/anaconda3/envs/mantis/lib/python3.7/site-packages/keras_autodoc/get_signatures.py", line 51, in get_signature
return get_class_signature(object_, override, max_line_length)
File "/Users/lgvaz/anaconda3/envs/mantis/lib/python3.7/site-packages/keras_autodoc/get_signatures.py", line 45, in get_class_signature
signature_end = get_signature_end(cls.__init__)
File "/Users/lgvaz/anaconda3/envs/mantis/lib/python3.7/site-packages/keras_autodoc/get_signatures.py", line 25, in get_signature_end
if utils.ismethod(function):
File "/Users/lgvaz/anaconda3/envs/mantis/lib/python3.7/site-packages/keras_autodoc/utils.py", line 80, in ismethod
return get_class_from_method(function) is not None
File "/Users/lgvaz/anaconda3/envs/mantis/lib/python3.7/site-packages/keras_autodoc/utils.py", line 73, in get_class_from_method
meth.__qualname__.split('.<locals>', 1)[0].rsplit('.', 1)[0])Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels