]> git.madduck.net Git - etc/taskwarrior.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

TaskResource: Move some Task non-specigic methods to TaskResource
authorTomas Babej <tomasbabej@gmail.com>
Tue, 20 Jan 2015 20:27:52 +0000 (21:27 +0100)
committerTomas Babej <tomasbabej@gmail.com>
Tue, 20 Jan 2015 20:27:52 +0000 (21:27 +0100)
tasklib/task.py

index 239e2b454e0a0978567b4866f212ef21e95df9a7..f482f5327f2d1201101cba6d4f7e83b11533edde 100644 (file)
@@ -172,6 +172,40 @@ class TaskResource(SerializingObject):
     def __repr__(self):
         return str(self)
 
+    def export_data(self):
+        """
+        Exports current data contained in the Task as JSON
+        """
+
+        # We need to remove spaces for TW-1504, use custom separators
+        data_tuples = ((key, self._serialize(key, value))
+                       for key, value in six.iteritems(self._data))
+
+        # Empty string denotes empty serialized value, we do not want
+        # 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=(',',':'))
+
+    @property
+    def _modified_fields(self):
+        writable_fields = set(self._data.keys()) - set(self.read_only_fields)
+        for key in writable_fields:
+            new_value = self._data.get(key)
+            old_value = self._original_data.get(key)
+
+            # Make sure not to mark data removal as modified field if the
+            # field originally had some empty value
+            if key in self._data and not new_value and not old_value:
+                continue
+
+            if new_value != old_value:
+                yield key
+
+    @property
+    def modified(self):
+        return bool(list(self._modified_fields))
+
 
 class TaskAnnotation(TaskResource):
     read_only_fields = ['entry', 'description']
@@ -289,25 +323,6 @@ class Task(TaskResource):
             # If the tasks are not saved, return hash of instance id
             return id(self).__hash__()
 
-    @property
-    def _modified_fields(self):
-        writable_fields = set(self._data.keys()) - set(self.read_only_fields)
-        for key in writable_fields:
-            new_value = self._data.get(key)
-            old_value = self._original_data.get(key)
-
-            # Make sure not to mark data removal as modified field if the
-            # field originally had some empty value
-            if key in self._data and not new_value and not old_value:
-                continue
-
-            if new_value != old_value:
-                yield key
-
-    @property
-    def modified(self):
-        return bool(list(self._modified_fields))
-
     @property
     def completed(self):
         return self['status'] == six.text_type('completed')
@@ -494,21 +509,6 @@ class Task(TaskResource):
         else:
             self._load_data(new_data)
 
-    def export_data(self):
-        """
-        Exports current data contained in the Task as JSON
-        """
-
-        # We need to remove spaces for TW-1504, use custom separators
-        data_tuples = ((key, self._serialize(key, value))
-                       for key, value in six.iteritems(self._data))
-
-        # Empty string denotes empty serialized value, we do not want
-        # 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=(',',':'))
-
 class TaskFilter(SerializingObject):
     """
     A set of parameters to filter the task list with.