From 6ee42bed982fd959c389e24131e124596dadb980 Mon Sep 17 00:00:00 2001
From: Alessandro Cerioni <acerioni@grandlyon.com>
Date: Wed, 17 Apr 2019 18:12:20 +0200
Subject: [PATCH] Restoring .%f in the datetime (de)serializer, 'cause the
 'issue' was not there but in the doc processor.

---
 6-doc-processor.py   | 2 +-
 utils/serializers.py | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/6-doc-processor.py b/6-doc-processor.py
index 38d1b2d..eae6c00 100644
--- a/6-doc-processor.py
+++ b/6-doc-processor.py
@@ -48,7 +48,7 @@ def fix_field_types( in_docs, out_types ):
             elif out_types[lookup_key] == 'float':
                 out_flattened_properties[prop] = convert_to_float(in_flattened_properties[prop])
             elif out_types[lookup_key] in ['date', 'datetime']:
-                out_flattened_properties[prop] = convert_to_datetime(in_flattened_properties[prop]).strftime('%Y-%m-%dT%H:%M:%S.%fZ')
+                out_flattened_properties[prop] = convert_to_datetime(in_flattened_properties[prop]).strftime('%Y-%m-%dT%H:%M:%SZ')
             elif out_types[lookup_key] == 'bool':
                 out_flattened_properties[prop] = convert_to_boolean(in_flattened_properties[prop])
             else:
diff --git a/utils/serializers.py b/utils/serializers.py
index 51135d8..3632e72 100644
--- a/utils/serializers.py
+++ b/utils/serializers.py
@@ -4,7 +4,7 @@ import pytz
 # cf. https://stackoverflow.com/questions/30313243/messagepack-and-datetime
 def decode_datetime(obj):
     if '__datetime__' in obj.keys():
-        tmp = datetime.datetime.strptime(obj["as_str"], "%Y-%m-%dT%H:%M:%SZ")
+        tmp = datetime.datetime.strptime(obj["as_str"], "%Y-%m-%dT%H:%M:%S.%fZ")
         output = pytz.timezone('UTC').localize(tmp)
     elif '__date__' in obj.keys():
         output = datetime.datetime.strptime(obj["as_str"], "%Y-%m-%d")
@@ -24,7 +24,7 @@ def encode_datetime(obj):
 
         tmp2 = tmp1.astimezone(pytz.UTC)
 
-        return {'__datetime__': True, 'as_str': tmp2.strftime("%Y-%m-%dT%H:%M:%SZ")}
+        return {'__datetime__': True, 'as_str': tmp2.strftime("%Y-%m-%dT%H:%M:%S.%fZ")}
 
     if isinstance(obj, datetime.date):
         return {'__date__': True, 'as_str': obj.strftime("%Y-%m-%d")}
-- 
GitLab