Skip to content
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

Recursion error when running griffe griffe #3

Closed
WillDaSilva opened this issue Jan 2, 2022 · 4 comments
Closed

Recursion error when running griffe griffe #3

WillDaSilva opened this issue Jan 2, 2022 · 4 comments

Comments

@WillDaSilva
Copy link
Contributor

To reproduce, install griffe version 0.8.1.dev16+g580251b (pip install . on commit 580251b550f952d72bf550ea26a1c09660761164 - currently the head of the master branch), then run griffe griffe. This results in a recursion error.

The following is the error message, with the repeating section manually truncated:

INFO       Loading package griffe
Traceback (most recent call last):
  File "/home/will/.pyenv/versions/workshop/bin/griffe", line 8, in <module>
    sys.exit(main())
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/cli.py", line 234, in main
    packages = _load_packages(opts.packages, extensions, search, opts.docstyle, opts.docopts)
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/cli.py", line 97, in _load_packages
    if not loader.follow_aliases(obj, only_exported=False, only_known_modules=True):
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/loader.py", line 240, in follow_aliases
    member.resolve_target()  # type: ignore[union-attr]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 810, in resolve_target
    self._target = self.modules_collection[self._target_path]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/mixins.py", line 26, in __getitem__
    return self.members[parts[0]][parts[1]]  # type: ignore[attr-defined]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/mixins.py", line 26, in __getitem__
    return self.members[parts[0]][parts[1]]  # type: ignore[attr-defined]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 725, in __getitem__
    return self.target[key]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 790, in target
    self.resolve_target()
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 810, in resolve_target
[...]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 810, in resolve_target
    self._target = self.modules_collection[self._target_path]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/mixins.py", line 26, in __getitem__
    return self.members[parts[0]][parts[1]]  # type: ignore[attr-defined]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/mixins.py", line 26, in __getitem__
    return self.members[parts[0]][parts[1]]  # type: ignore[attr-defined]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 725, in __getitem__
    return self.target[key]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 790, in target
    self.resolve_target()
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 810, in resolve_target
    self._target = self.modules_collection[self._target_path]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/mixins.py", line 26, in __getitem__
    return self.members[parts[0]][parts[1]]  # type: ignore[attr-defined]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/mixins.py", line 26, in __getitem__
    return self.members[parts[0]][parts[1]]  # type: ignore[attr-defined]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 725, in __getitem__
    return self.target[key]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 790, in target
    self.resolve_target()
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 810, in resolve_target
    self._target = self.modules_collection[self._target_path]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/mixins.py", line 26, in __getitem__
    return self.members[parts[0]][parts[1]]  # type: ignore[attr-defined]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/mixins.py", line 26, in __getitem__
    return self.members[parts[0]][parts[1]]  # type: ignore[attr-defined]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 725, in __getitem__
    return self.target[key]
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 790, in target
    self.resolve_target()
  File "/home/will/.pyenv/versions/3.9.6/envs/workshop/lib/python3.9/site-packages/griffe/dataclasses.py", line 810, in resolve_target
    self._target = self.modules_collection[self._target_path]
RecursionError: maximum recursion depth exceeded

This error does not occur on version 0.8.0, which has been published to PyPI, but instead a key error is raised on that version when running griffe griffe. Given that 0.8.0 is an older version, I won't create an issue for it unless you'd like me to.

@WillDaSilva
Copy link
Contributor Author

Both 0.8.0 and 0.8.1.dev16+g580251b work fine for some other packages, such as six.

@pawamoy
Copy link
Member

pawamoy commented Jan 2, 2022

It should be fixed using latest commits. Just tried in the gitpod workspace successfully.

EDIT: hmm maybe not. Will debug tomorrow ^^ Thanks for beta testing!

@pawamoy
Copy link
Member

pawamoy commented Jan 3, 2022

Just tried this and it worked (Python 3.9.9):

$ cd griffe
$ python -m venv .venv
$ . .venv/bin/activate
$ pip install .
Successfully installed griffe-0.8.1.dev16+g8aa5ed0.d20220103
$ cd  # to avoid PDM loading __pypackages__
$ griffe griffe
# json output, no recursion error

@pawamoy
Copy link
Member

pawamoy commented Jan 4, 2022

Should be fixed with griffe 0.9.0. Please reopen if you encounter the same issue again!

@pawamoy pawamoy closed this as completed Jan 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants