airbyte-cdk 6.45.1.post47.dev14456468218__tar.gz → 6.45.2.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/PKG-INFO +2 -2
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/models/__init__.py +0 -1
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/models/airbyte_protocol.py +3 -1
- airbyte_cdk-6.45.2.dev0/airbyte_cdk/models/file_transfer_record_message.py +13 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +1 -1
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -8
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -36
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +1 -6
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -31
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +27 -41
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +10 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +1 -1
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +4 -9
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +16 -38
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +15 -8
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/schema_helpers.py +1 -10
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +12 -3
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +38 -15
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +3 -1
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -3
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/types.py +2 -11
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/record_helper.py +8 -8
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/response_builder.py +0 -8
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/pyproject.toml +2 -3
- airbyte_cdk-6.45.1.post47.dev14456468218/airbyte_cdk/sources/declarative/retrievers/file_uploader.py +0 -89
- airbyte_cdk-6.45.1.post47.dev14456468218/airbyte_cdk/sources/file_based/file_record_data.py +0 -22
- airbyte_cdk-6.45.1.post47.dev14456468218/airbyte_cdk/sources/utils/files_directory.py +0 -15
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/LICENSE.txt +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/README.md +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/config_observation.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/main.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/destination.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/entrypoint.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/logger.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/abstract_source.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/config.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/http_logger.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/core.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/http.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/transform.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/datetime_helpers.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/event_timing.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/message_utils.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
- {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.45.
|
3
|
+
Version: 6.45.2.dev0
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
Home-page: https://airbyte.com
|
6
6
|
License: MIT
|
@@ -22,7 +22,7 @@ Provides-Extra: sql
|
|
22
22
|
Provides-Extra: vector-db-based
|
23
23
|
Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
|
24
24
|
Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
|
25
|
-
Requires-Dist: airbyte-protocol-models-dataclasses (>=0.
|
25
|
+
Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
|
26
26
|
Requires-Dist: anyascii (>=0.3.2,<0.4.0)
|
27
27
|
Requires-Dist: avro (>=1.11.2,<1.13.0) ; extra == "file-based"
|
28
28
|
Requires-Dist: backoff
|
@@ -8,6 +8,8 @@ from typing import Annotated, Any, Dict, List, Mapping, Optional, Union
|
|
8
8
|
from airbyte_protocol_dataclasses.models import * # noqa: F403 # Allow '*'
|
9
9
|
from serpyco_rs.metadata import Alias
|
10
10
|
|
11
|
+
from airbyte_cdk.models.file_transfer_record_message import AirbyteFileTransferRecordMessage
|
12
|
+
|
11
13
|
# ruff: noqa: F405 # ignore fuzzy import issues with 'import *'
|
12
14
|
|
13
15
|
|
@@ -82,7 +84,7 @@ class AirbyteMessage:
|
|
82
84
|
spec: Optional[ConnectorSpecification] = None # type: ignore [name-defined]
|
83
85
|
connectionStatus: Optional[AirbyteConnectionStatus] = None # type: ignore [name-defined]
|
84
86
|
catalog: Optional[AirbyteCatalog] = None # type: ignore [name-defined]
|
85
|
-
record: Optional[AirbyteRecordMessage] = None # type: ignore [name-defined]
|
87
|
+
record: Optional[Union[AirbyteFileTransferRecordMessage, AirbyteRecordMessage]] = None # type: ignore [name-defined]
|
86
88
|
state: Optional[AirbyteStateMessage] = None
|
87
89
|
trace: Optional[AirbyteTraceMessage] = None # type: ignore [name-defined]
|
88
90
|
control: Optional[AirbyteControlMessage] = None # type: ignore [name-defined]
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Copyright (c) 2024 Airbyte, Inc., all rights reserved.
|
2
|
+
|
3
|
+
from dataclasses import dataclass
|
4
|
+
from typing import Any, Dict, Optional
|
5
|
+
|
6
|
+
|
7
|
+
@dataclass
|
8
|
+
class AirbyteFileTransferRecordMessage:
|
9
|
+
stream: str
|
10
|
+
file: Dict[str, Any]
|
11
|
+
emitted_at: int
|
12
|
+
namespace: Optional[str] = None
|
13
|
+
data: Optional[Dict[str, Any]] = None
|
@@ -149,7 +149,7 @@ class ConcurrentReadProcessor:
|
|
149
149
|
message = stream_data_to_airbyte_message(
|
150
150
|
stream_name=record.stream_name,
|
151
151
|
data_or_message=record.data,
|
152
|
-
|
152
|
+
is_file_transfer_message=record.is_file_transfer_message,
|
153
153
|
)
|
154
154
|
stream = self._stream_name_to_instance[record.stream_name]
|
155
155
|
|
@@ -25,7 +25,6 @@ from airbyte_cdk.sources.declarative.incremental.per_partition_with_global impor
|
|
25
25
|
PerPartitionWithGlobalCursor,
|
26
26
|
)
|
27
27
|
from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
|
28
|
-
from airbyte_cdk.sources.declarative.models import FileUploader
|
29
28
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
30
29
|
ConcurrencyLevel as ConcurrencyLevelModel,
|
31
30
|
)
|
@@ -207,10 +206,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
207
206
|
# these legacy Python streams the way we do low-code streams to determine if they are concurrent compatible,
|
208
207
|
# so we need to treat them as synchronous
|
209
208
|
|
210
|
-
supports_file_transfer = (
|
211
|
-
"file_uploader" in name_to_stream_mapping[declarative_stream.name]
|
212
|
-
)
|
213
|
-
|
214
209
|
if (
|
215
210
|
isinstance(declarative_stream, DeclarativeStream)
|
216
211
|
and name_to_stream_mapping[declarative_stream.name]["type"]
|
@@ -327,7 +322,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
327
322
|
else None,
|
328
323
|
logger=self.logger,
|
329
324
|
cursor=cursor,
|
330
|
-
supports_file_transfer=supports_file_transfer,
|
331
325
|
)
|
332
326
|
)
|
333
327
|
elif (
|
@@ -359,7 +353,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
359
353
|
cursor_field=None,
|
360
354
|
logger=self.logger,
|
361
355
|
cursor=final_state_cursor,
|
362
|
-
supports_file_transfer=supports_file_transfer,
|
363
356
|
)
|
364
357
|
)
|
365
358
|
elif (
|
@@ -413,7 +406,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
413
406
|
cursor_field=perpartition_cursor.cursor_field.cursor_field_key,
|
414
407
|
logger=self.logger,
|
415
408
|
cursor=perpartition_cursor,
|
416
|
-
supports_file_transfer=supports_file_transfer,
|
417
409
|
)
|
418
410
|
)
|
419
411
|
else:
|
@@ -1448,42 +1448,6 @@ definitions:
|
|
1448
1448
|
- "$ref": "#/definitions/LegacyToPerPartitionStateMigration"
|
1449
1449
|
- "$ref": "#/definitions/CustomStateMigration"
|
1450
1450
|
default: []
|
1451
|
-
file_uploader:
|
1452
|
-
title: File Uploader
|
1453
|
-
description: (experimental) Describes how to fetch a file
|
1454
|
-
type: object
|
1455
|
-
required:
|
1456
|
-
- type
|
1457
|
-
- requester
|
1458
|
-
- download_target_extractor
|
1459
|
-
properties:
|
1460
|
-
type:
|
1461
|
-
type: string
|
1462
|
-
enum: [ FileUploader ]
|
1463
|
-
requester:
|
1464
|
-
description: Requester component that describes how to prepare HTTP requests to send to the source API.
|
1465
|
-
anyOf:
|
1466
|
-
- "$ref": "#/definitions/CustomRequester"
|
1467
|
-
- "$ref": "#/definitions/HttpRequester"
|
1468
|
-
download_target_extractor:
|
1469
|
-
description: Responsible for fetching the url where the file is located. This is applied on each records and not on the HTTP response
|
1470
|
-
anyOf:
|
1471
|
-
- "$ref": "#/definitions/CustomRecordExtractor"
|
1472
|
-
- "$ref": "#/definitions/DpathExtractor"
|
1473
|
-
file_extractor:
|
1474
|
-
description: Responsible for fetching the content of the file. If not defined, the assumption is that the whole response body is the file content
|
1475
|
-
anyOf:
|
1476
|
-
- "$ref": "#/definitions/CustomRecordExtractor"
|
1477
|
-
- "$ref": "#/definitions/DpathExtractor"
|
1478
|
-
filename_extractor:
|
1479
|
-
description: Defines the name to store the file. Stream name is automatically added to the file path. File unique ID can be used to avoid overwriting files. Random UUID will be used if the extractor is not provided.
|
1480
|
-
type: string
|
1481
|
-
interpolation_context:
|
1482
|
-
- config
|
1483
|
-
- record
|
1484
|
-
examples:
|
1485
|
-
- "{{ record.id }}/{{ record.file_name }}/"
|
1486
|
-
- "{{ record.id }}_{{ record.file_name }}/"
|
1487
1451
|
$parameters:
|
1488
1452
|
type: object
|
1489
1453
|
additional_properties: true
|
@@ -15,7 +15,6 @@ from airbyte_cdk.sources.declarative.extractors.type_transformer import (
|
|
15
15
|
)
|
16
16
|
from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
|
17
17
|
from airbyte_cdk.sources.declarative.models import SchemaNormalization
|
18
|
-
from airbyte_cdk.sources.declarative.retrievers.file_uploader import FileUploader
|
19
18
|
from airbyte_cdk.sources.declarative.transformations import RecordTransformation
|
20
19
|
from airbyte_cdk.sources.types import Config, Record, StreamSlice, StreamState
|
21
20
|
from airbyte_cdk.sources.utils.transform import TypeTransformer
|
@@ -43,7 +42,6 @@ class RecordSelector(HttpSelector):
|
|
43
42
|
record_filter: Optional[RecordFilter] = None
|
44
43
|
transformations: List[RecordTransformation] = field(default_factory=lambda: [])
|
45
44
|
transform_before_filtering: bool = False
|
46
|
-
file_uploader: Optional[FileUploader] = None
|
47
45
|
|
48
46
|
def __post_init__(self, parameters: Mapping[str, Any]) -> None:
|
49
47
|
self._parameters = parameters
|
@@ -119,10 +117,7 @@ class RecordSelector(HttpSelector):
|
|
119
117
|
transformed_filtered_data, schema=records_schema
|
120
118
|
)
|
121
119
|
for data in normalized_data:
|
122
|
-
|
123
|
-
if self.file_uploader:
|
124
|
-
self.file_uploader.upload(record)
|
125
|
-
yield record
|
120
|
+
yield Record(data=data, stream_name=self.name, associated_slice=stream_slice)
|
126
121
|
|
127
122
|
def _normalize_by_schema(
|
128
123
|
self, records: Iterable[Mapping[str, Any]], schema: Optional[Mapping[str, Any]]
|
@@ -2042,31 +2042,6 @@ class SelectiveAuthenticator(BaseModel):
|
|
2042
2042
|
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2043
2043
|
|
2044
2044
|
|
2045
|
-
class FileUploader(BaseModel):
|
2046
|
-
type: Literal["FileUploader"]
|
2047
|
-
requester: Union[CustomRequester, HttpRequester] = Field(
|
2048
|
-
...,
|
2049
|
-
description="Requester component that describes how to prepare HTTP requests to send to the source API.",
|
2050
|
-
)
|
2051
|
-
download_target_extractor: Union[CustomRecordExtractor, DpathExtractor] = Field(
|
2052
|
-
...,
|
2053
|
-
description="Responsible for fetching the url where the file is located. This is applied on each records and not on the HTTP response",
|
2054
|
-
)
|
2055
|
-
file_extractor: Optional[Union[CustomRecordExtractor, DpathExtractor]] = Field(
|
2056
|
-
None,
|
2057
|
-
description="Responsible for fetching the content of the file. If not defined, the assumption is that the whole response body is the file content",
|
2058
|
-
)
|
2059
|
-
filename_extractor: Optional[str] = Field(
|
2060
|
-
None,
|
2061
|
-
description="Defines the name to store the file. Stream name is automatically added to the file path. File unique ID can be used to avoid overwriting files. Random UUID will be used if the extractor is not provided.",
|
2062
|
-
examples=[
|
2063
|
-
"{{ record.id }}/{{ record.file_name }}/",
|
2064
|
-
"{{ record.id }}_{{ record.file_name }}/",
|
2065
|
-
],
|
2066
|
-
)
|
2067
|
-
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2068
|
-
|
2069
|
-
|
2070
2045
|
class DeclarativeStream(BaseModel):
|
2071
2046
|
class Config:
|
2072
2047
|
extra = Extra.allow
|
@@ -2125,11 +2100,6 @@ class DeclarativeStream(BaseModel):
|
|
2125
2100
|
description="Array of state migrations to be applied on the input state",
|
2126
2101
|
title="State Migrations",
|
2127
2102
|
)
|
2128
|
-
file_uploader: Optional[FileUploader] = Field(
|
2129
|
-
None,
|
2130
|
-
description="(experimental) Describes how to fetch a file",
|
2131
|
-
title="File Uploader",
|
2132
|
-
)
|
2133
2103
|
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2134
2104
|
|
2135
2105
|
|
@@ -2623,7 +2593,6 @@ CompositeErrorHandler.update_forward_refs()
|
|
2623
2593
|
DeclarativeSource1.update_forward_refs()
|
2624
2594
|
DeclarativeSource2.update_forward_refs()
|
2625
2595
|
SelectiveAuthenticator.update_forward_refs()
|
2626
|
-
FileUploader.update_forward_refs()
|
2627
2596
|
DeclarativeStream.update_forward_refs()
|
2628
2597
|
SessionTokenAuthenticator.update_forward_refs()
|
2629
2598
|
DynamicSchemaLoader.update_forward_refs()
|
@@ -106,6 +106,7 @@ from airbyte_cdk.sources.declarative.migrations.legacy_to_per_partition_state_mi
|
|
106
106
|
)
|
107
107
|
from airbyte_cdk.sources.declarative.models import (
|
108
108
|
CustomStateMigration,
|
109
|
+
GzipDecoder,
|
109
110
|
)
|
110
111
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
111
112
|
AddedFieldDefinition as AddedFieldDefinitionModel,
|
@@ -227,9 +228,6 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
|
|
227
228
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
228
229
|
ExponentialBackoffStrategy as ExponentialBackoffStrategyModel,
|
229
230
|
)
|
230
|
-
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
231
|
-
FileUploader as FileUploaderModel,
|
232
|
-
)
|
233
231
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
234
232
|
FixedWindowCallRatePolicy as FixedWindowCallRatePolicyModel,
|
235
233
|
)
|
@@ -481,7 +479,6 @@ from airbyte_cdk.sources.declarative.retrievers import (
|
|
481
479
|
SimpleRetriever,
|
482
480
|
SimpleRetrieverTestReadDecorator,
|
483
481
|
)
|
484
|
-
from airbyte_cdk.sources.declarative.retrievers.file_uploader import FileUploader
|
485
482
|
from airbyte_cdk.sources.declarative.schema import (
|
486
483
|
ComplexFieldType,
|
487
484
|
DefaultSchemaLoader,
|
@@ -678,7 +675,6 @@ class ModelToComponentFactory:
|
|
678
675
|
ComponentMappingDefinitionModel: self.create_components_mapping_definition,
|
679
676
|
ZipfileDecoderModel: self.create_zipfile_decoder,
|
680
677
|
HTTPAPIBudgetModel: self.create_http_api_budget,
|
681
|
-
FileUploaderModel: self.create_file_uploader,
|
682
678
|
FixedWindowCallRatePolicyModel: self.create_fixed_window_call_rate_policy,
|
683
679
|
MovingWindowCallRatePolicyModel: self.create_moving_window_call_rate_policy,
|
684
680
|
UnlimitedCallRatePolicyModel: self.create_unlimited_call_rate_policy,
|
@@ -1830,11 +1826,6 @@ class ModelToComponentFactory:
|
|
1830
1826
|
transformations.append(
|
1831
1827
|
self._create_component_from_model(model=transformation_model, config=config)
|
1832
1828
|
)
|
1833
|
-
file_uploader = None
|
1834
|
-
if model.file_uploader:
|
1835
|
-
file_uploader = self._create_component_from_model(
|
1836
|
-
model=model.file_uploader, config=config
|
1837
|
-
)
|
1838
1829
|
|
1839
1830
|
retriever = self._create_component_from_model(
|
1840
1831
|
model=model.retriever,
|
@@ -1846,7 +1837,6 @@ class ModelToComponentFactory:
|
|
1846
1837
|
stop_condition_on_cursor=stop_condition_on_cursor,
|
1847
1838
|
client_side_incremental_sync=client_side_incremental_sync,
|
1848
1839
|
transformations=transformations,
|
1849
|
-
file_uploader=file_uploader,
|
1850
1840
|
incremental_sync=model.incremental_sync,
|
1851
1841
|
)
|
1852
1842
|
cursor_field = model.incremental_sync.cursor_field if model.incremental_sync else None
|
@@ -2064,6 +2054,7 @@ class ModelToComponentFactory:
|
|
2064
2054
|
config: Config,
|
2065
2055
|
*,
|
2066
2056
|
url_base: str,
|
2057
|
+
extractor_model: Optional[Union[CustomRecordExtractorModel, DpathExtractorModel]] = None,
|
2067
2058
|
decoder: Optional[Decoder] = None,
|
2068
2059
|
cursor_used_for_stop_condition: Optional[DeclarativeCursor] = None,
|
2069
2060
|
) -> Union[DefaultPaginator, PaginatorTestReadDecorator]:
|
@@ -2085,7 +2076,10 @@ class ModelToComponentFactory:
|
|
2085
2076
|
else None
|
2086
2077
|
)
|
2087
2078
|
pagination_strategy = self._create_component_from_model(
|
2088
|
-
model=model.pagination_strategy,
|
2079
|
+
model=model.pagination_strategy,
|
2080
|
+
config=config,
|
2081
|
+
decoder=decoder_to_use,
|
2082
|
+
extractor_model=extractor_model,
|
2089
2083
|
)
|
2090
2084
|
if cursor_used_for_stop_condition:
|
2091
2085
|
pagination_strategy = StopConditionPaginationStrategyDecorator(
|
@@ -2582,7 +2576,12 @@ class ModelToComponentFactory:
|
|
2582
2576
|
)
|
2583
2577
|
|
2584
2578
|
def create_offset_increment(
|
2585
|
-
self,
|
2579
|
+
self,
|
2580
|
+
model: OffsetIncrementModel,
|
2581
|
+
config: Config,
|
2582
|
+
decoder: Decoder,
|
2583
|
+
extractor_model: Optional[Union[CustomRecordExtractorModel, DpathExtractorModel]] = None,
|
2584
|
+
**kwargs: Any,
|
2586
2585
|
) -> OffsetIncrement:
|
2587
2586
|
if isinstance(decoder, PaginationDecoderDecorator):
|
2588
2587
|
inner_decoder = decoder.decoder
|
@@ -2597,10 +2596,24 @@ class ModelToComponentFactory:
|
|
2597
2596
|
self._UNSUPPORTED_DECODER_ERROR.format(decoder_type=type(inner_decoder))
|
2598
2597
|
)
|
2599
2598
|
|
2599
|
+
# Ideally we would instantiate the runtime extractor from highest most level (in this case the SimpleRetriever)
|
2600
|
+
# so that it can be shared by OffSetIncrement and RecordSelector. However, due to how we instantiate the
|
2601
|
+
# decoder with various decorators here, but not in create_record_selector, it is simpler to retain existing
|
2602
|
+
# behavior by having two separate extractors with identical behavior since they use the same extractor model.
|
2603
|
+
# When we have more time to investigate we can look into reusing the same component.
|
2604
|
+
extractor = (
|
2605
|
+
self._create_component_from_model(
|
2606
|
+
model=extractor_model, config=config, decoder=decoder_to_use
|
2607
|
+
)
|
2608
|
+
if extractor_model
|
2609
|
+
else None
|
2610
|
+
)
|
2611
|
+
|
2600
2612
|
return OffsetIncrement(
|
2601
2613
|
page_size=model.page_size,
|
2602
2614
|
config=config,
|
2603
2615
|
decoder=decoder_to_use,
|
2616
|
+
extractor=extractor,
|
2604
2617
|
inject_on_first_request=model.inject_on_first_request or False,
|
2605
2618
|
parameters=model.parameters or {},
|
2606
2619
|
)
|
@@ -2769,7 +2782,6 @@ class ModelToComponentFactory:
|
|
2769
2782
|
transformations: List[RecordTransformation] | None = None,
|
2770
2783
|
decoder: Decoder | None = None,
|
2771
2784
|
client_side_incremental_sync: Dict[str, Any] | None = None,
|
2772
|
-
file_uploader: Optional[FileUploader] = None,
|
2773
2785
|
**kwargs: Any,
|
2774
2786
|
) -> RecordSelector:
|
2775
2787
|
extractor = self._create_component_from_model(
|
@@ -2807,7 +2819,6 @@ class ModelToComponentFactory:
|
|
2807
2819
|
config=config,
|
2808
2820
|
record_filter=record_filter,
|
2809
2821
|
transformations=transformations or [],
|
2810
|
-
file_uploader=file_uploader,
|
2811
2822
|
schema_normalization=schema_normalization,
|
2812
2823
|
parameters=model.parameters or {},
|
2813
2824
|
transform_before_filtering=transform_before_filtering,
|
@@ -2865,7 +2876,6 @@ class ModelToComponentFactory:
|
|
2865
2876
|
stop_condition_on_cursor: bool = False,
|
2866
2877
|
client_side_incremental_sync: Optional[Dict[str, Any]] = None,
|
2867
2878
|
transformations: List[RecordTransformation],
|
2868
|
-
file_uploader: Optional[FileUploader] = None,
|
2869
2879
|
incremental_sync: Optional[
|
2870
2880
|
Union[
|
2871
2881
|
IncrementingCountCursorModel, DatetimeBasedCursorModel, CustomIncrementalSyncModel
|
@@ -2886,7 +2896,6 @@ class ModelToComponentFactory:
|
|
2886
2896
|
decoder=decoder,
|
2887
2897
|
transformations=transformations,
|
2888
2898
|
client_side_incremental_sync=client_side_incremental_sync,
|
2889
|
-
file_uploader=file_uploader,
|
2890
2899
|
)
|
2891
2900
|
|
2892
2901
|
query_properties: Optional[QueryProperties] = None
|
@@ -2968,6 +2977,7 @@ class ModelToComponentFactory:
|
|
2968
2977
|
model=model.paginator,
|
2969
2978
|
config=config,
|
2970
2979
|
url_base=url_base,
|
2980
|
+
extractor_model=model.record_selector.extractor,
|
2971
2981
|
decoder=decoder,
|
2972
2982
|
cursor_used_for_stop_condition=cursor_used_for_stop_condition,
|
2973
2983
|
)
|
@@ -3552,30 +3562,6 @@ class ModelToComponentFactory:
|
|
3552
3562
|
matchers=matchers,
|
3553
3563
|
)
|
3554
3564
|
|
3555
|
-
def create_file_uploader(
|
3556
|
-
self, model: FileUploaderModel, config: Config, **kwargs: Any
|
3557
|
-
) -> FileUploader:
|
3558
|
-
name = "File Uploader"
|
3559
|
-
requester = self._create_component_from_model(
|
3560
|
-
model=model.requester,
|
3561
|
-
config=config,
|
3562
|
-
name=name,
|
3563
|
-
**kwargs,
|
3564
|
-
)
|
3565
|
-
download_target_extractor = self._create_component_from_model(
|
3566
|
-
model=model.download_target_extractor,
|
3567
|
-
config=config,
|
3568
|
-
name=name,
|
3569
|
-
**kwargs,
|
3570
|
-
)
|
3571
|
-
return FileUploader(
|
3572
|
-
requester=requester,
|
3573
|
-
download_target_extractor=download_target_extractor,
|
3574
|
-
config=config,
|
3575
|
-
parameters=model.parameters or {},
|
3576
|
-
filename_extractor=model.filename_extractor if model.filename_extractor else None,
|
3577
|
-
)
|
3578
|
-
|
3579
3565
|
def create_moving_window_call_rate_policy(
|
3580
3566
|
self, model: MovingWindowCallRatePolicyModel, config: Config, **kwargs: Any
|
3581
3567
|
) -> MovingWindowCallRatePolicy:
|
@@ -12,6 +12,7 @@ from airbyte_cdk.sources.declarative.decoders import (
|
|
12
12
|
JsonDecoder,
|
13
13
|
PaginationDecoderDecorator,
|
14
14
|
)
|
15
|
+
from airbyte_cdk.sources.declarative.extractors.dpath_extractor import RecordExtractor
|
15
16
|
from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
|
16
17
|
from airbyte_cdk.sources.declarative.requesters.paginators.strategies.pagination_strategy import (
|
17
18
|
PaginationStrategy,
|
@@ -46,6 +47,7 @@ class OffsetIncrement(PaginationStrategy):
|
|
46
47
|
config: Config
|
47
48
|
page_size: Optional[Union[str, int]]
|
48
49
|
parameters: InitVar[Mapping[str, Any]]
|
50
|
+
extractor: Optional[RecordExtractor]
|
49
51
|
decoder: Decoder = field(
|
50
52
|
default_factory=lambda: PaginationDecoderDecorator(decoder=JsonDecoder(parameters={}))
|
51
53
|
)
|
@@ -75,6 +77,14 @@ class OffsetIncrement(PaginationStrategy):
|
|
75
77
|
) -> Optional[Any]:
|
76
78
|
decoded_response = next(self.decoder.decode(response))
|
77
79
|
|
80
|
+
if self.extractor:
|
81
|
+
page_size_from_response = len(list(self.extractor.extract_records(response=response)))
|
82
|
+
# The extractor could return 0 records which is valid, but evaluates to False. Our fallback in other
|
83
|
+
# cases as the best effort option is to use the incoming last_page_size
|
84
|
+
last_page_size = (
|
85
|
+
page_size_from_response if page_size_from_response is not None else last_page_size
|
86
|
+
)
|
87
|
+
|
78
88
|
# Stop paginating when there are fewer records than the page size or the current page has no records
|
79
89
|
if (
|
80
90
|
self._page_size
|
@@ -364,7 +364,7 @@ class SimpleRetriever(Retriever):
|
|
364
364
|
pagination_complete = False
|
365
365
|
initial_token = self._paginator.get_initial_token()
|
366
366
|
next_page_token: Optional[Mapping[str, Any]] = (
|
367
|
-
{"next_page_token": initial_token} if initial_token else None
|
367
|
+
{"next_page_token": initial_token} if initial_token is not None else None
|
368
368
|
)
|
369
369
|
while not pagination_complete:
|
370
370
|
response = self._fetch_next_page(stream_state, stream_slice, next_page_token)
|
@@ -58,16 +58,11 @@ class DeclarativePartition(Partition):
|
|
58
58
|
def read(self) -> Iterable[Record]:
|
59
59
|
for stream_data in self._retriever.read_records(self._json_schema, self._stream_slice):
|
60
60
|
if isinstance(stream_data, Mapping):
|
61
|
-
|
62
|
-
stream_data
|
63
|
-
|
64
|
-
|
65
|
-
data=stream_data,
|
66
|
-
stream_name=self.stream_name(),
|
67
|
-
associated_slice=self._stream_slice,
|
68
|
-
)
|
61
|
+
yield Record(
|
62
|
+
data=stream_data,
|
63
|
+
stream_name=self.stream_name(),
|
64
|
+
associated_slice=self._stream_slice,
|
69
65
|
)
|
70
|
-
yield record
|
71
66
|
else:
|
72
67
|
self._message_repository.emit_message(stream_data)
|
73
68
|
|
@@ -8,18 +8,16 @@ from datetime import datetime
|
|
8
8
|
from enum import Enum
|
9
9
|
from io import IOBase
|
10
10
|
from os import makedirs, path
|
11
|
-
from typing import Any,
|
11
|
+
from typing import Any, Dict, Iterable, List, Optional, Set
|
12
12
|
|
13
13
|
from wcmatch.glob import GLOBSTAR, globmatch
|
14
14
|
|
15
|
-
from airbyte_cdk.models import AirbyteRecordMessageFileReference
|
16
15
|
from airbyte_cdk.sources.file_based.config.abstract_file_based_spec import AbstractFileBasedSpec
|
17
16
|
from airbyte_cdk.sources.file_based.config.validate_config_transfer_modes import (
|
18
17
|
include_identities_stream,
|
19
18
|
preserve_directory_structure,
|
20
19
|
use_file_transfer,
|
21
20
|
)
|
22
|
-
from airbyte_cdk.sources.file_based.file_record_data import FileRecordData
|
23
21
|
from airbyte_cdk.sources.file_based.remote_file import RemoteFile
|
24
22
|
|
25
23
|
|
@@ -30,10 +28,6 @@ class FileReadMode(Enum):
|
|
30
28
|
|
31
29
|
class AbstractFileBasedStreamReader(ABC):
|
32
30
|
DATE_TIME_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
|
33
|
-
FILE_RELATIVE_PATH = "file_relative_path"
|
34
|
-
FILE_NAME = "file_name"
|
35
|
-
LOCAL_FILE_PATH = "local_file_path"
|
36
|
-
FILE_FOLDER = "file_folder"
|
37
31
|
|
38
32
|
def __init__(self) -> None:
|
39
33
|
self._config = None
|
@@ -154,9 +148,9 @@ class AbstractFileBasedStreamReader(ABC):
|
|
154
148
|
return False
|
155
149
|
|
156
150
|
@abstractmethod
|
157
|
-
def
|
151
|
+
def get_file(
|
158
152
|
self, file: RemoteFile, local_directory: str, logger: logging.Logger
|
159
|
-
) ->
|
153
|
+
) -> Dict[str, Any]:
|
160
154
|
"""
|
161
155
|
This is required for connectors that will support writing to
|
162
156
|
files. It will handle the logic to download,get,read,acquire or
|
@@ -168,41 +162,25 @@ class AbstractFileBasedStreamReader(ABC):
|
|
168
162
|
logger (logging.Logger): Logger for logging information and errors.
|
169
163
|
|
170
164
|
Returns:
|
171
|
-
|
172
|
-
-
|
173
|
-
-
|
174
|
-
-
|
165
|
+
dict: A dictionary containing the following:
|
166
|
+
- "file_url" (str): The absolute path of the downloaded file.
|
167
|
+
- "bytes" (int): The file size in bytes.
|
168
|
+
- "file_relative_path" (str): The relative path of the file for local storage. Is relative to local_directory as
|
169
|
+
this a mounted volume in the pod container.
|
170
|
+
|
175
171
|
"""
|
176
172
|
...
|
177
173
|
|
178
|
-
def _get_file_transfer_paths(
|
179
|
-
self, source_file_relative_path: str, staging_directory: str
|
180
|
-
) -> MutableMapping[str, Any]:
|
181
|
-
"""
|
182
|
-
This method is used to get the file transfer paths for a given source file relative path and local directory.
|
183
|
-
It returns a dictionary with the following keys:
|
184
|
-
- FILE_RELATIVE_PATH: The relative path to file in reference to the staging directory.
|
185
|
-
- LOCAL_FILE_PATH: The absolute path to the file.
|
186
|
-
- FILE_NAME: The name of the referenced file.
|
187
|
-
- FILE_FOLDER: The folder of the referenced file.
|
188
|
-
"""
|
174
|
+
def _get_file_transfer_paths(self, file: RemoteFile, local_directory: str) -> List[str]:
|
189
175
|
preserve_directory_structure = self.preserve_directory_structure()
|
190
|
-
|
191
|
-
file_name = path.basename(source_file_relative_path)
|
192
|
-
file_folder = path.dirname(source_file_relative_path)
|
193
176
|
if preserve_directory_structure:
|
194
177
|
# Remove left slashes from source path format to make relative path for writing locally
|
195
|
-
file_relative_path =
|
178
|
+
file_relative_path = file.uri.lstrip("/")
|
196
179
|
else:
|
197
|
-
file_relative_path =
|
198
|
-
local_file_path = path.join(
|
180
|
+
file_relative_path = path.basename(file.uri)
|
181
|
+
local_file_path = path.join(local_directory, file_relative_path)
|
182
|
+
|
199
183
|
# Ensure the local directory exists
|
200
184
|
makedirs(path.dirname(local_file_path), exist_ok=True)
|
201
|
-
|
202
|
-
|
203
|
-
self.FILE_RELATIVE_PATH: file_relative_path,
|
204
|
-
self.LOCAL_FILE_PATH: local_file_path,
|
205
|
-
self.FILE_NAME: file_name,
|
206
|
-
self.FILE_FOLDER: file_folder,
|
207
|
-
}
|
208
|
-
return file_paths
|
185
|
+
absolute_file_path = path.abspath(local_file_path)
|
186
|
+
return [file_relative_path, local_file_path, absolute_file_path]
|
@@ -2,27 +2,34 @@
|
|
2
2
|
# Copyright (c) 2024 Airbyte, Inc., all rights reserved.
|
3
3
|
#
|
4
4
|
import logging
|
5
|
-
|
5
|
+
import os
|
6
|
+
from typing import Any, Dict, Iterable
|
6
7
|
|
7
|
-
from airbyte_cdk.
|
8
|
+
from airbyte_cdk.sources.file_based.config.file_based_stream_config import FileBasedStreamConfig
|
8
9
|
from airbyte_cdk.sources.file_based.file_based_stream_reader import AbstractFileBasedStreamReader
|
9
|
-
from airbyte_cdk.sources.file_based.file_record_data import FileRecordData
|
10
10
|
from airbyte_cdk.sources.file_based.remote_file import RemoteFile
|
11
|
-
|
11
|
+
|
12
|
+
AIRBYTE_STAGING_DIRECTORY = os.getenv("AIRBYTE_STAGING_DIRECTORY", "/staging/files")
|
13
|
+
DEFAULT_LOCAL_DIRECTORY = "/tmp/airbyte-file-transfer"
|
12
14
|
|
13
15
|
|
14
16
|
class FileTransfer:
|
15
17
|
def __init__(self) -> None:
|
16
|
-
self._local_directory =
|
18
|
+
self._local_directory = (
|
19
|
+
AIRBYTE_STAGING_DIRECTORY
|
20
|
+
if os.path.exists(AIRBYTE_STAGING_DIRECTORY)
|
21
|
+
else DEFAULT_LOCAL_DIRECTORY
|
22
|
+
)
|
17
23
|
|
18
|
-
def
|
24
|
+
def get_file(
|
19
25
|
self,
|
26
|
+
config: FileBasedStreamConfig,
|
20
27
|
file: RemoteFile,
|
21
28
|
stream_reader: AbstractFileBasedStreamReader,
|
22
29
|
logger: logging.Logger,
|
23
|
-
) -> Iterable[
|
30
|
+
) -> Iterable[Dict[str, Any]]:
|
24
31
|
try:
|
25
|
-
yield stream_reader.
|
32
|
+
yield stream_reader.get_file(
|
26
33
|
file=file, local_directory=self._local_directory, logger=logger
|
27
34
|
)
|
28
35
|
except Exception as ex:
|
@@ -18,18 +18,9 @@ JsonSchemaSupportedType = Union[List[str], Literal["string"], str]
|
|
18
18
|
SchemaType = Mapping[str, Mapping[str, JsonSchemaSupportedType]]
|
19
19
|
|
20
20
|
schemaless_schema = {"type": "object", "properties": {"data": {"type": "object"}}}
|
21
|
-
|
22
21
|
file_transfer_schema = {
|
23
22
|
"type": "object",
|
24
|
-
"properties": {
|
25
|
-
"folder": {"type": "string"},
|
26
|
-
"file_name": {"type": "string"},
|
27
|
-
"source_uri": {"type": "string"},
|
28
|
-
"bytes": {"type": "integer"},
|
29
|
-
"id": {"type": ["null", "string"]},
|
30
|
-
"updated_at": {"type": ["null", "string"]},
|
31
|
-
"mime_type": {"type": ["null", "string"]},
|
32
|
-
},
|
23
|
+
"properties": {"data": {"type": "object"}, "file": {"type": "object"}},
|
33
24
|
}
|
34
25
|
|
35
26
|
|