]>
git.madduck.net Git - etc/taskwarrior.git/blobdiff - tasklib/serializing.py
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:
import six
import tzlocal
import six
import tzlocal
+
+from .lazy import LazyUUIDTaskSet, LazyUUIDTask
+
DATE_FORMAT = '%Y%m%dT%H%M%SZ'
local_zone = tzlocal.get_localzone()
DATE_FORMAT = '%Y%m%dT%H%M%SZ'
local_zone = tzlocal.get_localzone()
def deserialize_tags(self, tags):
if isinstance(tags, six.string_types):
def deserialize_tags(self, tags):
if isinstance(tags, six.string_types):
- return tags.split(',') if tags else []
- return tags or []
+ return set(tags.split(',')) if tags else set()
+ return set(tags or [])
+
+ def serialize_parent(self, parent):
+ return parent['uuid'] if parent else ''
+
+ def deserialize_parent(self, uuid):
+ return LazyUUIDTask(self.backend, uuid) if uuid else None
def serialize_depends(self, value):
# Return the list of uuids
value = value if value is not None else set()
def serialize_depends(self, value):
# Return the list of uuids
value = value if value is not None else set()
- return ','.join(task['uuid'] for task in value)
+
+ if isinstance(value, LazyUUIDTaskSet):
+ return ','.join(value._uuids)
+ else:
+ return ','.join(task['uuid'] for task in value)
def deserialize_depends(self, raw_uuids):
raw_uuids = raw_uuids or [] # Convert None to empty list
def deserialize_depends(self, raw_uuids):
raw_uuids = raw_uuids or [] # Convert None to empty list
+ if not raw_uuids:
+ return set()
+
# TW 2.4.4 encodes list of dependencies as a single string
if type(raw_uuids) is not list:
uuids = raw_uuids.split(',')
# TW 2.4.4 encodes list of dependencies as a single string
if type(raw_uuids) is not list:
uuids = raw_uuids.split(',')
- return set(self.backend.tasks.get(uuid=uuid) for uuid in uuids if uuid )
+ return LazyUUIDTaskSet(self.backend, uuids )
def datetime_normalizer(self, value):
"""
def datetime_normalizer(self, value):
"""