@@ -287,7 +287,7 @@ def deserialize(self, response, response_type):
287
287
return self .__deserialize (data , response_type )
288
288
289
289
def __deserialize (self , data , klass ):
290
- """Deserializes dict, list, str into an object.
290
+ """Deserializes dict, list, str into an object..
291
291
292
292
:param data: dict, list or str.
293
293
:param klass: class literal, or string of class name.
@@ -297,7 +297,23 @@ def __deserialize(self, data, klass):
297
297
if data is None :
298
298
return None
299
299
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 :
301
317
if klass .startswith ('list[' ):
302
318
sub_kls = re .match (r'list\[(.*)\]' , klass ).group (1 )
303
319
return [self .__deserialize (sub_data , sub_kls )
@@ -311,7 +327,6 @@ def __deserialize(self, data, klass):
311
327
# convert str to class
312
328
if klass in self .NATIVE_TYPES_MAPPING :
313
329
klass = self .NATIVE_TYPES_MAPPING [klass ]
314
- else :
315
330
try :
316
331
found_class = getattr (tb_rest_client .models .models_pe , klass )
317
332
# if sorted(list(found_class.attribute_map.values())) == sorted(list(data.keys())):
@@ -327,7 +342,9 @@ def __deserialize(self, data, klass):
327
342
if all (attr in list (found_class .attribute_map .values ()) for attr in list (data .keys ())):
328
343
# if sorted(list(found_class.attribute_map.values())) == sorted(list(data.keys())):
329
344
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 )
331
348
332
349
def __deserialize_data (self , data , klass ):
333
350
try :
0 commit comments