-
-
Notifications
You must be signed in to change notification settings - Fork 31
Closed
Description
Describe the bug
If you define a class attribute's type as set
pytkdocs crashes.
To Reproduce
class Example:
"""The example class is a stand-in class for illustration"""
my_legal_attribute: List[str]
my_illegal_attribute: set[str]
Expected behavior
pytkdocs
would parse the attributes without breaking.
Error text
ERROR - mkdocstrings: 'type' object is not subscriptable
Traceback (most recent call last):
File "/home/user/repo/avenv/lib/python3.8/site-packages/pytkdocs/cli.py", line 205, in main
output = json.dumps(process_json(line))
File "/home/user/repo/avenv/lib/python3.8/site-packages/pytkdocs/cli.py", line 114, in process_json
return process_config(json.loads(json_input))
File "/home/user/repo/avenv/lib/python3.8/site-packages/pytkdocs/cli.py", line 91, in process_config
obj = loader.get_object_documentation(path, members)
File "/home/user/repo/avenv/lib/python3.8/site-packages/pytkdocs/loader.py", line 358, in get_object_documentation
root_object = self.get_module_documentation(leaf, members)
File "/home/user/repo/avenv/lib/python3.8/site-packages/pytkdocs/loader.py", line 426, in get_module_documentation
root_object.add_child(self.get_class_documentation(child_node))
File "/home/user/repo/avenv/lib/python3.8/site-packages/pytkdocs/loader.py", line 483, in get_class_documentation
merge(attributes_data, get_class_attributes(parent_class))
File "/home/user/repo/avenv/lib/python3.8/site-packages/pytkdocs/parsers/attributes.py", line 115, in get_class_attributes
type_hints = get_type_hints(cls)
File "/usr/lib/python3.8/typing.py", line 1232, in get_type_hints
value = _eval_type(value, base_globals, localns)
File "/usr/lib/python3.8/typing.py", line 270, in _eval_type
return t._evaluate(globalns, localns)
File "/usr/lib/python3.8/typing.py", line 518, in _evaluate
eval(self.__forward_code__, globalns, localns),
File "<string>", line 1, in <module>
TypeError: 'type' object is not subscriptable
ERROR - Error reading page 'reference/api/Example.md':
ERROR - Could not collect 'repo.Example'
System (please complete the following information):
pytkdocs
version: 0.16.1- Python version: 3.8
- OS: Linux
Workaround:
class Example:
"""The example class is a stand-in class for illustration"""
my_legal_attribute: List[str]
# my_illegal_attribute: set[str]
my_illegal_attribute = set()
Metadata
Metadata
Assignees
Labels
No labels