Closed rhuygen closed 4 years ago
I'm wondering that hasattr()
raises exception. hasattr()
returns boolean if the object implements __getattr__()
correctly. I mean it should not raise an KeyError
but AttributeError
if no attribute is found.
Anyway, I enclosed hasattr()
by a try-except block. Please check the results using Version 0.8.2.
I agree this is strange, so I ran the code through pdb and found the problem is in one of my classes which doesn't properly implement __getattr__()
. I'm really sorry for this.
Hi,
I'm trying to use your mkdocs plugin for a project and I get the following error:
Full console output of `mkdocs build`
``` (venv38) ~/Git/plato-common-egse/MKDOCS (develop)> mkdocs build Traceback (most recent call last): File "/Users/rik/Git/plato-common-egse/venv38/bin/mkdocs", line 8, in
sys.exit(cli())
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkdocs/__main__.py", line 152, in build_command
build.build(config.load_config(**kwargs), dirty=not clean)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkdocs/commands/build.py", line 236, in build
config = config['plugins'].run_event('config', config)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkdocs/plugins.py", line 94, in run_event
result = method(item, **kwargs)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/plugins/mkdocs.py", line 47, in on_config
config, self.abs_api_paths = mkapi.plugins.api.create_nav(config)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/plugins/api.py", line 23, in create_nav
page[key], abs_api_paths_ = collect(value, docs_dir, config_dir)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/plugins/api.py", line 43, in collect
module = get_module(package_path)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 115, in get_module
return Module(obj)
File "", line 6, in __init__
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 28, in __post_init__
super().__post_init__()
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/tree.py", line 51, in __post_init__
self.members = self.get_members()
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 51, in get_members
return get_members(self.obj)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 99, in get_members
module = get_module(name)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 115, in get_module
return Module(obj)
File "", line 6, in __init__
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 28, in __post_init__
super().__post_init__()
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/tree.py", line 51, in __post_init__
self.members = self.get_members()
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 51, in get_members
return get_members(self.obj)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 99, in get_members
module = get_module(name)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 115, in get_module
return Module(obj)
File "", line 6, in __init__
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 28, in __post_init__
super().__post_init__()
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/tree.py", line 51, in __post_init__
self.members = self.get_members()
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 51, in get_members
return get_members(self.obj)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 99, in get_members
module = get_module(name)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 115, in get_module
return Module(obj)
File "", line 6, in __init__
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 30, in __post_init__
objects = get_objects(self.obj)
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/module.py", line 71, in get_objects
if not get_kind(obj):
File "/Users/rik/Git/plato-common-egse/venv38/lib/python3.8/site-packages/mkapi/core/node.py", line 101, in get_kind
if hasattr(obj, "__dataclass_fields__") and hasattr(obj, "__qualname__"):
KeyError: '__dataclass_fields__'
```