From e19522c153bf3353bd08e6b0e1040b9886dd3160 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Mon, 23 Feb 2026 12:03:15 -0500 Subject: [PATCH 1/5] add pylint disable for list_of_elem deserialization --- .../generator/pygen/codegen/serializers/builder_serializer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py b/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py index 46611d152ac..6f2f447b3ef 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py @@ -1419,14 +1419,16 @@ def _extract_data_callback( # pylint: disable=too-many-statements,too-many-bran "".join([f'.get("{i}", {{}})' for i in item_name_array[:-1]]) + f'.get("{item_name_array[-1]}", [])' ) list_of_elem_deserialized = "" + pylint_disable = "" if self.code_model.options["models-mode"] == "dpg": item_type = builder.item_type.type_annotation( is_operation_file=True, serialize_namespace=self.serialize_namespace ) list_of_elem_deserialized = f"_deserialize({item_type}, deserialized{access})" + pylint_disable = " # pylint: disable=protected-access" else: list_of_elem_deserialized = f"deserialized{access}" - retval.append(f" list_of_elem = {list_of_elem_deserialized}") + retval.append(f" list_of_elem = {list_of_elem_deserialized}{pylint_disable}") retval.append(" if cls:") retval.append(" list_of_elem = cls(list_of_elem) # type: ignore") From 3c129046d2a61dfc8dd21d3f1245750bff136e74 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Mon, 23 Feb 2026 12:03:52 -0500 Subject: [PATCH 2/5] add changeset --- .../python-extratItemsPylintDisable-2026-1-23-12-3-45.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .chronus/changes/python-extratItemsPylintDisable-2026-1-23-12-3-45.md diff --git a/.chronus/changes/python-extratItemsPylintDisable-2026-1-23-12-3-45.md b/.chronus/changes/python-extratItemsPylintDisable-2026-1-23-12-3-45.md new file mode 100644 index 00000000000..711633e6938 --- /dev/null +++ b/.chronus/changes/python-extratItemsPylintDisable-2026-1-23-12-3-45.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-python" +--- + +Add pylint disable for list of elem deserialization \ No newline at end of file From e904343f28da8eaa5ff23f52c5a4a431d01da237 Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Mon, 23 Feb 2026 16:03:01 -0500 Subject: [PATCH 3/5] ensure protected access disable applies to deserialize function --- .../pygen/codegen/serializers/builder_serializer.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py b/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py index 6f2f447b3ef..a6c273d7d71 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py @@ -1424,11 +1424,16 @@ def _extract_data_callback( # pylint: disable=too-many-statements,too-many-bran item_type = builder.item_type.type_annotation( is_operation_file=True, serialize_namespace=self.serialize_namespace ) - list_of_elem_deserialized = f"_deserialize({item_type}, deserialized{access})" - pylint_disable = " # pylint: disable=protected-access" + list_of_elem_deserialized = [ + "_deserialize( # pylint: disable=protected-access", + f"{item_type},", + f"deserialized{access},", + ")", + ] else: - list_of_elem_deserialized = f"deserialized{access}" - retval.append(f" list_of_elem = {list_of_elem_deserialized}{pylint_disable}") + list_of_elem_deserialized = [f"deserialized{access}"] + list_of_elem_deserialized_str = "\n ".join(list_of_elem_deserialized) + retval.append(f" list_of_elem = {list_of_elem_deserialized_str}") retval.append(" if cls:") retval.append(" list_of_elem = cls(list_of_elem) # type: ignore") From cfc9b3c12586f8f467a8dc1c19638d698842bf7f Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Tue, 24 Feb 2026 12:06:16 -0500 Subject: [PATCH 4/5] fix lint --- .../generator/pygen/codegen/serializers/builder_serializer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py b/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py index a6c273d7d71..cc23b284252 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py @@ -1418,7 +1418,6 @@ def _extract_data_callback( # pylint: disable=too-many-statements,too-many-bran access = ( "".join([f'.get("{i}", {{}})' for i in item_name_array[:-1]]) + f'.get("{item_name_array[-1]}", [])' ) - list_of_elem_deserialized = "" pylint_disable = "" if self.code_model.options["models-mode"] == "dpg": item_type = builder.item_type.type_annotation( From 8fda5388ed863fa90a2c5eadc56fcb31c3b094fb Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Tue, 24 Feb 2026 14:34:19 -0500 Subject: [PATCH 5/5] lint internal model instead of internal function --- .../pygen/codegen/serializers/builder_serializer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py b/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py index cc23b284252..b6b80fb3acb 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/builder_serializer.py @@ -1423,9 +1423,10 @@ def _extract_data_callback( # pylint: disable=too-many-statements,too-many-bran item_type = builder.item_type.type_annotation( is_operation_file=True, serialize_namespace=self.serialize_namespace ) + pylint_disable = " # pylint: disable=protected-access" if builder.item_type.internal else "" list_of_elem_deserialized = [ - "_deserialize( # pylint: disable=protected-access", - f"{item_type},", + "_deserialize(", + f"{item_type},{pylint_disable}", f"deserialized{access},", ")", ]