Skip to content

Commit 10e6552

Browse files
author
maxi297
committed
Builder shenanigans
1 parent a13e801 commit 10e6552

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -176,16 +176,7 @@ def by_headers(
176176
parsers_by_header[header] = {header_value: parser for header_value in header_values}
177177
return cls(fallback_parser, stream_response, parsers_by_header)
178178

179-
@classmethod
180-
def from_parser(cls, parser: Parser, stream_response: bool) -> "CompositeRawDecoder":
181-
return cls(parser, stream_response, {})
182-
183-
def __init__(
184-
self,
185-
parser: Parser,
186-
stream_response: bool = True,
187-
parsers_by_header: Optional[Dict[_HEADER, Dict[_HEADER_VALUE, Parser]]] = None,
188-
) -> None:
179+
def __init__(self, parser: Parser, stream_response: bool = True, parsers_by_header: Optional[Dict[_HEADER, Dict[_HEADER_VALUE, Parser]]] = None) -> None:
189180
self._parsers_by_header = parsers_by_header if parsers_by_header else {}
190181
self._fallback_parser = parser
191182
self._stream_response = stream_response

airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2216,9 +2216,16 @@ def create_gzip_decoder(
22162216
self, model: GzipDecoderModel, config: Config, **kwargs: Any
22172217
) -> Decoder:
22182218
gzip_parser: GzipParser = ModelToComponentFactory._get_parser(model, config) # type: ignore # based on the model, we know this will be a GzipParser
2219+
2220+
if self._emit_connector_builder_messages:
2221+
# This is very surprising but if the response is not streamed, CompositeRawDecoder calls response.content and the requests library actually uncompress the data as opposed to response.raw which uses urllib3 directly and does not uncompress the data
2222+
return CompositeRawDecoder(gzip_parser.inner_parser, False)
2223+
22192224
return CompositeRawDecoder.by_headers(
2220-
[({"Content-Encoding", "Content-Type"}, _COMPRESSED_RESPONSE_TYPES, gzip_parser)],
2221-
stream_response=False if self._emit_connector_builder_messages else True,
2225+
[
2226+
({"Content-Encoding", "Content-Type"}, _COMPRESSED_RESPONSE_TYPES, gzip_parser)
2227+
],
2228+
stream_response=True,
22222229
fallback_parser=gzip_parser.inner_parser,
22232230
)
22242231

0 commit comments

Comments
 (0)