From: Tomas Babej Date: Sun, 28 Dec 2014 02:15:47 +0000 (+0100) Subject: Task: Make uuid equality more restrictive for unsaved tasks X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/commitdiff_plain/2f50a72c1d1400edddd58ad654611422c92d852a?ds=sidebyside;hp=32c376913b4cc616cb7fc4e076f0c2ec690229ba Task: Make uuid equality more restrictive for unsaved tasks --- diff --git a/tasklib/task.py b/tasklib/task.py index 8fe1e1b..1fa3faa 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -122,10 +122,21 @@ class Task(TaskResource): return self['description'] def __eq__(self, other): - return self['uuid'] == other['uuid'] + if self['uuid'] and other['uuid']: + # For saved Tasks, just define equality by equality of uuids + return self['uuid'] == other['uuid'] + else: + # If the tasks are not saved, compare the actual instances + return id(self) == id(other) + def __hash__(self): - return self['uuid'].__hash__() + if self['uuid']: + # For saved Tasks, just define equality by equality of uuids + return self['uuid'].__hash__() + else: + # If the tasks are not saved, return hash of instance id + return id(self).__hash__() @property def _modified_fields(self):