Skip to content

Commit

Permalink
use-kwargs-for-non-defaults
Browse files Browse the repository at this point in the history
  • Loading branch information
changlong-liu committed Mar 20, 2022
1 parent 9003dc5 commit 8db1a08
Show file tree
Hide file tree
Showing 56 changed files with 188 additions and 177 deletions.
9 changes: 4 additions & 5 deletions autorest/codegen/models/operation.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,8 @@ def imports(self, async_mode: bool, is_python3_file: bool) -> FileImport:
return file_import

@staticmethod
def has_kwargs_to_pop_with_default(kwargs_to_pop: List[Parameter], location: ParameterLocation) -> bool:
return any(kwarg.has_default_value and kwarg.location == location for kwarg in kwargs_to_pop)
def has_kwargs_to_pop(kwargs_to_pop: List[Parameter], location: ParameterLocation) -> bool:
return any(kwarg.location == location for kwarg in kwargs_to_pop)

def _imports_base(self, async_mode: bool, is_python3_file: bool) -> FileImport:
file_import = self._imports_shared(async_mode)
Expand All @@ -197,8 +197,8 @@ def _imports_base(self, async_mode: bool, is_python3_file: bool) -> FileImport:
file_import.add_submodule_import("azure.core.pipeline", "PipelineResponse", ImportType.AZURECORE)
file_import.add_submodule_import("azure.core.rest", "HttpRequest", ImportType.AZURECORE)
kwargs_to_pop = self.parameters.kwargs_to_pop(is_python3_file)
if (self.has_kwargs_to_pop_with_default(kwargs_to_pop, ParameterLocation.Header) or
self.has_kwargs_to_pop_with_default(kwargs_to_pop, ParameterLocation.Query)):
if (self.has_kwargs_to_pop(kwargs_to_pop, ParameterLocation.Header) or
self.has_kwargs_to_pop(kwargs_to_pop, ParameterLocation.Query)):
file_import.add_submodule_import("azure.core.utils", "case_insensitive_dict", ImportType.AZURECORE)
if async_mode:
file_import.add_submodule_import("azure.core.pipeline.transport", "AsyncHttpResponse", ImportType.AZURECORE)
Expand Down Expand Up @@ -232,7 +232,6 @@ def _imports_base(self, async_mode: bool, is_python3_file: bool) -> FileImport:
file_import.add_submodule_import(
f"{relative_path}_vendor", "_convert_request", ImportType.LOCAL
)

if self.code_model.options["version_tolerant"] and (
self.parameters.has_body or
any(r for r in self.responses if r.has_body)
Expand Down
4 changes: 2 additions & 2 deletions autorest/codegen/serializers/builder_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -671,9 +671,9 @@ def pop_kwargs_from_signature(self, builder) -> List[str]:
kwargs = utils.pop_kwargs_from_signature(
kwargs_to_pop,
check_kwarg_dict=True,
pop_headers_kwarg=utils.PopKwargType.CASE_INSENSITIVE if builder.has_kwargs_to_pop_with_default(
pop_headers_kwarg=utils.PopKwargType.CASE_INSENSITIVE if builder.has_kwargs_to_pop(
kwargs_to_pop, ParameterLocation.Header) else utils.PopKwargType.SIMPLE,
pop_params_kwarg=utils.PopKwargType.CASE_INSENSITIVE if builder.has_kwargs_to_pop_with_default(
pop_params_kwarg=utils.PopKwargType.CASE_INSENSITIVE if builder.has_kwargs_to_pop(
kwargs_to_pop, ParameterLocation.Query) else utils.PopKwargType.SIMPLE,
)
kwargs.append(f"cls = kwargs.pop('cls', None) {self.cls_type_annotation(builder)}")
Expand Down
8 changes: 5 additions & 3 deletions autorest/codegen/serializers/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,9 @@ def append_pop_kwarg(key: str, pop_type: PopKwargType) -> None:
+ f"{default_value}) # type: {kwarg.type_annotation}"
)
else:
retval.append(
f"{kwarg.serialized_name} = kwargs.pop('{kwarg.serialized_name}') # type: {kwarg.type_annotation}"
)
assignment = f"{kwarg.serialized_name} = kwargs.pop('{kwarg.serialized_name}')"
if check_kwarg_dict and (kwarg.location in [ParameterLocation.Header, ParameterLocation.Query]):
kwarg_dict = "headers" if kwarg.location == ParameterLocation.Header else "params"
assignment += f" if '{kwarg.serialized_name}' in kwargs else _{kwarg_dict}.pop('{kwarg.rest_api_name}')"
retval.append(f"{assignment} # type: {kwarg.type_annotation}")
return retval
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def build_test_one_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version', _params.pop('api-version', "1.0.0")) # type: str
id = kwargs.pop('id') # type: int
id = kwargs.pop('id') if 'id' in kwargs else _params.pop('id') # type: int
message = kwargs.pop('message', _params.pop('message', None)) # type: Optional[str]
accept = _headers.pop('Accept', "application/json")

Expand Down Expand Up @@ -131,7 +131,7 @@ def build_test_different_calls_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version', _params.pop('api-version', "1.0.0")) # type: str
greeting_in_english = kwargs.pop('greeting_in_english') # type: str
greeting_in_english = kwargs.pop('greeting_in_english') if 'greeting_in_english' in kwargs else _headers.pop('greetingInEnglish') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def build_test_one_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version', _params.pop('api-version', "2.0.0")) # type: str
id = kwargs.pop('id') # type: int
id = kwargs.pop('id') if 'id' in kwargs else _params.pop('id') # type: int
message = kwargs.pop('message', _params.pop('message', None)) # type: Optional[str]
accept = _headers.pop('Accept', "application/json")

Expand Down Expand Up @@ -72,7 +72,7 @@ def build_test_different_calls_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version', _params.pop('api-version', "2.0.0")) # type: str
greeting_in_english = kwargs.pop('greeting_in_english') # type: str
greeting_in_english = kwargs.pop('greeting_in_english') if 'greeting_in_english' in kwargs else _headers.pop('greetingInEnglish') # type: str
greeting_in_chinese = kwargs.pop('greeting_in_chinese', _headers.pop('greetingInChinese', None)) # type: Optional[str]
accept = _headers.pop('Accept', "application/json")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def build_test_four_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version', _params.pop('api-version', "2.0.0")) # type: str
parameter_one = kwargs.pop('parameter_one') # type: bool
parameter_one = kwargs.pop('parameter_one') if 'parameter_one' in kwargs else _params.pop('parameterOne') # type: bool
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def build_test_different_calls_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version', _params.pop('api-version', "3.0.0")) # type: str
greeting_in_english = kwargs.pop('greeting_in_english') # type: str
greeting_in_english = kwargs.pop('greeting_in_english') if 'greeting_in_english' in kwargs else _headers.pop('greetingInEnglish') # type: str
greeting_in_chinese = kwargs.pop('greeting_in_chinese', _headers.pop('greetingInChinese', None)) # type: Optional[str]
greeting_in_french = kwargs.pop('greeting_in_french', _headers.pop('greetingInFrench', None)) # type: Optional[str]
accept = _headers.pop('Accept', "application/json")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def build_custom_named_request_id_request(
# type: (...) -> HttpRequest
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})

foo_client_request_id = kwargs.pop('foo_client_request_id') # type: str
foo_client_request_id = kwargs.pop('foo_client_request_id') if 'foo_client_request_id' in kwargs else _headers.pop('foo-client-request-id') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand All @@ -67,7 +67,7 @@ def build_custom_named_request_id_param_grouping_request(
# type: (...) -> HttpRequest
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})

foo_client_request_id = kwargs.pop('foo_client_request_id') # type: str
foo_client_request_id = kwargs.pop('foo_client_request_id') if 'foo_client_request_id' in kwargs else _headers.pop('foo-client-request-id') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand All @@ -91,7 +91,7 @@ def build_custom_named_request_id_head_request(
# type: (...) -> HttpRequest
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})

foo_client_request_id = kwargs.pop('foo_client_request_id') # type: str
foo_client_request_id = kwargs.pop('foo_client_request_id') if 'foo_client_request_id' in kwargs else _headers.pop('foo-client-request-id') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ def build_get_method_query_valid_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

q1 = kwargs.pop('q1') # type: str
q1 = kwargs.pop('q1') if 'q1' in kwargs else _params.pop('q1') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -185,7 +185,7 @@ def build_get_path_query_valid_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

q1 = kwargs.pop('q1') # type: str
q1 = kwargs.pop('q1') if 'q1' in kwargs else _params.pop('q1') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def build_param_get_request(
# type: (...) -> HttpRequest
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})

