diff --git a/.chronus/changes/python-bumpDeps-2025-6-23-14-5-43.md b/.chronus/changes/python-bumpDeps-2025-6-23-14-5-43.md new file mode 100644 index 00000000000..1fad251667e --- /dev/null +++ b/.chronus/changes/python-bumpDeps-2025-6-23-14-5-43.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-python" +--- + +Import mixins from operations init file to get patch changes \ No newline at end of file diff --git a/packages/http-client-python/generator/pygen/codegen/models/client.py b/packages/http-client-python/generator/pygen/codegen/models/client.py index 8708b7eae64..68b52c28565 100644 --- a/packages/http-client-python/generator/pygen/codegen/models/client.py +++ b/packages/http-client-python/generator/pygen/codegen/models/client.py @@ -322,13 +322,11 @@ def imports(self, async_mode: bool, **kwargs) -> FileImport: ) serialize_namespace = kwargs.get("serialize_namespace", self.code_model.namespace) for og in self.operation_groups: - suffix = f".{og.filename}" if (not self.code_model.options["multiapi"]) and og.is_mixin else "" file_import.add_submodule_import( self.code_model.get_relative_import_path( serialize_namespace, self.code_model.get_imported_namespace_for_operation(og.client_namespace, async_mode), - ) - + suffix, + ), og.class_name, ImportType.LOCAL, ) diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/operations_init_serializer.py b/packages/http-client-python/generator/pygen/codegen/serializers/operations_init_serializer.py index 343103b6592..0ca067433a6 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/operations_init_serializer.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/operations_init_serializer.py @@ -9,6 +9,12 @@ from ..models import CodeModel, OperationGroup +def get_pylint_disable(code_model: CodeModel, og: OperationGroup) -> str: + if og.is_mixin and not code_model.options["multiapi"]: + return " # pylint: disable=unused-import" + return "" + + class OperationsInitSerializer: def __init__( self, @@ -27,9 +33,8 @@ def _get_filename(operation_group: OperationGroup) -> str: return "_operations" if self.code_model.options["combine-operation-files"] else operation_group.filename return [ - f"from .{_get_filename(og)} import {og.class_name} # type: ignore" + f"from .{_get_filename(og)} import {og.class_name} # type: ignore{get_pylint_disable(self.code_model, og)}" for og in self.operation_groups - if not og.is_mixin or self.code_model.options["multiapi"] ] def serialize(self) -> str: