-
Notifications
You must be signed in to change notification settings - Fork 102
Closed
Description
In 3.2.1, the following worked:
>>> import inquirer
>>> test = [('aa', {'a': 1}), ('bb', {'b':2})]
>>> inquirer.list_input('Which?', carousel=True, choices=test)
[?] Which?: bb
aa
> bb
{'b': 2}
Whereas in 3.2.2 (and 3.2.3) this doesn't:
>>> import inquirer
>>> test = [('aa', {'a': 1}), ('bb', {'b':2})]
>>> inquirer.list_input('Which?', carousel=True, choices=test)
[?] Which?:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "App/.venv/lib/python3.11/site-packages/inquirer/shortcuts.py", line 32, in list_input
return render.render(question)
^^^^^^^^^^^^^^^^^^^^^^^
File "App/.venv/lib/python3.11/site-packages/inquirer/render/console/__init__.py", line 38, in render
return self._event_loop(render)
^^^^^^^^^^^^^^^^^^^^^^^^
File "App/.venv/lib/python3.11/site-packages/inquirer/render/console/__init__.py", line 49, in _event_loop
self._print_hint(render)
File "App/.venv/lib/python3.11/site-packages/inquirer/render/console/__init__.py", line 96, in _print_hint
hint = render.get_hint()
^^^^^^^^^^^^^^^^^
File "App/.venv/lib/python3.11/site-packages/inquirer/render/console/_list.py", line 23, in get_hint
hint = self.question.hints[choice]
~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "App/.venv/lib/python3.11/site-packages/inquirer/questions.py", line 37, in __hash__
return hash(self.tuple)
^^^^^^^^^^^^^^^^
TypeError: unhashable type: 'dict'
The reason is that TaggedValue
's hash
function tries to hash whole tuple passed. Would it be enough to hash just the string representation (i.e. hash(self.tag)
), instead of the whole tuple? I'd say the list of choices should provide unique string descriptions for every item (although it might technically not be necessary when passing hints=
as well?)
Metadata
Metadata
Assignees
Labels
No labels