[python] asyncio supports _preload_content; remove unsed imports (#107)

* chore: update python samples

* feat: python/asyncio support for _preload_content

* feat: remove unused imports from python clients; fix discriminator
This commit is contained in:
Tomasz Prus 2018-05-24 17:10:07 +02:00 committed by William Cheng
parent 76b7307a6e
commit 7184f1ec68
31 changed files with 44 additions and 66 deletions

View File

@ -10,6 +10,7 @@ import ssl
import aiohttp
import certifi
import asyncio
# python 2 and python 3 compatibility library
from six.moves.urllib.parse import urlencode
@ -70,6 +71,9 @@ class RESTClientObject(object):
connector=connector
)
def __del__(self):
asyncio.ensure_future(self.pool_manager.close())
async def request(self, method, url, query_params=None, headers=None,
body=None, post_params=None, _preload_content=True,
_request_timeout=None):
@ -152,15 +156,17 @@ class RESTClientObject(object):
declared content type."""
raise ApiException(status=0, reason=msg)
async with self.pool_manager.request(**args) as r:
r = await self.pool_manager.request(**args)
if _preload_content:
data = await r.text()
r = RESTResponse(r, data)
# log response body
logger.debug("response body: %s", r.data)
# log response body
logger.debug("response body: %s", r.data)
if not 200 <= r.status <= 299:
raise ApiException(http_resp=r)
if not 200 <= r.status <= 299:
raise ApiException(http_resp=r)
return r

View File

@ -6,10 +6,6 @@ import pprint
import re # noqa: F401
import six
{{#imports}}{{#-first}}
{{/-first}}
{{import}} # noqa: F401,E501
{{/imports}}
{{#models}}
@ -170,7 +166,7 @@ class {{classname}}(object):
{{#discriminator}}
def get_real_child_model(self, data):
"""Returns the real base class specified by the discriminator"""
discriminator_value = data[self.discriminator].lower()
discriminator_value = data[self.discriminator]
return self.discriminator_value_class_map.get(discriminator_value)
{{/discriminator}}

View File

@ -419,7 +419,7 @@ Name | Type | Description | Notes
**enum_query_string** | **str**| Query parameter enum test (string) | [optional] [default to &#39;-efg&#39;]
**enum_query_integer** | **int**| Query parameter enum test (double) | [optional]
**enum_query_double** | **float**| Query parameter enum test (double) | [optional]
**enum_form_string_array** | **list[str]**| Form parameter enum test (string array) | [optional] [default to &#39;$&#39;]
**enum_form_string_array** | [**list[str]**](str.md)| Form parameter enum test (string array) | [optional] [default to &#39;$&#39;]
**enum_form_string** | **str**| Form parameter enum test (string) | [optional] [default to &#39;-efg&#39;]
### Return type

View File

@ -102,7 +102,7 @@ class Animal(object):
def get_real_child_model(self, data):
"""Returns the real base class specified by the discriminator"""
discriminator_value = data[self.discriminator].lower()
discriminator_value = data[self.discriminator]
return self.discriminator_value_class_map.get(discriminator_value)
def to_dict(self):

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class AnimalFarm(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.read_only_first import ReadOnlyFirst # noqa: F401,E501
class ArrayTest(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class Cat(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class Dog(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.outer_enum import OuterEnum # noqa: F401,E501
class EnumTest(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class MixedPropertiesAndAdditionalPropertiesClass(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,9 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.category import Category # noqa: F401,E501
from petstore_api.models.tag import Tag # noqa: F401,E501
class Pet(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -18,6 +18,7 @@ import ssl
import aiohttp
import certifi
import asyncio
# python 2 and python 3 compatibility library
from six.moves.urllib.parse import urlencode
@ -78,6 +79,9 @@ class RESTClientObject(object):
connector=connector
)
def __del__(self):
asyncio.ensure_future(self.pool_manager.close())
async def request(self, method, url, query_params=None, headers=None,
body=None, post_params=None, _preload_content=True,
_request_timeout=None):
@ -160,15 +164,17 @@ class RESTClientObject(object):
declared content type."""
raise ApiException(status=0, reason=msg)
async with self.pool_manager.request(**args) as r:
r = await self.pool_manager.request(**args)
if _preload_content:
data = await r.text()
r = RESTResponse(r, data)
# log response body
logger.debug("response body: %s", r.data)
# log response body
logger.debug("response body: %s", r.data)
if not 200 <= r.status <= 299:
raise ApiException(http_resp=r)
if not 200 <= r.status <= 299:
raise ApiException(http_resp=r)
return r

