Python fixes (#3689)

* python: Fix unsupported method exception message

* python: Implement form data collection formatting
This commit is contained in:
Ville Skyttä
2016-09-01 10:05:52 +03:00
committed by wing328
parent e044f9d9bf
commit 8e7d3d1a72
5 changed files with 72 additions and 22 deletions

View File

@@ -163,7 +163,7 @@ class {{classname}}(object):
local_var_files = {}
{{#formParams}}
if '{{paramName}}' in params:
{{#notFile}}form_params.append(('{{baseName}}', params['{{paramName}}'])){{/notFile}}{{#isFile}}local_var_files['{{baseName}}'] = params['{{paramName}}']{{/isFile}}
{{#notFile}}form_params.extend(self.api_client.parameter_to_tuples('{{collectionFormat}}', '{{baseName}}', params['{{paramName}}'])){{/notFile}}{{#isFile}}local_var_files['{{baseName}}'] = params['{{paramName}}']{{/isFile}}
{{/formParams}}
body_params = None

View File

@@ -370,10 +370,35 @@ class ApiClient(object):
body=body)
else:
raise ValueError(
"http method must be `GET`, `HEAD`,"
"http method must be `GET`, `HEAD`, `OPTIONS`,"
" `POST`, `PATCH`, `PUT` or `DELETE`."
)
def parameter_to_tuples(self, collection_format, name, value):
"""
Get parameter as list of tuples according to collection format.
:param str collection_format: Collection format
:param str name: Parameter name
:param value: Parameter value
:return: Parameter as list of tuples
"""
if isinstance(value, (list, tuple)):
if collection_format == "multi":
return [(name, v) for v in value]
else:
if collection_format == "ssv":
delimiter = " "
elif collection_format == "tsv":
delimiter = "\t"
elif collection_format == "pipes":
delimiter = "|"
else: # csv is the default
delimiter = ","
return [(name, delimiter.join(value))]
else:
return [(name, value)]
def prepare_post_parameters(self, post_params=None, files=None):
"""
Builds form parameters.