From 96ba7d696fe1ca16ac053e4d1b7403ae8604d2e1 Mon Sep 17 00:00:00 2001 From: Tomas Babej Date: Sat, 17 Jan 2015 11:59:05 +0100 Subject: [PATCH] Task: Fix incorrect timestamp serializer --- tasklib/task.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tasklib/task.py b/tasklib/task.py index a0b3c28..8ee77fd 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -29,6 +29,18 @@ class SerializingObject(object): """ Common ancestor for TaskResource & TaskFilter, since they both need to serialize arguments. + + Serializing method should hold the following contract: + - any empty value (meaning removal of the attribute) + is deserialized into a empty string + - None denotes a empty value for any attribute + + Deserializing method should hold the following contract: + - None denotes a empty value for any attribute (however, + this is here as a safeguard, TaskWarrior currently does + not export empty-valued attributes) if the attribute + is not iterable (e.g. list or set), in which case + a empty iterable should be used. """ def _deserialize(self, key, value): @@ -43,7 +55,7 @@ class SerializingObject(object): def timestamp_serializer(self, date): if not date: - return None + return '' return date.strftime(DATE_FORMAT) def timestamp_deserializer(self, date_str): -- 2.39.5