X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/ef4e6774912c7170239ed559bc215acdfe9d28db..d4ee441b2352dd50f00363c1ccb123e25cbac248:/tasklib/task.py diff --git a/tasklib/task.py b/tasklib/task.py index b56936e..8513b14 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -95,7 +95,7 @@ class SerializingObject(object): def deserialize_tags(self, tags): if isinstance(tags, basestring): return tags.split(',') if tags else [] - return tags + return tags or [] def serialize_depends(self, cur_dependencies): # Return the list of uuids @@ -126,7 +126,10 @@ class TaskResource(SerializingObject): except ValueError: pass - return self._data.get(key) or self._deserialize(key, None) + if key not in self._data: + self._data[key] = self._deserialize(key, None) + + return self._data.get(key) def __setitem__(self, key, value): if key in self.read_only_fields: @@ -368,7 +371,10 @@ class Task(TaskResource): # Add the output of format_field method to args list (defaults to # field:value) serialized_value = self._serialize(field, self._data[field]) or '' - format_default = lambda: "{0}:'{1}'".format(field, serialized_value) + format_default = lambda: "{0}:{1}".format( + field, + "'{0}'".format(serialized_value) if serialized_value else '' + ) format_func = getattr(self, 'format_{0}'.format(field), format_default) args.append(format_func())