Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into add-sqlite-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bonicim committed Aug 19, 2020
2 parents 8ca0fea + e06c5fb commit 0442ef1
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions volttron/utils/frame_serialization.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,13 @@
_log = logging.getLogger(__name__)


# python 3.8 formatting errors with utf-8 encoding. The ISO-8859-1 is equivilent to latin-1
ENCODE_FORMAT = 'ISO-8859-1'


def deserialize_frames(frames: List[Frame]) -> List:
decoded = []

for x in frames:
if isinstance(x, list):
decoded.append(deserialize_frames(x))
Expand All @@ -57,7 +62,7 @@ def deserialize_frames(frames: List[Frame]) -> List:
elif isinstance(x, float):
decoded.append(x)
elif isinstance(x, bytes):
decoded.append(x.decode('utf-8'))
decoded.append(x.decode(ENCODE_FORMAT))
elif isinstance(x, str):
decoded.append(x)
elif x is not None:
Expand All @@ -66,27 +71,25 @@ def deserialize_frames(frames: List[Frame]) -> List:
decoded.append(x)
continue
try:
d = x.bytes.decode('utf-8')
d = x.bytes.decode(ENCODE_FORMAT)
except UnicodeDecodeError as e:
_log.debug(e)
_log.error(f"Unicode decode error: {e}")
decoded.append(x)
continue
try:
decoded.append(jsonapi.loads(d))
except JSONDecodeError:
decoded.append(d)
# _log.debug("deserialized: {}".format(decoded))
return decoded


def serialize_frames(data: List[Any]) -> List[Frame]:
frames = []

#_log.info("Serializing: {}".format(data))
for x in data:
try:
if isinstance(x, list) or isinstance(x, dict):
frames.append(Frame(jsonapi.dumps(x).encode('utf-8')))
frames.append(Frame(jsonapi.dumps(x).encode(ENCODE_FORMAT)))
elif isinstance(x, Frame):
frames.append(x)
elif isinstance(x, bytes):
Expand All @@ -100,8 +103,7 @@ def serialize_frames(data: List[Any]) -> List[Frame]:
elif x is None:
frames.append(Frame(x))
else:
#_log.info("serialize_frames:{}".format(x))
frames.append(Frame(x.encode('utf-8')))
frames.append(Frame(x.encode(ENCODE_FORMAT)))
except TypeError as e:
import sys
sys.exit(0)
Expand Down

0 comments on commit 0442ef1

Please sign in to comment.