enthought / enthought/traitsui

TreeEditor throws errors if an entity has __eq__ defined

Open
#759 1 comment 0 reactions 0 assignees View on GitHub
type: bug
Dominant language
Python
Stars
306
Forks
99
PR merge metrics
No merged PRs in 30d

Description

When using the TreeEditor, if one of the nodes is for an entity with __eq__ defined, it throws the following error:
```
Traceback (most recent call last):
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/pyface/ui/qt4/gui.py", line 177, in event
self._callable(*self._args, **self._kw)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/pyface/i_window.py", line 232, in close
self.destroy()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/pyface/tasks/task_window.py", line 81, in destroy
self._destroy_state(state)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/pyface/tasks/task_window.py", line 351, in _destroy_state
state.central_pane.destroy()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/canopy_data/ui/tool_area.py", line 75, in destroy
super(ToolArea, self).destroy()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/pyface/ui/qt4/tasks/split_editor_area_pane.py", line 104, in destroy
self.remove_editor(editor)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/pyface/ui/qt4/tasks/split_editor_area_pane.py", line 150, in remove_editor
editor.destroy()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/canopy_data/ui/model_view_tool.py", line 87, in destroy
self.destroy_model_view()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/canopy_data/ui/model_view_tool.py", line 67, in destroy_model_view
self.model_view_ui.dispose()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/ui.py", line 263, in dispose
self.finish()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/ui.py", line 290, in finish
self.reset(destroy=False)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/ui.py", line 332, in reset
editor.dispose()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/qt4/instance_editor.py", line 386, in dispose
self._ui.dispose()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/ui.py", line 263, in dispose
self.finish()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/ui.py", line 290, in finish
self.reset(destroy=False)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/ui.py", line 332, in reset
editor.dispose()
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/qt4/tree_editor.py", line 260, in dispose
self._delete_node(self._tree.invisibleRootItem())
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/qt4/tree_editor.py", line 457, in _delete_node
self._delete_node(cnid)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/qt4/tree_editor.py", line 457, in _delete_node
self._delete_node(cnid)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/qt4/tree_editor.py", line 457, in _delete_node
self._delete_node(cnid)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/qt4/tree_editor.py", line 481, in _delete_node
self._remove_listeners(node, object)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/qt4/tree_editor.py", line 650, in _remove_listeners
node.when_label_changed(object, self._label_updated, True)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traitsui/tree_node.py", line 351, in when_label_changed
wrapped_listener = self._listener_cache.pop(memo, None)
File "/Users/cangell/.edm/envs/ak-dtx-dev/lib/python3.6/site-packages/traits/trait_handlers.py", line 3419, in pop
if (value is Undefined) or key in self:
TypeError: unhashable type: 'FactKind'
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.