X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/73cb96ecbbcaf43f05dc825a1017c2680b79f5a9..92e0ed0f1fdf6ac1f69c8b30e18a503022f57c9f:/tasklib/serializing.py?ds=inline diff --git a/tasklib/serializing.py b/tasklib/serializing.py index ed2881d..a9b33ee 100644 --- a/tasklib/serializing.py +++ b/tasklib/serializing.py @@ -1,3 +1,14 @@ +import datetime +import importlib +import json +import pytz +import six +import tzlocal + +DATE_FORMAT = '%Y%m%dT%H%M%SZ' +local_zone = tzlocal.get_localzone() + + class SerializingObject(object): """ Common ancestor for TaskResource & TaskWarriorFilter, since they both @@ -155,6 +166,8 @@ class SerializingObject(object): return serialized_annotations if serialized_annotations else '' def deserialize_annotations(self, data): + task_module = importlib.import_module('tasklib.task') + TaskAnnotation = getattr(task_module, 'TaskAnnotation') return [TaskAnnotation(self, d) for d in data] if data else [] def serialize_tags(self, tags): @@ -173,6 +186,9 @@ class SerializingObject(object): 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(',') @@ -180,7 +196,7 @@ class SerializingObject(object): else: uuids = raw_uuids - return set(self.backend.tasks.get(uuid=uuid) for uuid in uuids if uuid) + return set(self.backend.tasks.filter(' '.join(uuids))) def datetime_normalizer(self, value): """ @@ -192,8 +208,10 @@ class SerializingObject(object): localized datetime -> localized datetime (no conversion) """ - if (isinstance(value, datetime.date) - and not isinstance(value, datetime.datetime)): + if ( + isinstance(value, datetime.date) + and not isinstance(value, datetime.datetime) + ): # Convert to local midnight value_full = datetime.datetime.combine(value, datetime.time.min) localized = local_zone.localize(value_full) @@ -221,5 +239,3 @@ class SerializingObject(object): "not: {}".format(value)) return value - -