Skip to content

Commit

Permalink
checkout-autorestv3
Browse files Browse the repository at this point in the history
  • Loading branch information
Changlong Liu committed Feb 19, 2022
1 parent d6c430d commit 8ed379b
Show file tree
Hide file tree
Showing 53 changed files with 1,134 additions and 1,689 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

from ... import models as _models
from ..._vendor import _convert_request
from ...operations._paging_operations import build_duplicate_params_request, build_first_response_empty_request, build_get_multiple_pages_failure_request, build_get_multiple_pages_failure_uri_request, build_get_multiple_pages_fragment_next_link_request, build_get_multiple_pages_fragment_with_grouping_next_link_request, build_get_multiple_pages_lro_request_initial, build_get_multiple_pages_request, build_get_multiple_pages_retry_first_request, build_get_multiple_pages_retry_second_request, build_get_multiple_pages_with_offset_request, build_get_no_item_name_pages_request, build_get_null_next_link_name_pages_request, build_get_odata_multiple_pages_request, build_get_paging_model_with_item_name_with_xms_client_name_request, build_get_single_pages_failure_request, build_get_single_pages_request, build_get_with_query_params_request, build_next_fragment_request, build_next_fragment_with_grouping_request, build_next_operation_with_query_params_request
from ...operations._paging_operations import build_first_response_empty_request, build_get_multiple_pages_failure_request, build_get_multiple_pages_failure_uri_request, build_get_multiple_pages_fragment_next_link_request, build_get_multiple_pages_fragment_with_grouping_next_link_request, build_get_multiple_pages_lro_request_initial, build_get_multiple_pages_request, build_get_multiple_pages_retry_first_request, build_get_multiple_pages_retry_second_request, build_get_multiple_pages_with_offset_request, build_get_no_item_name_pages_request, build_get_null_next_link_name_pages_request, build_get_odata_multiple_pages_request, build_get_paging_model_with_item_name_with_xms_client_name_request, build_get_single_pages_failure_request, build_get_single_pages_request, build_get_with_query_params_request, build_next_fragment_request, build_next_fragment_with_grouping_request, build_next_operation_with_query_params_request
T = TypeVar('T')
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]

Expand Down Expand Up @@ -477,78 +477,6 @@ async def get_next(next_link=None):
)
get_with_query_params.metadata = {'url': "/paging/multiple/getWithQueryParams"} # type: ignore

@distributed_trace
def duplicate_params(
self,
filter: Optional[str] = None,
**kwargs: Any
) -> AsyncIterable["_models.ProductResult"]:
"""Define ``filter`` as a query param for all calls. However, the returned next link will also
include the ``filter`` as part of it. Make sure you don't end up duplicating the ``filter``
param in the url sent.
:param filter: OData filter options. Pass in 'foo'.
:type filter: str
:keyword callable cls: A custom type or function that will be passed the direct response
:return: An iterator like instance of either ProductResult or the result of cls(response)
:rtype: ~azure.core.async_paging.AsyncItemPaged[~custompollerpager.models.ProductResult]
:raises: ~azure.core.exceptions.HttpResponseError
"""
cls = kwargs.pop('cls', None) # type: ClsType["_models.ProductResult"]
error_map = {
401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
}
error_map.update(kwargs.pop('error_map', {}))
def prepare_request(next_link=None):
if not next_link:

request = build_duplicate_params_request(
filter=filter,
template_url=self.duplicate_params.metadata['url'],
)
request = _convert_request(request)
request.url = self._client.format_url(request.url)

else:

request = build_duplicate_params_request(
filter=filter,
template_url=next_link,
)
request = _convert_request(request)
request.url = self._client.format_url(request.url)
request.method = "GET"
return request

async def extract_data(pipeline_response):
deserialized = self._deserialize("ProductResult", pipeline_response)
list_of_elem = deserialized.values
if cls:
list_of_elem = cls(list_of_elem)
return deserialized.next_link or None, AsyncList(list_of_elem)

async def get_next(next_link=None):
request = prepare_request(next_link)

pipeline_response = await self._client._pipeline.run( # pylint: disable=protected-access
request,
stream=False,
**kwargs
)
response = pipeline_response.http_response

