From 76ef07d9a8863b337a7aca651842f094472f867f Mon Sep 17 00:00:00 2001 From: Tomas Babej Date: Thu, 24 Dec 2015 18:57:48 +0100 Subject: [PATCH] lazy: Provide full implementation of the set interface in LazyUUIDTaskSet --- tasklib/lazy.py | 50 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/tasklib/lazy.py b/tasklib/lazy.py index 04ccdf5..1e13fc3 100644 --- a/tasklib/lazy.py +++ b/tasklib/lazy.py @@ -108,18 +108,56 @@ class LazyUUIDTaskSet(object): 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 issubset(self, other): + return all([task in other for task in self]) + + def issuperset(self, other): + return all([task in self for task in other]) + + def union(self, other): + return LazyUUIDTaskSet(self._tw, + self._uuids | set(t['uuid'] for t in other)) - def __or__(self, other): + def intersection(self, other): return LazyUUIDTaskSet(self._tw, - self._uuids | set(t['uuid'] for t in other)) + self._uuids & set(t['uuid'] for t in other)) - def __ior__(self, other): + def difference(self, other): + return LazyUUIDTaskSet(self._tw, + self._uuids - set(t['uuid'] for t in other)) + + def symmetric_difference(self, other): + return LazyUUIDTaskSet(self._tw, + self._uuids ^ set(t['uuid'] for t in other)) + + def update(self, other): self._uuids |= set(t['uuid'] for t in other) return self + def intersection_update(self, other): + self._uuids &= set(t['uuid'] for t in other) + return self + + def difference_update(self, other): + self._uuids -= set(t['uuid'] for t in other) + return self + + def symmetric_difference_update(self, other): + self._uuids ^= set(t['uuid'] for t in other) + return self + + def add(self, task): + self._uuids.add(task['uuid']) + + def remove(self, task): + self._uuids.remove(task['uuid']) + + def pop(self): + return self._uuids.pop() + + def clear(self): + self._uuids.clear() + def replace(self): """ Performs conversion to the regular TaskQuerySet object, referenced by -- 2.39.2