From 293d7972f167340fe6da3a99abae39f0369e86c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Fri, 11 May 2018 14:36:56 +0200 Subject: [PATCH] Document serialization module --- lib/tfw/networking/serialization.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/tfw/networking/serialization.py b/lib/tfw/networking/serialization.py index 7738323..1eaf933 100644 --- a/lib/tfw/networking/serialization.py +++ b/lib/tfw/networking/serialization.py @@ -29,10 +29,16 @@ def validate_message(message): def serialize_tfw_msg(message): + """ + Create TFW multipart data from message dict + """ return _serialize_all(message['key'], message) def deserialize_tfw_msg(*args): + """ + Return message from TFW multipart data + """ return _deserialize_all(*args)[1] @@ -45,12 +51,20 @@ def _deserialize_all(*args): def _serialize_single(data): + """ + Return input as bytes + (serialize input if it is JSON) + """ if not isinstance(data, str): data = json.dumps(data) return _encode_if_needed(data) def _deserialize_single(data): + """ + Try parsing input as JSON, return it as + string if parsing fails. + """ try: return json.loads(data) except ValueError: @@ -58,12 +72,20 @@ def _deserialize_single(data): def _encode_if_needed(value): + """ + Return input as bytes + (encode if input is string) + """ if isinstance(value, str): value = value.encode('utf-8') return value def _decode_if_needed(value): + """ + Return input as string + (decode if input is bytes) + """ if isinstance(value, (bytes, bytearray)): value = value.decode('utf-8') return value