@@ -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