dict-typer icon indicating copy to clipboard operation
dict-typer copied to clipboard

Nested same keys throws error

Open ikornaselur opened this issue 4 years ago • 1 comments

 {"foo": {"foo": 10}}

will result in

Traceback (most recent call last):
  File "/usr/local/opt/pyenv/versions/3.8.2/bin/dict-typer", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/dict_typer/__init__.py", line 50, in cli
    output = get_type_definitions(parsed, show_imports=imports)
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/dict_typer/type_definitions.py", line 229, in get_type_definitions
    return builder.build_output()
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/dict_typer/type_definitions.py", line 180, in build_output
    typing_imports |= definition.get_imports()
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/dict_typer/models.py", line 132, in get_imports
    imports |= sub_member.get_imports()
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/dict_typer/models.py", line 132, in get_imports
    imports |= sub_member.get_imports()
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/dict_typer/models.py", line 132, in get_imports
    imports |= sub_member.get_imports()
  [Previous line repeated 987 more times]
  File "/usr/local/opt/pyenv/versions/3.8.2/lib/python3.8/site-packages/dict_typer/models.py", line 129, in get_imports
    imports = set()
RecursionError: maximum recursion depth exceeded while calling a Python object

ikornaselur avatar Jun 10 '20 13:06 ikornaselur