X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/926c957fc04435bf2253a5748e5acec53a18ee86..49c93ace4f0855d41ade87bee250a8d42edc166e:/tasklib/task.py?ds=inline diff --git a/tasklib/task.py b/tasklib/task.py index 8145e2e..57b7338 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -1,6 +1,5 @@ from __future__ import print_function import copy -import datetime import importlib import json import logging @@ -39,6 +38,11 @@ class ReadOnlyDictView(object): def __len__(self): return len(self.viewed_dict) + def __unicode__(self): + return six.u('ReadOnlyDictView: {0}'.format(repr(self.viewed_dict))) + + __repr__ = __unicode__ + def get(self, key, default=None): return copy.deepcopy(self.viewed_dict.get(key, default)) @@ -76,7 +80,6 @@ class TaskResource(SerializingObject): if update_original: self._original_data = copy.deepcopy(self._data) - def __getitem__(self, key): # This is a workaround to make TaskResource non-iterable # over simple index-based iteration @@ -121,7 +124,7 @@ class TaskResource(SerializingObject): # to pass that to TaskWarrior. data_tuples = filter(lambda t: t[1] is not '', data_tuples) data = dict(data_tuples) - return json.dumps(data, separators=(',',':')) + return json.dumps(data, separators=(',', ':')) @property def _modified_fields(self): @@ -162,6 +165,9 @@ class TaskAnnotation(TaskResource): # their data dics are the same return self.task == other.task and self._data == other._data + def __ne__(self, other): + return not self.__eq__(other) + __repr__ = __unicode__ @@ -274,6 +280,8 @@ class Task(TaskResource): # If the tasks are not saved, compare the actual instances return id(self) == id(other) + def __ne__(self, other): + return not self.__eq__(other) def __hash__(self): if self['uuid']: @@ -420,6 +428,7 @@ class Task(TaskResource): else: self._load_data(new_data) + class TaskQuerySet(object): """ Represents a lazy lookup for a task objects.