Skip to content

Commit 675e01a

Browse files
committed
Fix for DefferedResponseResultEntity and wrong result converting
1 parent 506272c commit 675e01a

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

tb_rest_client/api_client.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ def deserialize(self, response, response_type):
287287
return self.__deserialize(data, response_type)
288288

289289
def __deserialize(self, data, klass):
290-
"""Deserializes dict, list, str into an object.
290+
"""Deserializes dict, list, str into an object..
291291
292292
:param data: dict, list or str.
293293
:param klass: class literal, or string of class name.
@@ -297,7 +297,23 @@ def __deserialize(self, data, klass):
297297
if data is None:
298298
return None
299299

300-
if type(klass) == str:
300+
if klass == "DeferredResultResponseEntity":
301+
return self.__deserialize(data, type(data))
302+
#
303+
# elif type(klass) == str:
304+
# # convert str to class
305+
elif klass in self.NATIVE_TYPES_MAPPING:
306+
klass = self.NATIVE_TYPES_MAPPING[klass]
307+
elif type(data) == list or klass == list:
308+
return_data = [self.__deserialize(sub_data, type(sub_data))
309+
for sub_data in data]
310+
return return_data
311+
312+
elif type(data) == dict or klass == dict:
313+
return_data = {k: self.__deserialize(v, type(v))
314+
for k, v in six.iteritems(data)}
315+
return return_data
316+
elif type(klass) == str:
301317
if klass.startswith('list['):
302318
sub_kls = re.match(r'list\[(.*)\]', klass).group(1)
303319
return [self.__deserialize(sub_data, sub_kls)
@@ -311,7 +327,6 @@ def __deserialize(self, data, klass):
311327
# convert str to class
312328
if klass in self.NATIVE_TYPES_MAPPING:
313329
klass = self.NATIVE_TYPES_MAPPING[klass]
314-
else:
315330
try:
316331
found_class = getattr(tb_rest_client.models.models_pe, klass)
317332
# if sorted(list(found_class.attribute_map.values())) == sorted(list(data.keys())):
@@ -327,7 +342,9 @@ def __deserialize(self, data, klass):
327342
if all(attr in list(found_class.attribute_map.values()) for attr in list(data.keys())):
328343
# if sorted(list(found_class.attribute_map.values())) == sorted(list(data.keys())):
329344
klass = found_class
330-
return self.__deserialize_data(data, klass)
345+
# else:
346+
# return self.__deserialize(data, type(data))
347+
return self.__deserialize_data(data, klass)
331348

332349
def __deserialize_data(self, data, klass):
333350
try:

0 commit comments

Comments
 (0)