Skip to content

Commit 5793bec

Browse files
committed
move serde from api client into separate class: p2
1 parent 8c100cf commit 5793bec

File tree

2 files changed

+40
-40
lines changed

2 files changed

+40
-40
lines changed

generator-templates/api_client.mustache

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -81,22 +81,7 @@ class ModelSerDe:
8181
return {key: self.sanitize_for_serialization(val)
8282
for key, val in six.iteritems(obj_dict)}
8383

84-
def deserialize(self, response, response_type):
85-
"""Deserializes response into an object.
86-
87-
:param response: RESTResponse object to be deserialized.
88-
:param response_type: class literal for
89-
deserialized object, or string of class name.
90-
91-
:return: deserialized object.
92-
"""
93-
try:
94-
data = json.loads(response.data)
95-
except ValueError:
96-
data = response.data
97-
return self.__deserialize(data, response_type)
98-
99-
def __deserialize(self, data, klass):
84+
def deserialize_raw(self, data, klass):
10085
"""Deserializes dict, list, str into an object.
10186

10287
:param data: dict, list or str.
@@ -110,12 +95,12 @@ class ModelSerDe:
11095
if type(klass) == str:
11196
if klass.startswith('list['):
11297
sub_kls = re.match(r'list\[(.*)\]', klass).group(1)
113-
return [self.__deserialize(sub_data, sub_kls)
98+
return [self.deserialize_raw(sub_data, sub_kls)
11499
for sub_data in data]
115100

116101
if klass.startswith('dict('):
117102
sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2)
118-
return {k: self.__deserialize(v, sub_kls)
103+
return {k: self.deserialize_raw(v, sub_kls)
119104
for k, v in six.iteritems(data)}
120105

121106
# convert str to class
@@ -222,14 +207,14 @@ class ModelSerDe:
222207
for attr, attr_type in six.iteritems(klass.openapi_types):
223208
if klass.attribute_map[attr] in data:
224209
value = data[klass.attribute_map[attr]]
225-
kwargs[attr] = self.__deserialize(value, attr_type)
210+
kwargs[attr] = self.deserialize_raw(value, attr_type)
226211

227212
instance = klass(**kwargs)
228213

229214
if has_discriminator:
230215
klass_name = instance.get_real_child_model(data)
231216
if klass_name:
232-
instance = self.__deserialize(data, klass_name)
217+
instance = self.deserialize_raw(data, klass_name)
233218
return instance
234219

235220

@@ -441,6 +426,21 @@ class ApiClient(ModelSerDe, object):
441426
response_data.getheaders()))
442427
{{/tornado}}
443428

429+
def deserialize(self, response, response_type):
430+
"""Deserializes response into an object.
431+
432+
:param response: RESTResponse object to be deserialized.
433+
:param response_type: class literal for
434+
deserialized object, or string of class name.
435+
436+
:return: deserialized object.
437+
"""
438+
try:
439+
data = json.loads(response.data)
440+
except ValueError:
441+
data = response.data
442+
return self.deserialize_raw(data, response_type)
443+
444444
def call_api(self, resource_path, method,
445445
path_params=None, query_params=None, header_params=None,
446446
body=None, post_params=None, files=None,

regula/documentreader/webclient/gen/api_client.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -80,22 +80,7 @@ def sanitize_for_serialization(self, obj):
8080
return {key: self.sanitize_for_serialization(val)
8181
for key, val in six.iteritems(obj_dict)}
8282

83-
def deserialize(self, response, response_type):
84-
"""Deserializes response into an object.
85-
86-
:param response: RESTResponse object to be deserialized.
87-
:param response_type: class literal for
88-
deserialized object, or string of class name.
89-
90-
:return: deserialized object.
91-
"""
92-
try:
93-
data = json.loads(response.data)
94-
except ValueError:
95-
data = response.data
96-
return self.__deserialize(data, response_type)
97-
98-
def __deserialize(self, data, klass):
83+
def deserialize_raw(self, data, klass):
9984
"""Deserializes dict, list, str into an object.
10085
10186
:param data: dict, list or str.
@@ -109,12 +94,12 @@ def __deserialize(self, data, klass):
10994
if type(klass) == str:
11095
if klass.startswith('list['):
11196
sub_kls = re.match(r'list\[(.*)\]', klass).group(1)
112-
return [self.__deserialize(sub_data, sub_kls)
97+
return [self.deserialize_raw(sub_data, sub_kls)
11398
for sub_data in data]
11499

115100
if klass.startswith('dict('):
116101
sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2)
117-
return {k: self.__deserialize(v, sub_kls)
102+
return {k: self.deserialize_raw(v, sub_kls)
118103
for k, v in six.iteritems(data)}
119104

120105
# convert str to class
@@ -221,14 +206,14 @@ def __deserialize_model(self, data, klass):
221206
for attr, attr_type in six.iteritems(klass.openapi_types):
222207
if klass.attribute_map[attr] in data:
223208
value = data[klass.attribute_map[attr]]
224-
kwargs[attr] = self.__deserialize(value, attr_type)
209+
kwargs[attr] = self.deserialize_raw(value, attr_type)
225210

226211
instance = klass(**kwargs)
227212

228213
if has_discriminator:
229214
klass_name = instance.get_real_child_model(data)
230215
if klass_name:
231-
instance = self.__deserialize(data, klass_name)
216+
instance = self.deserialize_raw(data, klass_name)
232217
return instance
233218

234219

@@ -411,6 +396,21 @@ def __call_api(
411396
return (return_data, response_data.status,
412397
response_data.getheaders())
413398

399+
def deserialize(self, response, response_type):
400+
"""Deserializes response into an object.
401+
402+
:param response: RESTResponse object to be deserialized.
403+
:param response_type: class literal for
404+
deserialized object, or string of class name.
405+
406+
:return: deserialized object.
407+
"""
408+
try:
409+
data = json.loads(response.data)
410+
except ValueError:
411+
data = response.data
412+
return self.deserialize_raw(data, response_type)
413+
414414
def call_api(self, resource_path, method,
415415
path_params=None, query_params=None, header_params=None,
416416
body=None, post_params=None, files=None,

0 commit comments

Comments
 (0)