X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/4f1686540934a69cd3b65e54f8921b97b1102b09..516b8d6c03058552cfe7c3bfda4362640a3077e1:/tasklib/lazy.py diff --git a/tasklib/lazy.py b/tasklib/lazy.py index d294341..f9e0c0a 100644 --- a/tasklib/lazy.py +++ b/tasklib/lazy.py @@ -32,16 +32,25 @@ class LazyUUIDTask(object): return getattr(self, name) def __eq__(self, other): - if other['uuid']: + if other and other['uuid']: # For saved Tasks, just define equality by equality of uuids return self['uuid'] == other['uuid'] + def __ne__(self, other): + return not self.__eq__(other) + def __hash__(self): return self['uuid'].__hash__() def __repr__(self): return "LazyUUIDTask: {0}".format(self._uuid) + def __copy__(self): + return LazyUUIDTask(self._tw, self._uuid) + + def __deepcopy__(self, memo): + return LazyUUIDTask(self._tw, self._uuid) + @property def saved(self): """ @@ -49,6 +58,14 @@ class LazyUUIDTask(object): """ return True + @property + def _modified_fields(self): + return set() + + @property + def modified(self): + return False + def replace(self): """ Performs conversion to the regular Task object, referenced by the @@ -132,6 +149,15 @@ class LazyUUIDTaskSet(object): def __rxor__(self, other): return self.symmetric_difference(other) + def __and__(self, other): + return self.intersection(other) + + def __iand__(self, other): + return self.intersection_update(other) + + def __rand__(self, other): + return self.intersection(other) + def __le__(self, other): return self.issubset(other)