forked from loafle/openapi-generator-original
[python-server] Support python 3.7 for all server-generators (#2884)
* Support python 3.7 for all server-generators Signed-off-by: Guillaume Smaha <guillaume.smaha@gmail.com> * Rename typing_patch.py to typing_utils.py * Renaming typing_patch.mustache to typing_utils.mustache * Fix comparaison in typing_utils.is_dict for python3.7
This commit is contained in:
parent
14118807ba
commit
20b8eff6e3
@ -202,6 +202,7 @@ public class PythonAbstractConnexionServerCodegen extends DefaultCodegen impleme
|
|||||||
}
|
}
|
||||||
supportingFiles.add(new SupportingFile("__main__.mustache", packagePath(), "__main__.py"));
|
supportingFiles.add(new SupportingFile("__main__.mustache", packagePath(), "__main__.py"));
|
||||||
supportingFiles.add(new SupportingFile("util.mustache", packagePath(), "util.py"));
|
supportingFiles.add(new SupportingFile("util.mustache", packagePath(), "util.py"));
|
||||||
|
supportingFiles.add(new SupportingFile("typing_utils.mustache", packagePath(), "typing_utils.py"));
|
||||||
supportingFiles.add(new SupportingFile("__init__.mustache", packagePath() + File.separatorChar + packageToPath(controllerPackage), "__init__.py"));
|
supportingFiles.add(new SupportingFile("__init__.mustache", packagePath() + File.separatorChar + packageToPath(controllerPackage), "__init__.py"));
|
||||||
supportingFiles.add(new SupportingFile("security_controller_.mustache", packagePath() + File.separatorChar + packageToPath(controllerPackage), "security_controller_.py"));
|
supportingFiles.add(new SupportingFile("security_controller_.mustache", packagePath() + File.separatorChar + packageToPath(controllerPackage), "security_controller_.py"));
|
||||||
supportingFiles.add(new SupportingFile("__init__model.mustache", packagePath() + File.separatorChar + packageToPath(modelPackage), "__init__.py"));
|
supportingFiles.add(new SupportingFile("__init__model.mustache", packagePath() + File.separatorChar + packageToPath(modelPackage), "__init__.py"));
|
||||||
|
@ -118,6 +118,7 @@ public class PythonBluePlanetServerCodegen extends PythonAbstractConnexionServer
|
|||||||
supportingFiles.add(new SupportingFile("app/{{packageName}}/__main__.mustache", APP_PACKAGE_PATH, "__main__.py"));
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/__main__.mustache", APP_PACKAGE_PATH, "__main__.py"));
|
||||||
supportingFiles.add(new SupportingFile("app/{{packageName}}/encoder.mustache", APP_PACKAGE_PATH, "encoder.py"));
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/encoder.mustache", APP_PACKAGE_PATH, "encoder.py"));
|
||||||
supportingFiles.add(new SupportingFile("app/{{packageName}}/util.mustache", APP_PACKAGE_PATH, "util.py"));
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/util.mustache", APP_PACKAGE_PATH, "util.py"));
|
||||||
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/typing_utils.mustache", APP_PACKAGE_PATH, "typing_utils.py"));
|
||||||
|
|
||||||
supportingFiles.add(new SupportingFile("app/{{packageName}}/controllers/__init__.mustache", CONTROLLER_PATH, "__init__.py"));
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/controllers/__init__.mustache", CONTROLLER_PATH, "__init__.py"));
|
||||||
|
|
||||||
@ -192,6 +193,7 @@ public class PythonBluePlanetServerCodegen extends PythonAbstractConnexionServer
|
|||||||
supportingFiles.add(new SupportingFile("app/{{packageName}}/__main__.mustache", APP_PACKAGE_PATH, "__main__.py"));
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/__main__.mustache", APP_PACKAGE_PATH, "__main__.py"));
|
||||||
supportingFiles.add(new SupportingFile("app/{{packageName}}/encoder.mustache", APP_PACKAGE_PATH, "encoder.py"));
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/encoder.mustache", APP_PACKAGE_PATH, "encoder.py"));
|
||||||
supportingFiles.add(new SupportingFile("app/{{packageName}}/util.mustache", APP_PACKAGE_PATH, "util.py"));
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/util.mustache", APP_PACKAGE_PATH, "util.py"));
|
||||||
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/typing_utils.mustache", APP_PACKAGE_PATH, "typing_utils.py"));
|
||||||
|
|
||||||
supportingFiles.add(new SupportingFile("app/{{packageName}}/controllers/__init__.mustache", CONTROLLER_PATH, "__init__.py"));
|
supportingFiles.add(new SupportingFile("app/{{packageName}}/controllers/__init__.mustache", CONTROLLER_PATH, "__init__.py"));
|
||||||
|
|
||||||
|
32
modules/openapi-generator/src/main/resources/python-aiohttp/typing_utils.mustache
vendored
Normal file
32
modules/openapi-generator/src/main/resources/python-aiohttp/typing_utils.mustache
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import typing
|
import typing
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
from {{packageName}} import typing_utils
|
||||||
|
|
||||||
T = typing.TypeVar('T')
|
T = typing.TypeVar('T')
|
||||||
Class = typing.Type[T]
|
Class = typing.Type[T]
|
||||||
@ -26,10 +27,10 @@ def _deserialize(data: Union[dict, list, str], klass: Union[Class, str]) -> Unio
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
import typing
|
import typing
|
||||||
|
from {{packageName}} import typing_utils
|
||||||
|
|
||||||
|
|
||||||
def _deserialize(data, klass):
|
def _deserialize(data, klass):
|
||||||
@ -23,10 +24,10 @@ def _deserialize(data, klass):
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
32
modules/openapi-generator/src/main/resources/python-flask/typing_utils.mustache
vendored
Normal file
32
modules/openapi-generator/src/main/resources/python-flask/typing_utils.mustache
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
import typing
|
import typing
|
||||||
|
from {{packageName}} import typing_utils
|
||||||
|
|
||||||
|
|
||||||
def _deserialize(data, klass):
|
def _deserialize(data, klass):
|
||||||
@ -23,10 +24,10 @@ def _deserialize(data, klass):
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
@ -1 +1 @@
|
|||||||
4.0.0-SNAPSHOT
|
4.0.0
|
@ -1,6 +1,7 @@
|
|||||||
openapi: 3.0.0
|
openapi: 3.0.0
|
||||||
info:
|
info:
|
||||||
description: This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
description: This is a sample server Petstore server. For this sample, you can use
|
||||||
|
the api key `special-key` to test the authorization filters.
|
||||||
license:
|
license:
|
||||||
name: Apache-2.0
|
name: Apache-2.0
|
||||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
@ -92,7 +93,6 @@ paths:
|
|||||||
description: Invalid status value
|
description: Invalid status value
|
||||||
security:
|
security:
|
||||||
- petstore_auth:
|
- petstore_auth:
|
||||||
- write:pets
|
|
||||||
- read:pets
|
- read:pets
|
||||||
summary: Finds Pets by status
|
summary: Finds Pets by status
|
||||||
tags:
|
tags:
|
||||||
@ -101,7 +101,8 @@ paths:
|
|||||||
/pet/findByTags:
|
/pet/findByTags:
|
||||||
get:
|
get:
|
||||||
deprecated: true
|
deprecated: true
|
||||||
description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
|
description: Multiple tags can be provided with comma separated strings. Use
|
||||||
|
tag1, tag2, tag3 for testing.
|
||||||
operationId: find_pets_by_tags
|
operationId: find_pets_by_tags
|
||||||
parameters:
|
parameters:
|
||||||
- description: Tags to filter by
|
- description: Tags to filter by
|
||||||
@ -141,7 +142,6 @@ paths:
|
|||||||
description: Invalid tag value
|
description: Invalid tag value
|
||||||
security:
|
security:
|
||||||
- petstore_auth:
|
- petstore_auth:
|
||||||
- write:pets
|
|
||||||
- read:pets
|
- read:pets
|
||||||
summary: Finds Pets by tags
|
summary: Finds Pets by tags
|
||||||
tags:
|
tags:
|
||||||
@ -337,7 +337,8 @@ paths:
|
|||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
/store/order/{orderId}:
|
/store/order/{orderId}:
|
||||||
delete:
|
delete:
|
||||||
description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
|
description: For valid response try integer IDs with value < 1000. Anything
|
||||||
|
above 1000 or nonintegers will generate API errors
|
||||||
operationId: delete_order
|
operationId: delete_order
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of the order that needs to be deleted
|
- description: ID of the order that needs to be deleted
|
||||||
@ -358,7 +359,8 @@ paths:
|
|||||||
- store
|
- store
|
||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
get:
|
get:
|
||||||
description: For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
|
description: For valid response try integer IDs with value <= 5 or > 10. Other
|
||||||
|
values will generated exceptions
|
||||||
operationId: get_order_by_id
|
operationId: get_order_by_id
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of pet that needs to be fetched
|
- description: ID of pet that needs to be fetched
|
||||||
@ -471,7 +473,8 @@ paths:
|
|||||||
description: successful operation
|
description: successful operation
|
||||||
headers:
|
headers:
|
||||||
Set-Cookie:
|
Set-Cookie:
|
||||||
description: Cookie authentication key for use with the `auth_cookie` apiKey authentication.
|
description: Cookie authentication key for use with the `auth_cookie`
|
||||||
|
apiKey authentication.
|
||||||
explode: false
|
explode: false
|
||||||
schema:
|
schema:
|
||||||
example: AUTH_KEY=abcde12345; Path=/; HttpOnly
|
example: AUTH_KEY=abcde12345; Path=/; HttpOnly
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
import typing
|
import typing
|
||||||
|
from openapi_server import typing_utils
|
||||||
|
|
||||||
|
|
||||||
def _deserialize(data, klass):
|
def _deserialize(data, klass):
|
||||||
@ -23,10 +24,10 @@ def _deserialize(data, klass):
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
@ -1 +1 @@
|
|||||||
4.0.0-SNAPSHOT
|
4.0.0
|
@ -1,6 +1,7 @@
|
|||||||
openapi: 3.0.0
|
openapi: 3.0.0
|
||||||
info:
|
info:
|
||||||
description: This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
description: This is a sample server Petstore server. For this sample, you can use
|
||||||
|
the api key `special-key` to test the authorization filters.
|
||||||
license:
|
license:
|
||||||
name: Apache-2.0
|
name: Apache-2.0
|
||||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
@ -92,7 +93,6 @@ paths:
|
|||||||
description: Invalid status value
|
description: Invalid status value
|
||||||
security:
|
security:
|
||||||
- petstore_auth:
|
- petstore_auth:
|
||||||
- write:pets
|
|
||||||
- read:pets
|
- read:pets
|
||||||
summary: Finds Pets by status
|
summary: Finds Pets by status
|
||||||
tags:
|
tags:
|
||||||
@ -101,7 +101,8 @@ paths:
|
|||||||
/pet/findByTags:
|
/pet/findByTags:
|
||||||
get:
|
get:
|
||||||
deprecated: true
|
deprecated: true
|
||||||
description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
|
description: Multiple tags can be provided with comma separated strings. Use
|
||||||
|
tag1, tag2, tag3 for testing.
|
||||||
operationId: find_pets_by_tags
|
operationId: find_pets_by_tags
|
||||||
parameters:
|
parameters:
|
||||||
- description: Tags to filter by
|
- description: Tags to filter by
|
||||||
@ -141,7 +142,6 @@ paths:
|
|||||||
description: Invalid tag value
|
description: Invalid tag value
|
||||||
security:
|
security:
|
||||||
- petstore_auth:
|
- petstore_auth:
|
||||||
- write:pets
|
|
||||||
- read:pets
|
- read:pets
|
||||||
summary: Finds Pets by tags
|
summary: Finds Pets by tags
|
||||||
tags:
|
tags:
|
||||||
@ -337,7 +337,8 @@ paths:
|
|||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
/store/order/{orderId}:
|
/store/order/{orderId}:
|
||||||
delete:
|
delete:
|
||||||
description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
|
description: For valid response try integer IDs with value < 1000. Anything
|
||||||
|
above 1000 or nonintegers will generate API errors
|
||||||
operationId: delete_order
|
operationId: delete_order
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of the order that needs to be deleted
|
- description: ID of the order that needs to be deleted
|
||||||
@ -358,7 +359,8 @@ paths:
|
|||||||
- store
|
- store
|
||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
get:
|
get:
|
||||||
description: For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
|
description: For valid response try integer IDs with value <= 5 or > 10. Other
|
||||||
|
values will generated exceptions
|
||||||
operationId: get_order_by_id
|
operationId: get_order_by_id
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of pet that needs to be fetched
|
- description: ID of pet that needs to be fetched
|
||||||
@ -471,7 +473,8 @@ paths:
|
|||||||
description: successful operation
|
description: successful operation
|
||||||
headers:
|
headers:
|
||||||
Set-Cookie:
|
Set-Cookie:
|
||||||
description: Cookie authentication key for use with the `auth_cookie` apiKey authentication.
|
description: Cookie authentication key for use with the `auth_cookie`
|
||||||
|
apiKey authentication.
|
||||||
explode: false
|
explode: false
|
||||||
schema:
|
schema:
|
||||||
example: AUTH_KEY=abcde12345; Path=/; HttpOnly
|
example: AUTH_KEY=abcde12345; Path=/; HttpOnly
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
import typing
|
import typing
|
||||||
|
from openapi_server import typing_utils
|
||||||
|
|
||||||
|
|
||||||
def _deserialize(data, klass):
|
def _deserialize(data, klass):
|
||||||
@ -23,10 +24,10 @@ def _deserialize(data, klass):
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
@ -1 +1 @@
|
|||||||
4.0.0-SNAPSHOT
|
4.0.0
|
@ -1,6 +1,7 @@
|
|||||||
openapi: 3.0.1
|
openapi: 3.0.1
|
||||||
info:
|
info:
|
||||||
description: This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
description: This is a sample server Petstore server. For this sample, you can use
|
||||||
|
the api key `special-key` to test the authorization filters.
|
||||||
license:
|
license:
|
||||||
name: Apache-2.0
|
name: Apache-2.0
|
||||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
@ -123,7 +124,8 @@ paths:
|
|||||||
/pet/findByTags:
|
/pet/findByTags:
|
||||||
get:
|
get:
|
||||||
deprecated: true
|
deprecated: true
|
||||||
description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
|
description: Multiple tags can be provided with comma separated strings. Use
|
||||||
|
tag1, tag2, tag3 for testing.
|
||||||
operationId: find_pets_by_tags
|
operationId: find_pets_by_tags
|
||||||
parameters:
|
parameters:
|
||||||
- description: Tags to filter by
|
- description: Tags to filter by
|
||||||
@ -347,7 +349,8 @@ paths:
|
|||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
/store/order/{orderId}:
|
/store/order/{orderId}:
|
||||||
delete:
|
delete:
|
||||||
description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
|
description: For valid response try integer IDs with value < 1000. Anything
|
||||||
|
above 1000 or nonintegers will generate API errors
|
||||||
operationId: delete_order
|
operationId: delete_order
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of the order that needs to be deleted
|
- description: ID of the order that needs to be deleted
|
||||||
@ -368,7 +371,8 @@ paths:
|
|||||||
- store
|
- store
|
||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
get:
|
get:
|
||||||
description: For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
|
description: For valid response try integer IDs with value <= 5 or > 10. Other
|
||||||
|
values will generated exceptions
|
||||||
operationId: get_order_by_id
|
operationId: get_order_by_id
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of pet that needs to be fetched
|
- description: ID of pet that needs to be fetched
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import typing
|
import typing
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
from openapi_server import typing_utils
|
||||||
|
|
||||||
T = typing.TypeVar('T')
|
T = typing.TypeVar('T')
|
||||||
Class = typing.Type[T]
|
Class = typing.Type[T]
|
||||||
@ -26,10 +27,10 @@ def _deserialize(data: Union[dict, list, str], klass: Union[Class, str]) -> Unio
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
@ -1 +1 @@
|
|||||||
4.0.0-SNAPSHOT
|
4.0.0
|
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
import typing
|
import typing
|
||||||
|
from openapi_server import typing_utils
|
||||||
|
|
||||||
|
|
||||||
def _deserialize(data, klass):
|
def _deserialize(data, klass):
|
||||||
@ -23,10 +24,10 @@ def _deserialize(data, klass):
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
@ -1 +1 @@
|
|||||||
4.0.0-SNAPSHOT
|
4.0.0
|
@ -1,6 +1,7 @@
|
|||||||
openapi: 3.0.1
|
openapi: 3.0.1
|
||||||
info:
|
info:
|
||||||
description: This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
description: This is a sample server Petstore server. For this sample, you can use
|
||||||
|
the api key `special-key` to test the authorization filters.
|
||||||
license:
|
license:
|
||||||
name: Apache-2.0
|
name: Apache-2.0
|
||||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
@ -121,7 +122,8 @@ paths:
|
|||||||
/pet/findByTags:
|
/pet/findByTags:
|
||||||
get:
|
get:
|
||||||
deprecated: true
|
deprecated: true
|
||||||
description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
|
description: Multiple tags can be provided with comma separated strings. Use
|
||||||
|
tag1, tag2, tag3 for testing.
|
||||||
operationId: find_pets_by_tags
|
operationId: find_pets_by_tags
|
||||||
parameters:
|
parameters:
|
||||||
- description: Tags to filter by
|
- description: Tags to filter by
|
||||||
@ -340,7 +342,8 @@ paths:
|
|||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
/store/order/{orderId}:
|
/store/order/{orderId}:
|
||||||
delete:
|
delete:
|
||||||
description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
|
description: For valid response try integer IDs with value < 1000. Anything
|
||||||
|
above 1000 or nonintegers will generate API errors
|
||||||
operationId: delete_order
|
operationId: delete_order
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of the order that needs to be deleted
|
- description: ID of the order that needs to be deleted
|
||||||
@ -361,7 +364,8 @@ paths:
|
|||||||
- store
|
- store
|
||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
get:
|
get:
|
||||||
description: For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
|
description: For valid response try integer IDs with value <= 5 or > 10. Other
|
||||||
|
values will generated exceptions
|
||||||
operationId: get_order_by_id
|
operationId: get_order_by_id
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of pet that needs to be fetched
|
- description: ID of pet that needs to be fetched
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
import typing
|
import typing
|
||||||
|
from openapi_server import typing_utils
|
||||||
|
|
||||||
|
|
||||||
def _deserialize(data, klass):
|
def _deserialize(data, klass):
|
||||||
@ -23,10 +24,10 @@ def _deserialize(data, klass):
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
@ -1 +1 @@
|
|||||||
4.0.0-SNAPSHOT
|
4.0.0
|
@ -1,6 +1,7 @@
|
|||||||
openapi: 3.0.1
|
openapi: 3.0.1
|
||||||
info:
|
info:
|
||||||
description: This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
description: This is a sample server Petstore server. For this sample, you can use
|
||||||
|
the api key `special-key` to test the authorization filters.
|
||||||
license:
|
license:
|
||||||
name: Apache-2.0
|
name: Apache-2.0
|
||||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
@ -121,7 +122,8 @@ paths:
|
|||||||
/pet/findByTags:
|
/pet/findByTags:
|
||||||
get:
|
get:
|
||||||
deprecated: true
|
deprecated: true
|
||||||
description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
|
description: Multiple tags can be provided with comma separated strings. Use
|
||||||
|
tag1, tag2, tag3 for testing.
|
||||||
operationId: find_pets_by_tags
|
operationId: find_pets_by_tags
|
||||||
parameters:
|
parameters:
|
||||||
- description: Tags to filter by
|
- description: Tags to filter by
|
||||||
@ -340,7 +342,8 @@ paths:
|
|||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
/store/order/{orderId}:
|
/store/order/{orderId}:
|
||||||
delete:
|
delete:
|
||||||
description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
|
description: For valid response try integer IDs with value < 1000. Anything
|
||||||
|
above 1000 or nonintegers will generate API errors
|
||||||
operationId: delete_order
|
operationId: delete_order
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of the order that needs to be deleted
|
- description: ID of the order that needs to be deleted
|
||||||
@ -361,7 +364,8 @@ paths:
|
|||||||
- store
|
- store
|
||||||
x-openapi-router-controller: openapi_server.controllers.store_controller
|
x-openapi-router-controller: openapi_server.controllers.store_controller
|
||||||
get:
|
get:
|
||||||
description: For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
|
description: For valid response try integer IDs with value <= 5 or > 10. Other
|
||||||
|
values will generated exceptions
|
||||||
operationId: get_order_by_id
|
operationId: get_order_by_id
|
||||||
parameters:
|
parameters:
|
||||||
- description: ID of pet that needs to be fetched
|
- description: ID of pet that needs to be fetched
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info < (3, 7):
|
||||||
|
import typing
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return type(klass) == typing.GenericMeta
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__extra__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__extra__ == list
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
def is_generic(klass):
|
||||||
|
""" Determine whether klass is a generic class """
|
||||||
|
return hasattr(klass, '__origin__')
|
||||||
|
|
||||||
|
def is_dict(klass):
|
||||||
|
""" Determine whether klass is a Dict """
|
||||||
|
return klass.__origin__ == dict
|
||||||
|
|
||||||
|
def is_list(klass):
|
||||||
|
""" Determine whether klass is a List """
|
||||||
|
return klass.__origin__ == list
|
@ -2,6 +2,7 @@ import datetime
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
import typing
|
import typing
|
||||||
|
from openapi_server import typing_utils
|
||||||
|
|
||||||
|
|
||||||
def _deserialize(data, klass):
|
def _deserialize(data, klass):
|
||||||
@ -23,10 +24,10 @@ def _deserialize(data, klass):
|
|||||||
return deserialize_date(data)
|
return deserialize_date(data)
|
||||||
elif klass == datetime.datetime:
|
elif klass == datetime.datetime:
|
||||||
return deserialize_datetime(data)
|
return deserialize_datetime(data)
|
||||||
elif type(klass) == typing.GenericMeta:
|
elif typing_utils.is_generic(klass):
|
||||||
if klass.__extra__ == list:
|
if typing_utils.is_list(klass):
|
||||||
return _deserialize_list(data, klass.__args__[0])
|
return _deserialize_list(data, klass.__args__[0])
|
||||||
if klass.__extra__ == dict:
|
if typing_utils.is_dict(klass):
|
||||||
return _deserialize_dict(data, klass.__args__[1])
|
return _deserialize_dict(data, klass.__args__[1])
|
||||||
else:
|
else:
|
||||||
return deserialize_model(data, klass)
|
return deserialize_model(data, klass)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user