Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
3 changes: 2 additions & 1 deletion packages/autorest.python/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
**Bug Fixes**

- Added sub-namespace folder when generating samples #1920
- Optimize logic to find realted params in example files #1916
- Optimize logic to find related params in example files #1916
- Optimize default value for `api_version` for better compatibility of multiapi package #1934

### 2023-05-19 - 6.4.15

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,15 @@ def append_pop_kwarg(key: str, pop_type: PopKwargType) -> None:
if kwarg.location == ParameterLocation.HEADER
else "params"
)
if (
kwarg.client_name == "api_version"
and kwarg.code_model.options["multiapi"]
):
default_value = f"getattr(self._config, 'api_version', None) or {default_value}"
default_value = (
f"_{kwarg_dict}.pop('{kwarg.wire_name}', {default_value})"
)

retval.append(
f"{kwarg.client_name}: {type_annot} = kwargs.pop('{kwarg.client_name}', "
+ f"{default_value})"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ async def test_two(self, **kwargs: Any) -> None: # pylint: disable=inconsistent
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "0.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "0.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_two_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ def build_test_two_request(**kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "0.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "0.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand Down Expand Up @@ -92,7 +94,9 @@ def test_two(self, **kwargs: Any) -> None: # pylint: disable=inconsistent-retur
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "0.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "0.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_two_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ async def test_one( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_one_request(
Expand Down Expand Up @@ -498,7 +500,9 @@ async def test_different_calls( # pylint: disable=inconsistent-return-statement
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_different_calls_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,9 @@ async def test_two(self, **kwargs: Any) -> None: # pylint: disable=inconsistent
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_two_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ def build_test_one_request(*, id: int, message: Optional[str] = None, **kwargs:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand Down Expand Up @@ -104,7 +106,9 @@ def build_test_different_calls_request(*, greeting_in_english: str, **kwargs: An
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand Down Expand Up @@ -147,7 +151,9 @@ def test_one( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_one_request(
Expand Down Expand Up @@ -572,7 +578,9 @@ def test_different_calls( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_different_calls_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ def build_test_two_request(**kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand Down Expand Up @@ -92,7 +94,9 @@ def test_two(self, **kwargs: Any) -> None: # pylint: disable=inconsistent-retur
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "1.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "1.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_two_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@ async def test_one(self, id: int, message: Optional[str] = None, **kwargs: Any)
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
cls: ClsType[_models.ModelTwo] = kwargs.pop("cls", None)

request = build_test_one_request(
Expand Down Expand Up @@ -118,7 +120,9 @@ async def test_different_calls( # pylint: disable=inconsistent-return-statement
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_different_calls_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,9 @@ async def test_two(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[_models.ModelTwo] = kwargs.pop("cls", None)

Expand Down Expand Up @@ -182,7 +184,9 @@ async def test_three(self, **kwargs: Any) -> None: # pylint: disable=inconsiste
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_three_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ async def test_four( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_four_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ def build_test_one_request(*, id: int, message: Optional[str] = None, **kwargs:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand All @@ -62,7 +64,9 @@ def build_test_different_calls_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand Down Expand Up @@ -105,7 +109,9 @@ def test_one(self, id: int, message: Optional[str] = None, **kwargs: Any) -> _mo
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
cls: ClsType[_models.ModelTwo] = kwargs.pop("cls", None)

request = build_test_one_request(
Expand Down Expand Up @@ -166,7 +172,9 @@ def test_different_calls( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_different_calls_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ def build_test_two_request(**kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")

Expand All @@ -61,7 +63,9 @@ def build_test_three_request(**kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand Down Expand Up @@ -155,7 +159,9 @@ def test_two(self, parameter_one: Optional[Union[_models.ModelTwo, IO]] = None,
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[_models.ModelTwo] = kwargs.pop("cls", None)

Expand Down Expand Up @@ -223,7 +229,9 @@ def test_three(self, **kwargs: Any) -> None: # pylint: disable=inconsistent-ret
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_three_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ def build_test_four_request(*, parameter_one: bool, **kwargs: Any) -> HttpReques
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand Down Expand Up @@ -95,7 +97,9 @@ def test_four(self, parameter_one: bool, **kwargs: Any) -> None: # pylint: disa
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "2.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_four_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,9 @@ async def test_different_calls( # pylint: disable=inconsistent-return-statement
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "3.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "3.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_different_calls_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,9 @@ async def test_two(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "3.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "3.0.0")
)
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[_models.ModelThree] = kwargs.pop("cls", None)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,9 @@ async def test_four( # pylint: disable=inconsistent-return-statements
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "3.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "3.0.0")
)
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[None] = kwargs.pop("cls", None)

Expand Down Expand Up @@ -178,7 +180,9 @@ async def test_five(self, **kwargs: Any) -> None: # pylint: disable=inconsisten
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "3.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "3.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_five_request(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@ def build_test_different_calls_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "3.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "3.0.0")
)
accept = _headers.pop("Accept", "application/json")

# Construct URL
Expand Down Expand Up @@ -190,7 +192,9 @@ def test_different_calls( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})

api_version: str = kwargs.pop("api_version", _params.pop("api-version", "3.0.0"))
api_version: str = kwargs.pop(
"api_version", _params.pop("api-version", getattr(self._config, "api_version", None) or "3.0.0")
)
cls: ClsType[None] = kwargs.pop("cls", None)

request = build_test_different_calls_request(
Expand Down
Loading