From f49595373364c9c4c5bc0db00108a585caed95e1 Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Mon, 6 Jan 2025 09:25:11 -0800 Subject: [PATCH 1/4] [http-client-python] Update mypy and pyright --- packages/http-client-python/generator/dev_requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/http-client-python/generator/dev_requirements.txt b/packages/http-client-python/generator/dev_requirements.txt index 8556a0a7566..99b5bfa1760 100644 --- a/packages/http-client-python/generator/dev_requirements.txt +++ b/packages/http-client-python/generator/dev_requirements.txt @@ -1,8 +1,8 @@ -e ./generator -pyright==1.1.389 +pyright==1.1.391 pylint==3.2.7 tox==4.16.0 -mypy==1.13.0 +mypy==1.14.1 colorama==0.4.6 debugpy==1.8.2 pytest==8.3.2 From 1099ceb36c7cb022c65fc658d7ec89b4964dcc97 Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Mon, 6 Jan 2025 09:28:33 -0800 Subject: [PATCH 2/4] update versions in test req files --- .../http-client-python/generator/test/azure/requirements.txt | 4 ++-- .../generator/test/unbranded/requirements.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/http-client-python/generator/test/azure/requirements.txt b/packages/http-client-python/generator/test/azure/requirements.txt index 363895ad018..68643767768 100644 --- a/packages/http-client-python/generator/test/azure/requirements.txt +++ b/packages/http-client-python/generator/test/azure/requirements.txt @@ -6,10 +6,10 @@ pytest pytest-asyncio==0.14.0;python_full_version>="3.5.2" azure-core==1.30.0 azure-mgmt-core==1.3.2 -pyright==1.1.389 +pyright==1.1.391 pylint==3.2.7 tox==4.18.1 -mypy==1.13.0 +mypy==1.14.1 # only for azure -e ./generated/azure-client-generator-core-access diff --git a/packages/http-client-python/generator/test/unbranded/requirements.txt b/packages/http-client-python/generator/test/unbranded/requirements.txt index ab89d0678ef..295c6de28ee 100644 --- a/packages/http-client-python/generator/test/unbranded/requirements.txt +++ b/packages/http-client-python/generator/test/unbranded/requirements.txt @@ -4,10 +4,10 @@ aiohttp;python_full_version>="3.5.2" requests==2.32.2 pytest pytest-asyncio==0.14.0;python_full_version>="3.5.2" -pyright==1.1.389 +pyright==1.1.391 pylint==3.2.7 tox==4.18.1 -mypy==1.13.0 +mypy==1.14.1 # common test case From 3dde66ccfe9ce71e6a6751a83c216f7d73807183 Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Mon, 6 Jan 2025 10:07:27 -0800 Subject: [PATCH 3/4] fix pyright --- .../generator/pygen/codegen/models/base_builder.py | 3 ++- .../generator/pygen/codegen/models/operation.py | 9 +++++---- .../generator/pygen/codegen/models/request_builder.py | 11 ++++++----- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/http-client-python/generator/pygen/codegen/models/base_builder.py b/packages/http-client-python/generator/pygen/codegen/models/base_builder.py index 87d8b02353a..905195ed7c2 100644 --- a/packages/http-client-python/generator/pygen/codegen/models/base_builder.py +++ b/packages/http-client-python/generator/pygen/codegen/models/base_builder.py @@ -14,6 +14,7 @@ Union, TYPE_CHECKING, cast, + Sequence, ) from abc import abstractmethod @@ -39,7 +40,7 @@ from .request_builder import RequestBuilder -OverloadListType = TypeVar("OverloadListType", bound=Union[List["Operation"], List["RequestBuilder"]]) +OverloadListType = TypeVar("OverloadListType", bound=Union[Sequence["Operation"], Sequence["RequestBuilder"]]) _LOGGER = logging.getLogger(__name__) diff --git a/packages/http-client-python/generator/pygen/codegen/models/operation.py b/packages/http-client-python/generator/pygen/codegen/models/operation.py index 78e9b2d8dcf..1aed138d9b3 100644 --- a/packages/http-client-python/generator/pygen/codegen/models/operation.py +++ b/packages/http-client-python/generator/pygen/codegen/models/operation.py @@ -13,6 +13,7 @@ Generic, TypeVar, cast, + Sequence, ) from .request_builder_parameter import RequestBuilderParameter @@ -54,7 +55,7 @@ def is_internal(target: Optional[BaseType]) -> bool: class OperationBase( # pylint: disable=too-many-public-methods,too-many-instance-attributes - Generic[ResponseType], BaseBuilder[ParameterList, List["Operation"]] + Generic[ResponseType], BaseBuilder[ParameterList, Sequence["Operation"]] ): def __init__( self, @@ -67,7 +68,7 @@ def __init__( responses: List[ResponseType], exceptions: List[Response], *, - overloads: Optional[List["Operation"]] = None, + overloads: Optional[Sequence["Operation"]] = None, ) -> None: super().__init__( code_model=code_model, @@ -77,7 +78,7 @@ def __init__( parameters=parameters, overloads=overloads, ) - self.overloads: List["Operation"] = overloads or [] + self.overloads: Sequence["Operation"] = overloads or [] self.responses = responses self.request_builder = request_builder self.deprecated = False @@ -465,7 +466,7 @@ def from_yaml( responses = [cast(ResponseType, get_response(r, code_model)) for r in yaml_data["responses"]] exceptions = [Response.from_yaml(e, code_model) for e in yaml_data["exceptions"]] parameter_list = ParameterList.from_yaml(yaml_data, code_model) - overloads = [cls.from_yaml(overload, code_model, client) for overload in yaml_data.get("overloads", [])] + overloads = [cast(Operation, cls.from_yaml(overload, code_model, client)) for overload in yaml_data.get("overloads", [])] return cls( yaml_data=yaml_data, diff --git a/packages/http-client-python/generator/pygen/codegen/models/request_builder.py b/packages/http-client-python/generator/pygen/codegen/models/request_builder.py index 81e00d18b4f..439d3944f70 100644 --- a/packages/http-client-python/generator/pygen/codegen/models/request_builder.py +++ b/packages/http-client-python/generator/pygen/codegen/models/request_builder.py @@ -7,11 +7,12 @@ Any, Callable, Dict, - List, TypeVar, TYPE_CHECKING, Union, Optional, + Sequence, + cast, ) from abc import abstractmethod @@ -34,7 +35,7 @@ ) -class RequestBuilderBase(BaseBuilder[ParameterListType, List["RequestBuilder"]]): +class RequestBuilderBase(BaseBuilder[ParameterListType, Sequence["RequestBuilder"]]): def __init__( self, yaml_data: Dict[str, Any], @@ -43,7 +44,7 @@ def __init__( name: str, parameters: ParameterListType, *, - overloads: Optional[List["RequestBuilder"]] = None, + overloads: Optional[Sequence["RequestBuilder"]] = None, ) -> None: super().__init__( code_model=code_model, @@ -53,7 +54,7 @@ def __init__( parameters=parameters, overloads=overloads, ) - self.overloads: List["RequestBuilder"] = overloads or [] + self.overloads: Sequence["RequestBuilder"] = overloads or [] self.url: str = yaml_data["url"] self.method: str = yaml_data["method"] self.want_tracing = False @@ -154,7 +155,7 @@ def from_yaml( # So add operation group name is effective method overloads = [ - RequestBuilder.from_yaml(rb_yaml_data, code_model, client) + cast(RequestBuilder, RequestBuilder.from_yaml(rb_yaml_data, code_model, client)) for rb_yaml_data in yaml_data.get("overloads", []) ] parameter_list = cls.parameter_list_type()(yaml_data, code_model) From 848675a271c6f3bbc233b428dc3827c056815835 Mon Sep 17 00:00:00 2001 From: Krista Pratico Date: Mon, 6 Jan 2025 10:16:04 -0800 Subject: [PATCH 4/4] fix pylint --- .../generator/pygen/codegen/models/operation.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/http-client-python/generator/pygen/codegen/models/operation.py b/packages/http-client-python/generator/pygen/codegen/models/operation.py index 1aed138d9b3..b97ec390a3e 100644 --- a/packages/http-client-python/generator/pygen/codegen/models/operation.py +++ b/packages/http-client-python/generator/pygen/codegen/models/operation.py @@ -466,7 +466,9 @@ def from_yaml( responses = [cast(ResponseType, get_response(r, code_model)) for r in yaml_data["responses"]] exceptions = [Response.from_yaml(e, code_model) for e in yaml_data["exceptions"]] parameter_list = ParameterList.from_yaml(yaml_data, code_model) - overloads = [cast(Operation, cls.from_yaml(overload, code_model, client)) for overload in yaml_data.get("overloads", [])] + overloads = [ + cast(Operation, cls.from_yaml(overload, code_model, client)) for overload in yaml_data.get("overloads", []) + ] return cls( yaml_data=yaml_data,