Skip to content

Commit 4a1c70f

Browse files
ddurham2wing328
andauthored
fix: python client generator didn't respect range response specification (#16451)
* bug: python client generator didn't respect range response specification (e.g. "1XX", "2XX", etx.). Return values tended to become None as a result * update samples --------- Co-authored-by: William Cheng <wing328hk@gmail.com>
1 parent e73143d commit 4a1c70f

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

modules/openapi-generator/src/main/resources/python/api_client.mustache

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,9 @@ class ApiClient(object):
234234
# data needs deserialization or returns HTTP data (deserialized) only
235235
if _preload_content or _return_http_data_only:
236236
response_type = response_types_map.get(str(response_data.status), None)
237+
if not response_type and type(response_data.status) == int and 100 <= response_data.status <= 599:
238+
# if not found, look for '1XX', '2XX', etc.
239+
response_type = response_types_map.get(str(response_data.status)[0] + "XX", None)
237240

238241
if response_type == "bytearray":
239242
response_data.data = response_data.data

samples/client/echo_api/python/openapi_client/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,9 @@ def __call_api(
227227
# data needs deserialization or returns HTTP data (deserialized) only
228228
if _preload_content or _return_http_data_only:
229229
response_type = response_types_map.get(str(response_data.status), None)
230+
if not response_type and type(response_data.status) == int and 100 <= response_data.status <= 599:
231+
# if not found, look for '1XX', '2XX', etc.
232+
response_type = response_types_map.get(str(response_data.status)[0] + "XX", None)
230233

231234
if response_type == "bytearray":
232235
response_data.data = response_data.data

samples/openapi3/client/petstore/python-aiohttp/petstore_api/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,9 @@ async def __call_api(
227227
# data needs deserialization or returns HTTP data (deserialized) only
228228
if _preload_content or _return_http_data_only:
229229
response_type = response_types_map.get(str(response_data.status), None)
230+
if not response_type and type(response_data.status) == int and 100 <= response_data.status <= 599:
231+
# if not found, look for '1XX', '2XX', etc.
232+
response_type = response_types_map.get(str(response_data.status)[0] + "XX", None)
230233

231234
if response_type == "bytearray":
232235
response_data.data = response_data.data

samples/openapi3/client/petstore/python/petstore_api/api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,9 @@ def __call_api(
226226
# data needs deserialization or returns HTTP data (deserialized) only
227227
if _preload_content or _return_http_data_only:
228228
response_type = response_types_map.get(str(response_data.status), None)
229+
if not response_type and type(response_data.status) == int and 100 <= response_data.status <= 599:
230+
# if not found, look for '1XX', '2XX', etc.
231+
response_type = response_types_map.get(str(response_data.status)[0] + "XX", None)
229232

230233
if response_type == "bytearray":
231234
response_data.data = response_data.data

0 commit comments

Comments
 (0)