if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)

return pipeline_response


return AsyncItemPaged(
get_next, extract_data
)
duplicate_params.metadata = {'url': "/paging/multiple/duplicateParams/1"} # type: ignore

@distributed_trace
def get_odata_multiple_pages(
self,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,34 +173,6 @@ def build_get_with_query_params_request(
)


def build_duplicate_params_request(
**kwargs # type: Any
):
# type: (...) -> HttpRequest
filter = kwargs.pop('filter', None) # type: Optional[str]

accept = "application/json"
# Construct URL
_url = kwargs.pop("template_url", "/paging/multiple/duplicateParams/1")

# Construct parameters
_query_parameters = kwargs.pop("params", {}) # type: Dict[str, Any]
if filter is not None:
_query_parameters['$filter'] = _SERIALIZER.query("filter", filter, 'str')

# Construct headers
_header_parameters = kwargs.pop("headers", {}) # type: Dict[str, Any]
_header_parameters['Accept'] = _SERIALIZER.header("accept", accept, 'str')

return HttpRequest(
method="GET",
url=_url,
params=_query_parameters,
headers=_header_parameters,
**kwargs
)


def build_next_operation_with_query_params_request(
**kwargs # type: Any
):
Expand Down Expand Up @@ -1036,79 +1008,6 @@ def get_next(next_link=None):
)
get_with_query_params.metadata = {'url': "/paging/multiple/getWithQueryParams"} # type: ignore

@distributed_trace
def duplicate_params(
self,
filter=None, # type: Optional[str]
**kwargs # type: Any
):
# type: (...) -> Iterable["_models.ProductResult"]
"""Define ``filter`` as a query param for all calls. However, the returned next link will also
include the ``filter`` as part of it. Make sure you don't end up duplicating the ``filter``
param in the url sent.
:param filter: OData filter options. Pass in 'foo'.
:type filter: str
:keyword callable cls: A custom type or function that will be passed the direct response
:return: An iterator like instance of either ProductResult or the result of cls(response)
:rtype: ~azure.core.paging.ItemPaged[~custompollerpager.models.ProductResult]
:raises: ~azure.core.exceptions.HttpResponseError
"""
cls = kwargs.pop('cls', None) # type: ClsType["_models.ProductResult"]
error_map = {
401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
}
error_map.update(kwargs.pop('error_map', {}))
def prepare_request(next_link=None):
if not next_link:

request = build_duplicate_params_request(
filter=filter,
template_url=self.duplicate_params.metadata['url'],
)
request = _convert_request(request)
request.url = self._client.format_url(request.url)

else:

request = build_duplicate_params_request(
filter=filter,
template_url=next_link,
)
request = _convert_request(request)
request.url = self._client.format_url(request.url)
request.method = "GET"
return request

def extract_data(pipeline_response):
deserialized = self._deserialize("ProductResult", pipeline_response)
list_of_elem = deserialized.values
if cls:
list_of_elem = cls(list_of_elem)
return deserialized.next_link or None, iter(list_of_elem)

def get_next(next_link=None):
request = prepare_request(next_link)

pipeline_response = self._client._pipeline.run( # pylint: disable=protected-access
request,
stream=False,
**kwargs
)
response = pipeline_response.http_response

if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)

return pipeline_response


return ItemPaged(
get_next, extract_data
)
duplicate_params.metadata = {'url': "/paging/multiple/duplicateParams/1"} # type: ignore

