diff --git a/.chronus/changes/python-iterBytes-2026-1-23-17-37-6.md b/.chronus/changes/python-iterBytes-2026-1-23-17-37-6.md new file mode 100644 index 00000000000..025982c68ba --- /dev/null +++ b/.chronus/changes/python-iterBytes-2026-1-23-17-37-6.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-python" +--- + +allow decompression in version tolerant \ No newline at end of file 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..7b09dbc32b7 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 @@ -564,7 +564,7 @@ def example_template(self, builder: OperationType) -> list[str]: def make_pipeline_call(self, builder: OperationType) -> list[str]: retval = [] type_ignore = self.async_mode and builder.group_name == "" # is in a mixin - if builder.stream_value is True and not self.code_model.options["version-tolerant"]: + if builder.stream_value: retval.append("_decompress = kwargs.pop('decompress', True)") pylint_disable = " # pylint: disable=protected-access" if self.code_model.is_azure_flavor else "" retval.extend( @@ -973,7 +973,7 @@ def response_deserialization( # pylint: disable=too-many-statements else: stream_logic = False if self.code_model.options["version-tolerant"]: - deserialized = "response.iter_bytes()" + deserialized = "response.iter_bytes() if _decompress else response.iter_raw()" else: deserialized = ( f"response.stream_download(self._client.{self.pipeline_name}, decompress=_decompress)" @@ -1020,7 +1020,7 @@ def response_deserialization( # pylint: disable=too-many-statements if len(deserialize_code) > 0: if builder.expose_stream_keyword and stream_logic: retval.append("if _stream:") - retval.append(" deserialized = response.iter_bytes()") + retval.append(" deserialized = response.iter_bytes() if _decompress else response.iter_raw()") retval.append("else:") retval.extend([f" {dc}" for dc in deserialize_code]) else: