projecthamster / hamster-gtk

A GTK3 time tracker. Powered by 'hamster-lib'
http://projecthamster.org
GNU General Public License v3.0
116 stars 18 forks source link

Grouping facts fails under python 3 due to impossible hashing. #13

Closed elbenfreund closed 8 years ago

elbenfreund commented 8 years ago

Related Error:

Traceback (most recent call last):
  File "/home/elbenfreund/projects/hamster-gtk/hamster_gtk/hamster_gtk.py", line 61, in _on_overview_button
    overview = OverviewScreen(self._parent._app, self._parent)
  File "/home/elbenfreund/projects/hamster-gtk/hamster_gtk/screens/overview.py", line 56, in __init__
    self._grouped_facts, self._totals = self._group_facts()
  File "/home/elbenfreund/projects/hamster-gtk/hamster_gtk/screens/overview.py", line 114, in _group_facts
    facts_by_activity[fact.activity].append(fact)
TypeError: unhashable type: 'Activity'

Under python 3, our hamsterlib instances which have a custom __eq__ method are no longer hashable without being given a custom __hash__ method. As a consequence building grouped dictionaries fails.

An issue with hamsterlib has been created.

Reference:

elbenfreund commented 8 years ago

Upgrading to hamster-lib 0.12.0 fixes this.