Skip to content

Commit 4ecb997

Browse files
committed
fixing attribute and unit encodings for python3 bytestrings
1 parent f51a590 commit 4ecb997

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

awips/dataaccess/PyGeometryData.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ def getNumber(self, param):
6666
raise TypeError("Data for parameter " + param + " is not a numeric type.")
6767

6868
def getUnit(self, param):
69-
unit = self.__dataMap[param][2]
7069
if six.PY2:
71-
return unit
70+
return self.__dataMap[param][2]
71+
unit = self.__dataMap[param.encode('utf-8')][2]
7272
if unit is not None:
7373
return unit.decode('utf-8')
7474
return unit

dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/AbstractResponseData.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,18 @@ def getAttributes(self):
3636
if six.PY2:
3737
return self.attributes
3838
else:
39-
return [item.decode('utf-8') for item in self.attributes]
39+
return self.convert(self.attributes)
4040

4141
def setAttributes(self, attributes):
4242
self.attributes = attributes
4343

44+
def convert(self, data):
45+
if isinstance(data, dict):
46+
return dict(map(self.convert, data.items()))
47+
if isinstance(data, bytes):
48+
return data.decode('utf-8')
49+
if isinstance(data, tuple):
50+
return tuple(map(self.convert, data))
51+
if isinstance(data, list):
52+
return list(map(self.convert, data))
53+
return data

0 commit comments

Comments
 (0)