From b84c4d8b9898a6684574ab9eebbf72e5560a624e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borgstrom=20=E2=99=95?= Date: Fri, 23 Mar 2018 20:58:07 -0700 Subject: [PATCH 1/3] Allow the json cls argument to be easily overriden --- src/motion/marshal.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/motion/marshal.py b/src/motion/marshal.py index 5c2fbce..99d49df 100644 --- a/src/motion/marshal.py +++ b/src/motion/marshal.py @@ -13,18 +13,21 @@ def __init__(self, error, payload): class JSONMarshal(object): """Simple JSON Marshal""" + JSON_DUMP_CLS = None + JSON_LOAD_CLS = None + def to_bytes(self, event_name, payload): try: return json.dumps({ 'event_name': event_name, 'payload': payload - }) + }, cls=self.JSON_DUMP_CLS) except ValueError: raise MarshalFailure("Could not convert payload to JSON", payload) def to_native(self, payload): try: - native = json.loads(payload) + native = json.loads(payload, cls=self.JSON_LOAD_CLS) except ValueError: raise MarshalFailure("Could not load valid JSON from payload", payload) return native['event_name'], native['payload'] From 5d0e45db32ad549cc7539a280c31fe5a7309d887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borgstrom=20=E2=99=95?= Date: Fri, 23 Mar 2018 21:01:15 -0700 Subject: [PATCH 2/3] Change naming to match upstream class names --- src/motion/marshal.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/motion/marshal.py b/src/motion/marshal.py index 99d49df..93969f0 100644 --- a/src/motion/marshal.py +++ b/src/motion/marshal.py @@ -13,21 +13,21 @@ def __init__(self, error, payload): class JSONMarshal(object): """Simple JSON Marshal""" - JSON_DUMP_CLS = None - JSON_LOAD_CLS = None + JSONEncoder = None + JSONDecoder = None def to_bytes(self, event_name, payload): try: return json.dumps({ 'event_name': event_name, 'payload': payload - }, cls=self.JSON_DUMP_CLS) + }, cls=self.JSONEncoder) except ValueError: raise MarshalFailure("Could not convert payload to JSON", payload) def to_native(self, payload): try: - native = json.loads(payload, cls=self.JSON_LOAD_CLS) + native = json.loads(payload, cls=self.JSONDecoder) except ValueError: raise MarshalFailure("Could not load valid JSON from payload", payload) return native['event_name'], native['payload'] From df8ff84410960e710a9f7082975b89dcbead18f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borgstrom=20=E2=99=95?= Date: Fri, 23 Mar 2018 21:03:02 -0700 Subject: [PATCH 3/3] Remove whitespace --- src/motion/marshal.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/motion/marshal.py b/src/motion/marshal.py index 93969f0..b818837 100644 --- a/src/motion/marshal.py +++ b/src/motion/marshal.py @@ -15,7 +15,7 @@ class JSONMarshal(object): """Simple JSON Marshal""" JSONEncoder = None JSONDecoder = None - + def to_bytes(self, event_name, payload): try: return json.dumps({