diff --git a/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py b/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py index be9b4903..d811fee0 100644 --- a/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +++ b/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py @@ -102,6 +102,7 @@ ) from airbyte_cdk.sources.declarative.models import ( CustomStateMigration, + GzipDecoder, ) from airbyte_cdk.sources.declarative.models.declarative_component_schema import ( AddedFieldDefinition as AddedFieldDefinitionModel, @@ -548,6 +549,7 @@ def _init_mappings(self) -> None: InlineSchemaLoaderModel: self.create_inline_schema_loader, JsonDecoderModel: self.create_json_decoder, JsonlDecoderModel: self.create_jsonl_decoder, + GzipDecoderModel: self.create_gzip_decoder, KeysToLowerModel: self.create_keys_to_lower_transformation, KeysToSnakeCaseModel: self.create_keys_to_snake_transformation, KeysReplaceModel: self.create_keys_replace_transformation, @@ -2047,6 +2049,12 @@ def create_jsonl_decoder(model: JsonlDecoderModel, config: Config, **kwargs: Any parser=ModelToComponentFactory._get_parser(model, config), stream_response=True ) + @staticmethod + def create_gzip_decoder(model: GzipDecoderModel, config: Config, **kwargs: Any) -> Decoder: + return CompositeRawDecoder( + parser=ModelToComponentFactory._get_parser(model, config), stream_response=False + ) + @staticmethod def create_iterable_decoder( model: IterableDecoderModel, config: Config, **kwargs: Any