-
-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Description
Describe the bug
If a data class is created using the function dataclasses.make_dataclass
instead of the @dataclasses.dataclass
decorator, then the docstring (and even the entire node attribute data) is empty.
To Reproduce
Applying mkdocstrings to the following file
from dataclasses import make_dataclass
f = make_dataclass('f', ['x'])
leads to the error
ERROR - mkdocstrings.extension: 'docstring'
Traceback (most recent call last):
File ".../lib/python3.8/site-packages/pytkdocs/cli.py", line 205, in main
output = json.dumps(process_json(line))
File ".../lib/python3.8/site-packages/pytkdocs/cli.py", line 114, in process_json
return process_config(json.loads(json_input))
File ".../lib/python3.8/site-packages/pytkdocs/cli.py", line 91, in process_config
obj = loader.get_object_documentation(path, members)
File ".../lib/python3.8/site-packages/pytkdocs/loader.py", line 360, in get_object_documentation
root_object = self.get_class_documentation(leaf, members)
File ".../lib/python3.8/site-packages/pytkdocs/loader.py", line 531, in get_class_documentation
self.add_fields(
File ".../lib/python3.8/site-packages/pytkdocs/loader.py", line 599, in add_fields
root_object.add_child(add_method(child_node))
File ".../lib/python3.8/site-packages/pytkdocs/loader.py", line 802, in get_annotated_dataclass_field
docstring=attribute_data["docstring"],
KeyError: 'docstring'
Expected behavior
The result should be equivalent to what can be extracted from
@dataclass
class f:
x: int
Screenshots
If you are using pytkdocs
through mkdocstrings
: yes
If relevant, please attach a screenshot: see the code block from the 'reproduction' section above.
System (please complete the following information):
pytkdocs
version [e.g. 0.2.1]:pytkdocs==0.12.0
- Python version: [e.g. 3.8]:
Python 3.8.12 (default, Aug 30 2021, 00:00:00) [GCC 10.3.1 20210422 (Red Hat 10.3.1-1)] on linux
- OS: Fedora 33
5.14.18-100.fc33.x86_64
Metadata
Metadata
Assignees
Labels
No labels