View File

@ -419,7 +419,7 @@ Name | Type | Description | Notes
**enum_query_string** | **str**| Query parameter enum test (string) | [optional] [default to &#39;-efg&#39;]
**enum_query_integer** | **int**| Query parameter enum test (double) | [optional]
**enum_query_double** | **float**| Query parameter enum test (double) | [optional]
**enum_form_string_array** | **list[str]**| Form parameter enum test (string array) | [optional] [default to &#39;$&#39;]
**enum_form_string_array** | [**list[str]**](str.md)| Form parameter enum test (string array) | [optional] [default to &#39;$&#39;]
**enum_form_string** | **str**| Form parameter enum test (string) | [optional] [default to &#39;-efg&#39;]
### Return type

View File

@ -102,7 +102,7 @@ class Animal(object):
def get_real_child_model(self, data):
"""Returns the real base class specified by the discriminator"""
discriminator_value = data[self.discriminator].lower()
discriminator_value = data[self.discriminator]
return self.discriminator_value_class_map.get(discriminator_value)
def to_dict(self):

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class AnimalFarm(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.read_only_first import ReadOnlyFirst # noqa: F401,E501
class ArrayTest(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class Cat(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class Dog(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.outer_enum import OuterEnum # noqa: F401,E501
class EnumTest(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class MixedPropertiesAndAdditionalPropertiesClass(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,9 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.category import Category # noqa: F401,E501
from petstore_api.models.tag import Tag # noqa: F401,E501
class Pet(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -419,7 +419,7 @@ Name | Type | Description | Notes
**enum_query_string** | **str**| Query parameter enum test (string) | [optional] [default to &#39;-efg&#39;]
**enum_query_integer** | **int**| Query parameter enum test (double) | [optional]
**enum_query_double** | **float**| Query parameter enum test (double) | [optional]
**enum_form_string_array** | **list[str]**| Form parameter enum test (string array) | [optional] [default to &#39;$&#39;]
**enum_form_string_array** | [**list[str]**](str.md)| Form parameter enum test (string array) | [optional] [default to &#39;$&#39;]
**enum_form_string** | **str**| Form parameter enum test (string) | [optional] [default to &#39;-efg&#39;]
### Return type

View File

@ -102,7 +102,7 @@ class Animal(object):
def get_real_child_model(self, data):
"""Returns the real base class specified by the discriminator"""
discriminator_value = data[self.discriminator].lower()
discriminator_value = data[self.discriminator]
return self.discriminator_value_class_map.get(discriminator_value)
def to_dict(self):

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class AnimalFarm(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.read_only_first import ReadOnlyFirst # noqa: F401,E501
class ArrayTest(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class Cat(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class Dog(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.outer_enum import OuterEnum # noqa: F401,E501
class EnumTest(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,8 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.animal import Animal # noqa: F401,E501
class MixedPropertiesAndAdditionalPropertiesClass(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -15,9 +15,6 @@ import re # noqa: F401
import six
from petstore_api.models.category import Category # noqa: F401,E501
from petstore_api.models.tag import Tag # noqa: F401,E501
class Pet(object):
"""NOTE: This class is auto generated by OpenAPI Generator.

View File

@ -71,6 +71,21 @@ class DeserializationTests(unittest.TestCase):
self.assertTrue(isinstance(deserialized, dict))
self.assertTrue(isinstance(deserialized['pet'], petstore_api.Pet))
def test_deserialize_dict_str_dog(self):
""" deserialize dict(str, Dog), use discriminator"""
data = {
'dog': {
"id": 0,
"className": "Dog",
"color": "white",
"bread": "Jack Russel Terrier"
}
}
deserialized = self.deserialize(data, 'dict(str, Animal)')
self.assertTrue(isinstance(deserialized, dict))
self.assertTrue(isinstance(deserialized['dog'], petstore_api.Dog))
def test_deserialize_dict_str_int(self):
""" deserialize dict(str, int) """
data = {