From dc14ed91503def50ad23091eb2222a2391a1e8b5 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Thu, 26 Mar 2026 15:15:18 -0400 Subject: [PATCH 1/3] fix imports --- .../generator/pygen/codegen/models/operation.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) 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 902f34fe978..c5f15593893 100644 --- a/packages/http-client-python/generator/pygen/codegen/models/operation.py +++ b/packages/http-client-python/generator/pygen/codegen/models/operation.py @@ -449,21 +449,22 @@ def imports( # pylint: disable=too-many-branches, disable=too-many-statements file_import.add_import("json", ImportType.STDLIB) if self.enable_import_deserialize_xml: file_import.add_submodule_import(relative_path, "_deserialize_xml", ImportType.LOCAL) - elif self.need_deserialize: + if any( + r.type + and not isinstance(r.type, BinaryIteratorType) + and not xml_serializable(str(r.default_content_type)) + for r in self.responses + ): file_import.add_submodule_import(relative_path, "_deserialize", ImportType.LOCAL) if self.default_error_deserialization(serialize_namespace) or self.non_default_errors: - xml_non_default_errors = any( - xml_serializable(str(e.default_content_type)) for e in self.non_default_errors - ) try: default_error = next(e for e in self.exceptions if "default" in e.status_codes and e.type) except StopIteration: default_error = None - if xml_non_default_errors or ( - default_error and xml_serializable(str(default_error.default_content_type)) - ): + all_errors = list(self.non_default_errors) + ([default_error] if default_error else []) + if any(xml_serializable(str(e.default_content_type)) for e in all_errors): file_import.add_submodule_import(relative_path, "_failsafe_deserialize_xml", ImportType.LOCAL) - else: + if any(not xml_serializable(str(e.default_content_type)) for e in all_errors): file_import.add_submodule_import(relative_path, "_failsafe_deserialize", ImportType.LOCAL) return file_import From 48c2a3842171b2d7e90d86748535583623a7c315 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Thu, 26 Mar 2026 15:16:59 -0400 Subject: [PATCH 2/3] add changeset --- .../python-deserializeXmlImport-2026-2-26-15-16-52.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .chronus/changes/python-deserializeXmlImport-2026-2-26-15-16-52.md diff --git a/.chronus/changes/python-deserializeXmlImport-2026-2-26-15-16-52.md b/.chronus/changes/python-deserializeXmlImport-2026-2-26-15-16-52.md new file mode 100644 index 00000000000..edd02db8ca0 --- /dev/null +++ b/.chronus/changes/python-deserializeXmlImport-2026-2-26-15-16-52.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-python" +--- + +Fix import of `_deserialize` in mix of xml and non-xml models \ No newline at end of file From 6347b9534c55ba345e9618fa6e39e9d90a9fd775 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Thu, 26 Mar 2026 15:18:26 -0400 Subject: [PATCH 3/3] bump tcgc version --- packages/http-client-python/package-lock.json | 18 +++++++++--------- packages/http-client-python/package.json | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/http-client-python/package-lock.json b/packages/http-client-python/package-lock.json index 9c4b5521736..dd2381c12d3 100644 --- a/packages/http-client-python/package-lock.json +++ b/packages/http-client-python/package-lock.json @@ -22,7 +22,7 @@ "@azure-tools/typespec-azure-core": "~0.66.0", "@azure-tools/typespec-azure-resource-manager": "~0.66.0", "@azure-tools/typespec-azure-rulesets": "~0.66.0", - "@azure-tools/typespec-client-generator-core": "~0.66.3", + "@azure-tools/typespec-client-generator-core": "~0.66.4", "@types/js-yaml": "~4.0.5", "@types/node": "~25.0.2", "@types/semver": "7.5.8", @@ -53,7 +53,7 @@ "@azure-tools/typespec-azure-core": ">=0.66.0 <1.0.0", "@azure-tools/typespec-azure-resource-manager": ">=0.66.0 <1.0.0", "@azure-tools/typespec-azure-rulesets": ">=0.66.0 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.66.3 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.66.4 <1.0.0", "@typespec/compiler": "^1.10.0", "@typespec/events": ">=0.80.0 <1.0.0", "@typespec/http": "^1.10.0", @@ -114,9 +114,9 @@ } }, "node_modules/@azure-tools/typespec-azure-core": { - "version": "0.66.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.66.0.tgz", - "integrity": "sha512-OBKxRN7AucK3snh+GtLKSDdcZTz08IgcSZlIO3c4KSlmcR5twT1NMyqf1+V8SAhyOdZimndb+ikzrkkgab+GpA==", + "version": "0.66.1", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.66.1.tgz", + "integrity": "sha512-i8lMegL4s0I6xQT61zIIhmN1aA6iYFoH+7owSl/msOD0yVWx3Khf3ETULX53yHFd7OoUDAjmFx7+8j9atWXzHQ==", "dev": true, "license": "MIT", "engines": { @@ -167,9 +167,9 @@ } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.66.3", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.66.3.tgz", - "integrity": "sha512-sNetQ6igxAp/vL6X2kEIy715ToDTqoJeb+OL59GEUtOW/3KBSi5tsxvDdCwSfEoaNEmv/FYjh/gJDwAWCJdFJg==", + "version": "0.66.4", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.66.4.tgz", + "integrity": "sha512-KRMWLvojku2qFnPpUiZNTa/nm49IjSsGVhPmFhQ5a01KwI2T7zT+Ga39/xLTLHHT4aIgBaMWxD4ioZa2ZhbEKw==", "dev": true, "license": "MIT", "dependencies": { @@ -181,7 +181,7 @@ "node": ">=20.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "^0.66.0", + "@azure-tools/typespec-azure-core": "^0.66.1", "@typespec/compiler": "^1.10.0", "@typespec/events": "^0.80.0", "@typespec/http": "^1.10.0", diff --git a/packages/http-client-python/package.json b/packages/http-client-python/package.json index 9215446359b..b80753b13ac 100644 --- a/packages/http-client-python/package.json +++ b/packages/http-client-python/package.json @@ -58,7 +58,7 @@ "@azure-tools/typespec-azure-core": ">=0.66.0 <1.0.0", "@azure-tools/typespec-azure-resource-manager": ">=0.66.0 <1.0.0", "@azure-tools/typespec-azure-rulesets": ">=0.66.0 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.66.3 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.66.4 <1.0.0", "@typespec/compiler": "^1.10.0", "@typespec/http": "^1.10.0", "@typespec/openapi": "^1.10.0", @@ -81,7 +81,7 @@ "@azure-tools/typespec-azure-core": "~0.66.0", "@azure-tools/typespec-azure-resource-manager": "~0.66.0", "@azure-tools/typespec-azure-rulesets": "~0.66.0", - "@azure-tools/typespec-client-generator-core": "~0.66.3", + "@azure-tools/typespec-client-generator-core": "~0.66.4", "@azure-tools/azure-http-specs": "0.1.0-alpha.39-dev.4", "@typespec/compiler": "^1.10.0", "@typespec/http": "^1.10.0",