X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/3543f3d0b841693af1923ddbaac440c767e914bd..530c5191d448a5d902d2d7f99fa18d3f58ce7551:/tasklib/lazy.py?ds=inline diff --git a/tasklib/lazy.py b/tasklib/lazy.py index c3feed5..aa2c065 100644 --- a/tasklib/lazy.py +++ b/tasklib/lazy.py @@ -32,7 +32,7 @@ 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'] @@ -49,6 +49,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 @@ -110,18 +118,37 @@ class LazyUUIDTaskSet(object): def __isub__(self, other): return self.difference_update(other) + def __rsub__(self, other): + return LazyUUIDTaskSet(self._tw, + set(t['uuid'] for t in other) - self._uuids) + def __or__(self, other): return self.union(other) def __ior__(self, other): return self.update(other) + def __ror__(self, other): + return self.union(other) + def __xor__(self, other): return self.symmetric_difference(other) def __ixor__(self, other): return self.symmetric_difference_update(other) + 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)