X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/5be86bdbbc04abcd18478a4337f629026da5e3cf..da913b9a9b302513f312b1fe6dd0246805eb29a5:/tasklib/lazy.py diff --git a/tasklib/lazy.py b/tasklib/lazy.py index 260acdf..04ccdf5 100644 --- a/tasklib/lazy.py +++ b/tasklib/lazy.py @@ -29,7 +29,7 @@ class LazyUUIDTask(object): # Getattr is called only if the attribute could not be found using # normal means self.replace() - return self.name + return getattr(self, name) def __eq__(self, other): if other['uuid']: @@ -39,6 +39,16 @@ class LazyUUIDTask(object): def __hash__(self): return self['uuid'].__hash__() + def __repr__(self): + return "LazyUUIDTask: {0}".format(self._uuid) + + @property + def saved(self): + """ + Implementation of the 'saved' property. Always returns True. + """ + return True + def replace(self): """ Performs conversion to the regular Task object, referenced by the @@ -73,11 +83,17 @@ class LazyUUIDTaskSet(object): raise AttributeError else: self.replace() - return self.name + return getattr(self, name) + + def __repr__(self): + return "LazyUUIDTaskSet([{0}])".format(', '.join(self._uuids)) def __eq__(self, other): return set(t['uuid'] for t in other) == self._uuids + def __ne__(self, other): + return not (self == other) + def __contains__(self, task): return task['uuid'] in self._uuids @@ -88,6 +104,22 @@ class LazyUUIDTaskSet(object): for uuid in self._uuids: yield LazyUUIDTask(self._tw, uuid) + def __sub__(self, other): + return LazyUUIDTaskSet(self._tw, + self._uuids - set(t['uuid'] for t in other)) + + def __isub__(self, other): + self._uuids -= set(t['uuid'] for t in other) + return self + + def __or__(self, other): + return LazyUUIDTaskSet(self._tw, + self._uuids | set(t['uuid'] for t in other)) + + def __ior__(self, other): + self._uuids |= set(t['uuid'] for t in other) + return self + def replace(self): """ Performs conversion to the regular TaskQuerySet object, referenced by