x_ms_client_request_id = kwargs.pop('x_ms_client_request_id') # type: str
x_ms_client_request_id = kwargs.pop('x_ms_client_request_id') if 'x_ms_client_request_id' in kwargs else _headers.pop('x-ms-client-request-id') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ def build_get_with_query_params_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

query_constant = kwargs.pop('query_constant', _params.pop('queryConstant', True)) # type: bool
required_query_parameter = kwargs.pop('required_query_parameter') # type: int
required_query_parameter = kwargs.pop('required_query_parameter') if 'required_query_parameter' in kwargs else _params.pop('requiredQueryParameter') # type: int
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -427,7 +427,7 @@ def build_get_multiple_pages_fragment_next_link_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -461,7 +461,7 @@ def build_get_multiple_pages_fragment_with_grouping_next_link_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -527,7 +527,7 @@ def build_next_fragment_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -563,7 +563,7 @@ def build_next_fragment_with_grouping_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def build_get_with_query_params_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

query_constant = kwargs.pop('query_constant', _params.pop('queryConstant', True)) # type: bool
required_query_parameter = kwargs.pop('required_query_parameter') # type: int
required_query_parameter = kwargs.pop('required_query_parameter') if 'required_query_parameter' in kwargs else _params.pop('requiredQueryParameter') # type: int
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -432,7 +432,7 @@ def build_get_multiple_pages_fragment_next_link_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -466,7 +466,7 @@ def build_get_multiple_pages_fragment_with_grouping_next_link_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -532,7 +532,7 @@ def build_next_fragment_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -568,7 +568,7 @@ def build_next_fragment_with_grouping_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def build_custom_named_request_id_request(

_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})

foo_client_request_id = kwargs.pop('foo_client_request_id') # type: str
foo_client_request_id = kwargs.pop('foo_client_request_id') if 'foo_client_request_id' in kwargs else _headers.pop('foo-client-request-id') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -77,7 +77,7 @@ def build_custom_named_request_id_param_grouping_request(

_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})

foo_client_request_id = kwargs.pop('foo_client_request_id') # type: str
foo_client_request_id = kwargs.pop('foo_client_request_id') if 'foo_client_request_id' in kwargs else _headers.pop('foo-client-request-id') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -114,7 +114,7 @@ def build_custom_named_request_id_head_request(

_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})

foo_client_request_id = kwargs.pop('foo_client_request_id') # type: str
foo_client_request_id = kwargs.pop('foo_client_request_id') if 'foo_client_request_id' in kwargs else _headers.pop('foo-client-request-id') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def build_get_method_query_valid_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

q1 = kwargs.pop('q1') # type: str
q1 = kwargs.pop('q1') if 'q1' in kwargs else _params.pop('q1') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -250,7 +250,7 @@ def build_get_path_query_valid_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

q1 = kwargs.pop('q1') # type: str
q1 = kwargs.pop('q1') if 'q1' in kwargs else _params.pop('q1') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def build_param_get_request(

_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})

x_ms_client_request_id = kwargs.pop('x_ms_client_request_id') # type: str
x_ms_client_request_id = kwargs.pop('x_ms_client_request_id') if 'x_ms_client_request_id' in kwargs else _headers.pop('x-ms-client-request-id') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ def build_get_with_query_params_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

query_constant = kwargs.pop('query_constant', _params.pop('queryConstant', True)) # type: bool
required_query_parameter = kwargs.pop('required_query_parameter') # type: int
required_query_parameter = kwargs.pop('required_query_parameter') if 'required_query_parameter' in kwargs else _params.pop('requiredQueryParameter') # type: int
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -895,7 +895,7 @@ def build_get_multiple_pages_fragment_next_link_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -960,7 +960,7 @@ def build_get_multiple_pages_fragment_with_grouping_next_link_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -1094,7 +1094,7 @@ def build_next_fragment_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down Expand Up @@ -1163,7 +1163,7 @@ def build_next_fragment_with_grouping_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version = kwargs.pop('api_version') # type: str
api_version = kwargs.pop('api_version') if 'api_version' in kwargs else _params.pop('api_version') # type: str
accept = _headers.pop('Accept', "application/json")

# Construct URL
Expand Down
Loading

0 comments on commit 8db1a08

Please sign in to comment.