@distributed_trace
def get_odata_multiple_pages(
self,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import importlib
from ._auto_rest_paging_test_service import AutoRestPagingTestService as AutoRestPagingTestServiceGenerated
from azure.core.pipeline.policies import SansIOHTTPPolicy

try:
binary_type = str
import urlparse # type: ignore
Expand All @@ -38,7 +37,6 @@
from urllib import parse as urlparse
from urllib.parse import urlencode


class RemoveDuplicateParamsPolicy(SansIOHTTPPolicy):
def __init__(self, duplicate_param_names):
# type: (List[str]) -> None
Expand All @@ -48,13 +46,13 @@ def on_request(self, request):
parsed_url = urlparse.urlparse(request.http_request.url)
query_params = urlparse.parse_qs(parsed_url.query)
# service returned will be later in the url because of how we format
filtered_query_params = {k: v[-1:] if k in self.duplicate_param_names else v for k, v in query_params.items()}
request.http_request.url = request.http_request.url.replace(parsed_url.query, "") + urlencode(
filtered_query_params, doseq=True
)
filtered_query_params = {
k: v[-1:] if k in self.duplicate_param_names else v
for k, v in query_params.items()
}
request.http_request.url = request.http_request.url.replace(parsed_url.query, "") + urlencode(filtered_query_params, doseq=True)
return super(RemoveDuplicateParamsPolicy, self).on_request(request)


class AutoRestPagingTestService(AutoRestPagingTestServiceGenerated):
def __init__(self, *args, **kwargs):
per_call_policies = kwargs.pop("per_call_policies", [])
Expand All @@ -65,7 +63,6 @@ def __init__(self, *args, **kwargs):
per_call_policies = [per_call_policies, params_policy]
super(AutoRestPagingTestService, self).__init__(*args, per_call_policies=per_call_policies, **kwargs)


# This file is used for handwritten extensions to the generated code. Example:
# https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_code/how-to-patch-sdk-code.md
def patch_sdk():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
from .._patch import RemoveDuplicateParamsPolicy
from ._auto_rest_paging_test_service import AutoRestPagingTestService as AutoRestPagingTestServiceGenerated


class AutoRestPagingTestService(AutoRestPagingTestServiceGenerated):
def __init__(self, *args, **kwargs):
per_call_policies = kwargs.pop("per_call_policies", [])
Expand All @@ -39,7 +38,6 @@ def __init__(self, *args, **kwargs):
per_call_policies = [per_call_policies, params_policy]
super().__init__(*args, per_call_policies=per_call_policies, **kwargs)


# This file is used for handwritten extensions to the generated code. Example:
# https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_code/how-to-patch-sdk-code.md
def patch_sdk():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
from custompollerpagerdefinitions.aio import AsyncCustomPager, AsyncCustomPoller

from ...operations._operations import (
build_paging_duplicate_params_request,
build_paging_first_response_empty_request,
build_paging_get_multiple_pages_failure_request,
build_paging_get_multiple_pages_failure_uri_request,
Expand Down Expand Up @@ -495,78 +494,6 @@ async def get_next(next_link=None):

return AsyncItemPaged(get_next, extract_data)

@distributed_trace
def duplicate_params(self, *, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable[JSONType]:
"""Define ``filter`` as a query param for all calls. However, the returned next link will also
include the ``filter`` as part of it. Make sure you don't end up duplicating the ``filter``
param in the url sent.
:keyword filter: OData filter options. Pass in 'foo'.
:paramtype filter: str
:return: An iterator like instance of JSON object
:rtype: ~azure.core.async_paging.AsyncItemPaged[JSONType]
:raises: ~azure.core.exceptions.HttpResponseError
Example:
.. code-block:: python
# response body for status code(s): 200
response.json() == {
"nextLink": "str", # Optional.
"values": [
{
"properties": {
"id": 0, # Optional.
"name": "str" # Optional.
}
}
]
}
"""
cls = kwargs.pop("cls", None) # type: ClsType[JSONType]
error_map = {401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError}
error_map.update(kwargs.pop("error_map", {}))

def prepare_request(next_link=None):
if not next_link:

request = build_paging_duplicate_params_request(
filter=filter,
)
request.url = self._client.format_url(request.url)

else:

request = build_paging_duplicate_params_request(
filter=filter,
)
request.url = self._client.format_url(next_link)
request.method = "GET"
return request

async def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = deserialized["values"]
if cls:
list_of_elem = cls(list_of_elem)
return deserialized.get("nextLink", None), AsyncList(list_of_elem)

async def get_next(next_link=None):
request = prepare_request(next_link)

pipeline_response = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response

if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)

return pipeline_response

return AsyncItemPaged(get_next, extract_data)

@distributed_trace
def get_odata_multiple_pages(
self,
Expand Down
Loading

0 comments on commit 8ed379b

Please sign in to comment.