Add enum support for model property of python client

This commit is contained in:
geekerzp
2015-07-16 17:24:42 +08:00
parent 157b07e552
commit f0e09ae33a
13 changed files with 287 additions and 38 deletions

View File

@@ -51,8 +51,7 @@ class {{classname}}(object):
{{/allParams}}
:return: {{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}None{{/returnType}}
"""
{{#allParams}}{{#required}}
# verify the required parameter '{{paramName}}' is set
{{#allParams}}{{#required}}# verify the required parameter '{{paramName}}' is set
if {{paramName}} is None:
raise ValueError("Missing the required parameter `{{paramName}}` when calling `{{nickname}}`")
{{/required}}{{/allParams}}

View File

@@ -149,7 +149,7 @@ class ApiClient(object):
# Convert model obj to dict except attributes `swagger_types`, `attribute_map`
# and attributes which value is not None.
# Convert attribute name to json key in model definition for request.
obj_dict = {obj.attribute_map[key]: val
obj_dict = {obj.attribute_map[key[1:]]: val
for key, val in iteritems(obj.__dict__)
if key != 'swagger_types' and key != 'attribute_map' and val is not None}
return {key: self.sanitize_for_serialization(val)

View File

@@ -43,9 +43,21 @@ class {{classname}}(object):
}
{{#vars}}
{{#description}}# {{description}}{{/description}}
self.{{name}} = None # {{{datatype}}}
self._{{name}} = None # {{{datatype}}}
{{/vars}}
{{#vars}}
@property
def {{name}}(self):
return self._{{name}}
@{{name}}.setter
def {{name}}(self, {{name}}):
{{#isEnum}}allowed_values = [{{#allowableValues}}{{#values}}"{{{this}}}"{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}]
if {{name}} not in allowed_values:
raise ValueError("Invalid value for `{{name}}`, must be one of {0}".format(allowed_values))
{{/isEnum}}
self._{{name}} = {{name}}
{{/vars}}
def __repr__(self):
properties = []
for p in self.__dict__: