Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
changeKind: internal
packages:
- "@autorest/python"
---

don't require black on multiapi sample
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@
# --------------------------------------------------------------------------

from ._multiapi_service_client import MultiapiServiceClient

__all__ = ["MultiapiServiceClient"]
__all__ = ['MultiapiServiceClient']

try:
from ._patch import patch_sdk # type: ignore

patch_sdk()
except ImportError:
pass
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
# pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials import TokenCredential


class MultiapiServiceClientConfiguration:
"""Configuration for MultiapiServiceClient.

Expand All @@ -30,27 +29,32 @@ class MultiapiServiceClientConfiguration:
:type credential: ~azure.core.credentials.TokenCredential
"""

def __init__(self, credential: "TokenCredential", **kwargs: Any):
def __init__(
self,
credential: "TokenCredential",
**kwargs: Any
):
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")

self.credential = credential
self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"])
kwargs.setdefault("sdk_moniker", "azure-multiapi-sample/{}".format(VERSION))
self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default'])
kwargs.setdefault('sdk_moniker', 'azure-multiapi-sample/{}'.format(VERSION))
self.polling_interval = kwargs.get("polling_interval", 30)
self._configure(**kwargs)

def _configure(self, **kwargs: Any):
self.user_agent_policy = kwargs.get("user_agent_policy") or policies.UserAgentPolicy(**kwargs)
self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy(**kwargs)
self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs)
self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs)
self.http_logging_policy = kwargs.get("http_logging_policy") or ARMHttpLoggingPolicy(**kwargs)
self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs)
self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs)
self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs)
self.authentication_policy = kwargs.get("authentication_policy")
def _configure(
self,
**kwargs: Any
):
self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs)
self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs)
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs)
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs)
self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs)
self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs)
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs)
self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs)
self.authentication_policy = kwargs.get('authentication_policy')
if self.credential and not self.authentication_policy:
self.authentication_policy = ARMChallengeAuthenticationPolicy(
self.credential, *self.credential_scopes, **kwargs
)
self.authentication_policy = ARMChallengeAuthenticationPolicy(self.credential, *self.credential_scopes, **kwargs)
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,13 @@
# pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials import TokenCredential


class _SDKClient(object):
def __init__(self, *args, **kwargs):
"""This is a fake class to support current implementation of MultiApiClientMixin."
Will be removed in final version of multiapi azure-core based client
"""
pass


class MultiapiServiceClient(MultiapiServiceClientOperationsMixin, MultiApiClientMixin, _SDKClient):
"""Service client for multiapi client testing.

Expand All @@ -59,30 +57,28 @@ class MultiapiServiceClient(MultiapiServiceClientOperationsMixin, MultiApiClient
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.
"""

DEFAULT_API_VERSION = "3.0.0"
DEFAULT_API_VERSION = '3.0.0'
_PROFILE_TAG = "azure.multiapi.sample.MultiapiServiceClient"
LATEST_PROFILE = ProfileDefinition(
{
_PROFILE_TAG: {
None: DEFAULT_API_VERSION,
"begin_test_lro": "1.0.0",
"begin_test_lro_and_paging": "1.0.0",
"test_one": "2.0.0",
}
},
_PROFILE_TAG + " latest",
LATEST_PROFILE = ProfileDefinition({
_PROFILE_TAG: {
None: DEFAULT_API_VERSION,
'begin_test_lro': '1.0.0',
'begin_test_lro_and_paging': '1.0.0',
'test_one': '2.0.0',
}},
_PROFILE_TAG + " latest"
)

def __init__(
self,
credential: "TokenCredential",
api_version: Optional[str] = None,
api_version: Optional[str]=None,
base_url: Optional[str] = None,
profile: KnownProfiles = KnownProfiles.default,
profile: KnownProfiles=KnownProfiles.default,
**kwargs: Any
):
if api_version:
kwargs.setdefault("api_version", api_version)
kwargs.setdefault('api_version', api_version)
_cloud = kwargs.pop("cloud_setting", None) or settings.current.azure_cloud # type: ignore
_endpoints = get_arm_endpoints(_cloud)
if not base_url:
Expand All @@ -108,7 +104,10 @@ def __init__(
self._config.http_logging_policy,
]
self._client: ARMPipelineClient = ARMPipelineClient(base_url=cast(str, base_url), policies=_policies, **kwargs)
super(MultiapiServiceClient, self).__init__(api_version=api_version, profile=profile)
super(MultiapiServiceClient, self).__init__(
api_version=api_version,
profile=profile
)

@classmethod
def _models_dict(cls, api_version):
Expand All @@ -118,79 +117,62 @@ def _models_dict(cls, api_version):
def models(cls, api_version=DEFAULT_API_VERSION):
"""Module depends on the API version:

* 1.0.0: :mod:`v1.models<azure.multiapi.sample.v1.models>`
* 2.0.0: :mod:`v2.models<azure.multiapi.sample.v2.models>`
* 3.0.0: :mod:`v3.models<azure.multiapi.sample.v3.models>`
* 1.0.0: :mod:`v1.models<azure.multiapi.sample.v1.models>`
* 2.0.0: :mod:`v2.models<azure.multiapi.sample.v2.models>`
* 3.0.0: :mod:`v3.models<azure.multiapi.sample.v3.models>`
"""
if api_version == "1.0.0":
if api_version == '1.0.0':
from .v1 import models

return models
elif api_version == "2.0.0":
elif api_version == '2.0.0':
from .v2 import models

return models
elif api_version == "3.0.0":
elif api_version == '3.0.0':
from .v3 import models

return models
raise ValueError("API version {} is not available".format(api_version))

@property
def operation_group_one(self):
"""Instance depends on the API version:

* 1.0.0: :class:`OperationGroupOneOperations<azure.multiapi.sample.v1.operations.OperationGroupOneOperations>`
* 2.0.0: :class:`OperationGroupOneOperations<azure.multiapi.sample.v2.operations.OperationGroupOneOperations>`
* 3.0.0: :class:`OperationGroupOneOperations<azure.multiapi.sample.v3.operations.OperationGroupOneOperations>`
* 1.0.0: :class:`OperationGroupOneOperations<azure.multiapi.sample.v1.operations.OperationGroupOneOperations>`
* 2.0.0: :class:`OperationGroupOneOperations<azure.multiapi.sample.v2.operations.OperationGroupOneOperations>`
* 3.0.0: :class:`OperationGroupOneOperations<azure.multiapi.sample.v3.operations.OperationGroupOneOperations>`
"""
api_version = self._get_api_version("operation_group_one")
if api_version == "1.0.0":
api_version = self._get_api_version('operation_group_one')
if api_version == '1.0.0':
from .v1.operations import OperationGroupOneOperations as OperationClass
elif api_version == "2.0.0":
elif api_version == '2.0.0':
from .v2.operations import OperationGroupOneOperations as OperationClass
elif api_version == "3.0.0":
elif api_version == '3.0.0':
from .v3.operations import OperationGroupOneOperations as OperationClass
else:
raise ValueError("API version {} does not have operation group 'operation_group_one'".format(api_version))
self._config.api_version = api_version
return OperationClass(
self._client,
self._config,
Serializer(self._models_dict(api_version)),
Deserializer(self._models_dict(api_version)),
api_version,
)
return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)), api_version)

@property
def operation_group_two(self):
"""Instance depends on the API version:

* 2.0.0: :class:`OperationGroupTwoOperations<azure.multiapi.sample.v2.operations.OperationGroupTwoOperations>`
* 3.0.0: :class:`OperationGroupTwoOperations<azure.multiapi.sample.v3.operations.OperationGroupTwoOperations>`
* 2.0.0: :class:`OperationGroupTwoOperations<azure.multiapi.sample.v2.operations.OperationGroupTwoOperations>`
* 3.0.0: :class:`OperationGroupTwoOperations<azure.multiapi.sample.v3.operations.OperationGroupTwoOperations>`
"""
api_version = self._get_api_version("operation_group_two")
if api_version == "2.0.0":
api_version = self._get_api_version('operation_group_two')
if api_version == '2.0.0':
from .v2.operations import OperationGroupTwoOperations as OperationClass
elif api_version == "3.0.0":
elif api_version == '3.0.0':
from .v3.operations import OperationGroupTwoOperations as OperationClass
else:
raise ValueError("API version {} does not have operation group 'operation_group_two'".format(api_version))
self._config.api_version = api_version
return OperationClass(
self._client,
self._config,
Serializer(self._models_dict(api_version)),
Deserializer(self._models_dict(api_version)),
api_version,
)
return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)), api_version)

def close(self):
self._client.close()

def __enter__(self):
self._client.__enter__()
return self

def __exit__(self, *exc_details):
self._client.__exit__(*exc_details)
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
class MultiapiServiceClientOperationsMixin(object):

def begin_test_lro(
self, product: Optional[Union[_models.Product, IO[bytes]]] = None, **kwargs: Any
self,
product: Optional[Union[_models.Product, IO[bytes]]] = None,
**kwargs: Any
) -> LROPoller[_models.Product]:
"""Put in whatever shape of Product you want, will return a Product with id equal to 100.

Expand All @@ -32,8 +34,8 @@ def begin_test_lro(
:rtype: ~azure.core.polling.LROPoller[~azure.multiapi.sample.v1.models.Product]
:raises ~azure.core.exceptions.HttpResponseError:
"""
api_version = self._get_api_version("begin_test_lro")
if api_version == "1.0.0":
api_version = self._get_api_version('begin_test_lro')
if api_version == '1.0.0':
from .v1.operations import MultiapiServiceClientOperationsMixin as OperationClass
else:
raise ValueError("API version {} does not have operation 'begin_test_lro'".format(api_version))
Expand Down Expand Up @@ -64,8 +66,8 @@ def begin_test_lro_and_paging(
~azure.core.polling.LROPoller[~azure.core.paging.ItemPaged[~azure.multiapi.sample.v1.models.Product]]
:raises ~azure.core.exceptions.HttpResponseError:
"""
api_version = self._get_api_version("begin_test_lro_and_paging")
if api_version == "1.0.0":
api_version = self._get_api_version('begin_test_lro_and_paging')
if api_version == '1.0.0':
from .v1.operations import MultiapiServiceClientOperationsMixin as OperationClass
else:
raise ValueError("API version {} does not have operation 'begin_test_lro_and_paging'".format(api_version))
Expand Down Expand Up @@ -97,12 +99,12 @@ def test_different_calls( # pylint: disable=inconsistent-return-statements
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
api_version = self._get_api_version("test_different_calls")
if api_version == "1.0.0":
api_version = self._get_api_version('test_different_calls')
if api_version == '1.0.0':
from .v1.operations import MultiapiServiceClientOperationsMixin as OperationClass
elif api_version == "2.0.0":
elif api_version == '2.0.0':
from .v2.operations import MultiapiServiceClientOperationsMixin as OperationClass
elif api_version == "3.0.0":
elif api_version == '3.0.0':
from .v3.operations import MultiapiServiceClientOperationsMixin as OperationClass
else:
raise ValueError("API version {} does not have operation 'test_different_calls'".format(api_version))
Expand All @@ -113,12 +115,13 @@ def test_different_calls( # pylint: disable=inconsistent-return-statements
mixin_instance._serialize = Serializer(self._models_dict(api_version))
mixin_instance._serialize.client_side_validation = False
mixin_instance._deserialize = Deserializer(self._models_dict(api_version))
return mixin_instance.test_different_calls(
greeting_in_english, greeting_in_chinese, greeting_in_french, **kwargs
)
return mixin_instance.test_different_calls(greeting_in_english, greeting_in_chinese, greeting_in_french, **kwargs)

def test_one( # pylint: disable=inconsistent-return-statements
self, id: int, message: Optional[str] = None, **kwargs: Any
self,
id: int,
message: Optional[str] = None,
**kwargs: Any
) -> None:
"""TestOne should be in an FirstVersionOperationsMixin.

Expand All @@ -130,10 +133,10 @@ def test_one( # pylint: disable=inconsistent-return-statements
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
api_version = self._get_api_version("test_one")
if api_version == "1.0.0":
api_version = self._get_api_version('test_one')
if api_version == '1.0.0':
from .v1.operations import MultiapiServiceClientOperationsMixin as OperationClass
elif api_version == "2.0.0":
elif api_version == '2.0.0':
from .v2.operations import MultiapiServiceClientOperationsMixin as OperationClass
else:
raise ValueError("API version {} does not have operation 'test_one'".format(api_version))
Expand All @@ -146,15 +149,18 @@ def test_one( # pylint: disable=inconsistent-return-statements
mixin_instance._deserialize = Deserializer(self._models_dict(api_version))
return mixin_instance.test_one(id, message, **kwargs)

def test_paging(self, **kwargs: Any) -> Iterable["_models.ModelThree"]:
def test_paging(
self,
**kwargs: Any
) -> Iterable["_models.ModelThree"]:
"""Returns ModelThree with optionalProperty 'paged'.

:return: An iterator like instance of either ModelThree or the result of cls(response)
:rtype: ~azure.core.paging.ItemPaged[~azure.multiapi.sample.v3.models.ModelThree]
:raises ~azure.core.exceptions.HttpResponseError:
"""
api_version = self._get_api_version("test_paging")
if api_version == "3.0.0":
api_version = self._get_api_version('test_paging')
if api_version == '3.0.0':
from .v3.operations import MultiapiServiceClientOperationsMixin as OperationClass
else:
raise ValueError("API version {} does not have operation 'test_paging'".format(api_version))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@
# --------------------------------------------------------------------------

from ._multiapi_service_client import MultiapiServiceClient

__all__ = ["MultiapiServiceClient"]
__all__ = ['MultiapiServiceClient']
Loading
Loading