airbyte-cdk 6.45.7.post11.dev14564503945__tar.gz → 6.45.8.post2.dev14604759065__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.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/PKG-INFO +2 -2
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/models/__init__.py +1 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/models/airbyte_protocol.py +1 -3
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +1 -1
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +8 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +36 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/extractors/record_selector.py +6 -1
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +31 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +39 -1
- airbyte_cdk-6.45.8.post2.dev14604759065/airbyte_cdk/sources/declarative/retrievers/file_uploader.py +93 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +9 -4
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +38 -16
- airbyte_cdk-6.45.8.post2.dev14604759065/airbyte_cdk/sources/file_based/file_record_data.py +23 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +8 -15
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/schema_helpers.py +11 -1
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +3 -12
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +15 -38
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +1 -3
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/default_stream.py +3 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/types.py +11 -2
- airbyte_cdk-6.45.8.post2.dev14604759065/airbyte_cdk/sources/utils/files_directory.py +15 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/utils/record_helper.py +8 -8
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/mock_http/response_builder.py +8 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/pyproject.toml +3 -2
- airbyte_cdk-6.45.7.post11.dev14564503945/airbyte_cdk/cli/README.md +0 -63
- airbyte_cdk-6.45.7.post11.dev14564503945/airbyte_cdk/models/file_transfer_record_message.py +0 -13
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/LICENSE.txt +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/README.md +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/config_observation.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/main.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/destination.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/entrypoint.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/logger.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/abstract_source.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/config.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/connector_state_manager.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/http_logger.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/core.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/http.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/utils/transform.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/connector_base.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/models/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/models/scenario.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/standard_tests/source_base.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/datetime_helpers.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/event_timing.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/message_utils.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/stream_status_utils.py +0 -0
- {airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/airbyte_cdk/utils/traced_exception.py +0 -0
{airbyte_cdk-6.45.7.post11.dev14564503945 → airbyte_cdk-6.45.8.post2.dev14604759065}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.45.
|
3
|
+
Version: 6.45.8.post2.dev14604759065
|
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.15,<0.16)
|
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,8 +8,6 @@ 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
|
-
|
13
11
|
# ruff: noqa: F405 # ignore fuzzy import issues with 'import *'
|
14
12
|
|
15
13
|
|
@@ -84,7 +82,7 @@ class AirbyteMessage:
|
|
84
82
|
spec: Optional[ConnectorSpecification] = None # type: ignore [name-defined]
|
85
83
|
connectionStatus: Optional[AirbyteConnectionStatus] = None # type: ignore [name-defined]
|
86
84
|
catalog: Optional[AirbyteCatalog] = None # type: ignore [name-defined]
|
87
|
-
record: Optional[
|
85
|
+
record: Optional[AirbyteRecordMessage] = None # type: ignore [name-defined]
|
88
86
|
state: Optional[AirbyteStateMessage] = None
|
89
87
|
trace: Optional[AirbyteTraceMessage] = None # type: ignore [name-defined]
|
90
88
|
control: Optional[AirbyteControlMessage] = None # type: ignore [name-defined]
|
@@ -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
|
+
file_reference=record.file_reference,
|
153
153
|
)
|
154
154
|
stream = self._stream_name_to_instance[record.stream_name]
|
155
155
|
|
@@ -28,6 +28,7 @@ from airbyte_cdk.sources.declarative.incremental.per_partition_with_global impor
|
|
28
28
|
PerPartitionWithGlobalCursor,
|
29
29
|
)
|
30
30
|
from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
|
31
|
+
from airbyte_cdk.sources.declarative.models import FileUploader
|
31
32
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
32
33
|
ConcurrencyLevel as ConcurrencyLevelModel,
|
33
34
|
)
|
@@ -209,6 +210,10 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
209
210
|
# these legacy Python streams the way we do low-code streams to determine if they are concurrent compatible,
|
210
211
|
# so we need to treat them as synchronous
|
211
212
|
|
213
|
+
supports_file_transfer = (
|
214
|
+
"file_uploader" in name_to_stream_mapping[declarative_stream.name]
|
215
|
+
)
|
216
|
+
|
212
217
|
if (
|
213
218
|
isinstance(declarative_stream, DeclarativeStream)
|
214
219
|
and name_to_stream_mapping[declarative_stream.name]["type"]
|
@@ -325,6 +330,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
325
330
|
else None,
|
326
331
|
logger=self.logger,
|
327
332
|
cursor=cursor,
|
333
|
+
supports_file_transfer=supports_file_transfer,
|
328
334
|
)
|
329
335
|
)
|
330
336
|
elif (
|
@@ -356,6 +362,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
356
362
|
cursor_field=None,
|
357
363
|
logger=self.logger,
|
358
364
|
cursor=final_state_cursor,
|
365
|
+
supports_file_transfer=supports_file_transfer,
|
359
366
|
)
|
360
367
|
)
|
361
368
|
elif (
|
@@ -410,6 +417,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
410
417
|
cursor_field=perpartition_cursor.cursor_field.cursor_field_key,
|
411
418
|
logger=self.logger,
|
412
419
|
cursor=perpartition_cursor,
|
420
|
+
supports_file_transfer=supports_file_transfer,
|
413
421
|
)
|
414
422
|
)
|
415
423
|
else:
|
@@ -1448,6 +1448,42 @@ 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 }}/"
|
1451
1487
|
$parameters:
|
1452
1488
|
type: object
|
1453
1489
|
additional_properties: true
|
@@ -15,6 +15,7 @@ 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
|
18
19
|
from airbyte_cdk.sources.declarative.transformations import RecordTransformation
|
19
20
|
from airbyte_cdk.sources.types import Config, Record, StreamSlice, StreamState
|
20
21
|
from airbyte_cdk.sources.utils.transform import TypeTransformer
|
@@ -42,6 +43,7 @@ class RecordSelector(HttpSelector):
|
|
42
43
|
record_filter: Optional[RecordFilter] = None
|
43
44
|
transformations: List[RecordTransformation] = field(default_factory=lambda: [])
|
44
45
|
transform_before_filtering: bool = False
|
46
|
+
file_uploader: Optional[FileUploader] = None
|
45
47
|
|
46
48
|
def __post_init__(self, parameters: Mapping[str, Any]) -> None:
|
47
49
|
self._parameters = parameters
|
@@ -117,7 +119,10 @@ class RecordSelector(HttpSelector):
|
|
117
119
|
transformed_filtered_data, schema=records_schema
|
118
120
|
)
|
119
121
|
for data in normalized_data:
|
120
|
-
|
122
|
+
record = Record(data=data, stream_name=self.name, associated_slice=stream_slice)
|
123
|
+
if self.file_uploader:
|
124
|
+
self.file_uploader.upload(record)
|
125
|
+
yield record
|
121
126
|
|
122
127
|
def _normalize_by_schema(
|
123
128
|
self, records: Iterable[Mapping[str, Any]], schema: Optional[Mapping[str, Any]]
|
@@ -2066,6 +2066,31 @@ class SelectiveAuthenticator(BaseModel):
|
|
2066
2066
|
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2067
2067
|
|
2068
2068
|
|
2069
|
+
class FileUploader(BaseModel):
|
2070
|
+
type: Literal["FileUploader"]
|
2071
|
+
requester: Union[CustomRequester, HttpRequester] = Field(
|
2072
|
+
...,
|
2073
|
+
description="Requester component that describes how to prepare HTTP requests to send to the source API.",
|
2074
|
+
)
|
2075
|
+
download_target_extractor: Union[CustomRecordExtractor, DpathExtractor] = Field(
|
2076
|
+
...,
|
2077
|
+
description="Responsible for fetching the url where the file is located. This is applied on each records and not on the HTTP response",
|
2078
|
+
)
|
2079
|
+
file_extractor: Optional[Union[CustomRecordExtractor, DpathExtractor]] = Field(
|
2080
|
+
None,
|
2081
|
+
description="Responsible for fetching the content of the file. If not defined, the assumption is that the whole response body is the file content",
|
2082
|
+
)
|
2083
|
+
filename_extractor: Optional[str] = Field(
|
2084
|
+
None,
|
2085
|
+
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.",
|
2086
|
+
examples=[
|
2087
|
+
"{{ record.id }}/{{ record.file_name }}/",
|
2088
|
+
"{{ record.id }}_{{ record.file_name }}/",
|
2089
|
+
],
|
2090
|
+
)
|
2091
|
+
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2092
|
+
|
2093
|
+
|
2069
2094
|
class DeclarativeStream(BaseModel):
|
2070
2095
|
class Config:
|
2071
2096
|
extra = Extra.allow
|
@@ -2124,6 +2149,11 @@ class DeclarativeStream(BaseModel):
|
|
2124
2149
|
description="Array of state migrations to be applied on the input state",
|
2125
2150
|
title="State Migrations",
|
2126
2151
|
)
|
2152
|
+
file_uploader: Optional[FileUploader] = Field(
|
2153
|
+
None,
|
2154
|
+
description="(experimental) Describes how to fetch a file",
|
2155
|
+
title="File Uploader",
|
2156
|
+
)
|
2127
2157
|
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2128
2158
|
|
2129
2159
|
|
@@ -2617,6 +2647,7 @@ CompositeErrorHandler.update_forward_refs()
|
|
2617
2647
|
DeclarativeSource1.update_forward_refs()
|
2618
2648
|
DeclarativeSource2.update_forward_refs()
|
2619
2649
|
SelectiveAuthenticator.update_forward_refs()
|
2650
|
+
FileUploader.update_forward_refs()
|
2620
2651
|
DeclarativeStream.update_forward_refs()
|
2621
2652
|
SessionTokenAuthenticator.update_forward_refs()
|
2622
2653
|
DynamicSchemaLoader.update_forward_refs()
|
@@ -106,7 +106,6 @@ 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,
|
110
109
|
)
|
111
110
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
112
111
|
AddedFieldDefinition as AddedFieldDefinitionModel,
|
@@ -228,6 +227,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
|
|
228
227
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
229
228
|
ExponentialBackoffStrategy as ExponentialBackoffStrategyModel,
|
230
229
|
)
|
230
|
+
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
231
|
+
FileUploader as FileUploaderModel,
|
232
|
+
)
|
231
233
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
232
234
|
FixedWindowCallRatePolicy as FixedWindowCallRatePolicyModel,
|
233
235
|
)
|
@@ -479,6 +481,7 @@ from airbyte_cdk.sources.declarative.retrievers import (
|
|
479
481
|
SimpleRetriever,
|
480
482
|
SimpleRetrieverTestReadDecorator,
|
481
483
|
)
|
484
|
+
from airbyte_cdk.sources.declarative.retrievers.file_uploader import FileUploader
|
482
485
|
from airbyte_cdk.sources.declarative.schema import (
|
483
486
|
ComplexFieldType,
|
484
487
|
DefaultSchemaLoader,
|
@@ -676,6 +679,7 @@ class ModelToComponentFactory:
|
|
676
679
|
ComponentMappingDefinitionModel: self.create_components_mapping_definition,
|
677
680
|
ZipfileDecoderModel: self.create_zipfile_decoder,
|
678
681
|
HTTPAPIBudgetModel: self.create_http_api_budget,
|
682
|
+
FileUploaderModel: self.create_file_uploader,
|
679
683
|
FixedWindowCallRatePolicyModel: self.create_fixed_window_call_rate_policy,
|
680
684
|
MovingWindowCallRatePolicyModel: self.create_moving_window_call_rate_policy,
|
681
685
|
UnlimitedCallRatePolicyModel: self.create_unlimited_call_rate_policy,
|
@@ -1840,6 +1844,11 @@ class ModelToComponentFactory:
|
|
1840
1844
|
transformations.append(
|
1841
1845
|
self._create_component_from_model(model=transformation_model, config=config)
|
1842
1846
|
)
|
1847
|
+
file_uploader = None
|
1848
|
+
if model.file_uploader:
|
1849
|
+
file_uploader = self._create_component_from_model(
|
1850
|
+
model=model.file_uploader, config=config
|
1851
|
+
)
|
1843
1852
|
|
1844
1853
|
retriever = self._create_component_from_model(
|
1845
1854
|
model=model.retriever,
|
@@ -1851,6 +1860,7 @@ class ModelToComponentFactory:
|
|
1851
1860
|
stop_condition_on_cursor=stop_condition_on_cursor,
|
1852
1861
|
client_side_incremental_sync=client_side_incremental_sync,
|
1853
1862
|
transformations=transformations,
|
1863
|
+
file_uploader=file_uploader,
|
1854
1864
|
incremental_sync=model.incremental_sync,
|
1855
1865
|
)
|
1856
1866
|
cursor_field = model.incremental_sync.cursor_field if model.incremental_sync else None
|
@@ -2796,6 +2806,7 @@ class ModelToComponentFactory:
|
|
2796
2806
|
transformations: List[RecordTransformation] | None = None,
|
2797
2807
|
decoder: Decoder | None = None,
|
2798
2808
|
client_side_incremental_sync: Dict[str, Any] | None = None,
|
2809
|
+
file_uploader: Optional[FileUploader] = None,
|
2799
2810
|
**kwargs: Any,
|
2800
2811
|
) -> RecordSelector:
|
2801
2812
|
extractor = self._create_component_from_model(
|
@@ -2833,6 +2844,7 @@ class ModelToComponentFactory:
|
|
2833
2844
|
config=config,
|
2834
2845
|
record_filter=record_filter,
|
2835
2846
|
transformations=transformations or [],
|
2847
|
+
file_uploader=file_uploader,
|
2836
2848
|
schema_normalization=schema_normalization,
|
2837
2849
|
parameters=model.parameters or {},
|
2838
2850
|
transform_before_filtering=transform_before_filtering,
|
@@ -2890,6 +2902,7 @@ class ModelToComponentFactory:
|
|
2890
2902
|
stop_condition_on_cursor: bool = False,
|
2891
2903
|
client_side_incremental_sync: Optional[Dict[str, Any]] = None,
|
2892
2904
|
transformations: List[RecordTransformation],
|
2905
|
+
file_uploader: Optional[FileUploader] = None,
|
2893
2906
|
incremental_sync: Optional[
|
2894
2907
|
Union[
|
2895
2908
|
IncrementingCountCursorModel, DatetimeBasedCursorModel, CustomIncrementalSyncModel
|
@@ -2910,6 +2923,7 @@ class ModelToComponentFactory:
|
|
2910
2923
|
decoder=decoder,
|
2911
2924
|
transformations=transformations,
|
2912
2925
|
client_side_incremental_sync=client_side_incremental_sync,
|
2926
|
+
file_uploader=file_uploader,
|
2913
2927
|
)
|
2914
2928
|
|
2915
2929
|
query_properties: Optional[QueryProperties] = None
|
@@ -3576,6 +3590,30 @@ class ModelToComponentFactory:
|
|
3576
3590
|
matchers=matchers,
|
3577
3591
|
)
|
3578
3592
|
|
3593
|
+
def create_file_uploader(
|
3594
|
+
self, model: FileUploaderModel, config: Config, **kwargs: Any
|
3595
|
+
) -> FileUploader:
|
3596
|
+
name = "File Uploader"
|
3597
|
+
requester = self._create_component_from_model(
|
3598
|
+
model=model.requester,
|
3599
|
+
config=config,
|
3600
|
+
name=name,
|
3601
|
+
**kwargs,
|
3602
|
+
)
|
3603
|
+
download_target_extractor = self._create_component_from_model(
|
3604
|
+
model=model.download_target_extractor,
|
3605
|
+
config=config,
|
3606
|
+
name=name,
|
3607
|
+
**kwargs,
|
3608
|
+
)
|
3609
|
+
return FileUploader(
|
3610
|
+
requester=requester,
|
3611
|
+
download_target_extractor=download_target_extractor,
|
3612
|
+
config=config,
|
3613
|
+
parameters=model.parameters or {},
|
3614
|
+
filename_extractor=model.filename_extractor if model.filename_extractor else None,
|
3615
|
+
)
|
3616
|
+
|
3579
3617
|
def create_moving_window_call_rate_policy(
|
3580
3618
|
self, model: MovingWindowCallRatePolicyModel, config: Config, **kwargs: Any
|
3581
3619
|
) -> MovingWindowCallRatePolicy:
|
airbyte_cdk-6.45.8.post2.dev14604759065/airbyte_cdk/sources/declarative/retrievers/file_uploader.py
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
3
|
+
#
|
4
|
+
|
5
|
+
import json
|
6
|
+
import logging
|
7
|
+
import uuid
|
8
|
+
from dataclasses import InitVar, dataclass, field
|
9
|
+
from pathlib import Path
|
10
|
+
from typing import Any, Mapping, Optional, Union
|
11
|
+
|
12
|
+
from airbyte_cdk.models import AirbyteRecordMessageFileReference
|
13
|
+
from airbyte_cdk.sources.declarative.extractors.record_extractor import RecordExtractor
|
14
|
+
from airbyte_cdk.sources.declarative.interpolation.interpolated_string import (
|
15
|
+
InterpolatedString,
|
16
|
+
)
|
17
|
+
from airbyte_cdk.sources.declarative.partition_routers.substream_partition_router import (
|
18
|
+
SafeResponse,
|
19
|
+
)
|
20
|
+
from airbyte_cdk.sources.declarative.requesters import Requester
|
21
|
+
from airbyte_cdk.sources.declarative.types import Record, StreamSlice
|
22
|
+
from airbyte_cdk.sources.types import Config
|
23
|
+
from airbyte_cdk.sources.utils.files_directory import get_files_directory
|
24
|
+
|
25
|
+
logger = logging.getLogger("airbyte")
|
26
|
+
|
27
|
+
|
28
|
+
@dataclass
|
29
|
+
class FileUploader:
|
30
|
+
requester: Requester
|
31
|
+
download_target_extractor: RecordExtractor
|
32
|
+
config: Config
|
33
|
+
parameters: InitVar[Mapping[str, Any]]
|
34
|
+
|
35
|
+
filename_extractor: Optional[Union[InterpolatedString, str]] = None
|
36
|
+
content_extractor: Optional[RecordExtractor] = None
|
37
|
+
|
38
|
+
def __post_init__(self, parameters: Mapping[str, Any]) -> None:
|
39
|
+
if self.filename_extractor:
|
40
|
+
self.filename_extractor = InterpolatedString.create(
|
41
|
+
self.filename_extractor,
|
42
|
+
parameters=parameters,
|
43
|
+
)
|
44
|
+
|
45
|
+
def upload(self, record: Record) -> None:
|
46
|
+
mocked_response = SafeResponse()
|
47
|
+
mocked_response.content = json.dumps(record.data).encode()
|
48
|
+
download_targets = list(self.download_target_extractor.extract_records(mocked_response))
|
49
|
+
if not download_targets:
|
50
|
+
raise ValueError("No download targets found")
|
51
|
+
|
52
|
+
download_target = download_targets[0] # we just expect one download target
|
53
|
+
if not isinstance(download_target, str):
|
54
|
+
raise ValueError(
|
55
|
+
f"download_target is expected to be a str but was {type(download_target)}: {download_target}"
|
56
|
+
)
|
57
|
+
|
58
|
+
response = self.requester.send_request(
|
59
|
+
stream_slice=StreamSlice(
|
60
|
+
partition={}, cursor_slice={}, extra_fields={"download_target": download_target}
|
61
|
+
),
|
62
|
+
)
|
63
|
+
|
64
|
+
if self.content_extractor:
|
65
|
+
raise NotImplementedError("TODO")
|
66
|
+
else:
|
67
|
+
files_directory = Path(get_files_directory())
|
68
|
+
|
69
|
+
file_name = (
|
70
|
+
self.filename_extractor.eval(self.config, record=record)
|
71
|
+
if self.filename_extractor
|
72
|
+
else str(uuid.uuid4())
|
73
|
+
)
|
74
|
+
file_name = file_name.lstrip("/")
|
75
|
+
file_relative_path = Path(record.stream_name) / Path(file_name)
|
76
|
+
|
77
|
+
full_path = files_directory / file_relative_path
|
78
|
+
full_path.parent.mkdir(parents=True, exist_ok=True)
|
79
|
+
|
80
|
+
with open(str(full_path), "wb") as f:
|
81
|
+
f.write(response.content)
|
82
|
+
file_size_bytes = full_path.stat().st_size
|
83
|
+
|
84
|
+
logger.info("File uploaded successfully")
|
85
|
+
logger.info(f"File url: {str(full_path)}")
|
86
|
+
logger.info(f"File size: {file_size_bytes / 1024} KB")
|
87
|
+
logger.info(f"File relative path: {str(file_relative_path)}")
|
88
|
+
|
89
|
+
record.file_reference = AirbyteRecordMessageFileReference(
|
90
|
+
staging_file_url=str(full_path),
|
91
|
+
source_file_relative_path=str(file_relative_path),
|
92
|
+
file_size_bytes=file_size_bytes,
|
93
|
+
)
|
@@ -58,11 +58,16 @@ 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
|
-
|
63
|
-
|
64
|
-
|
61
|
+
record = (
|
62
|
+
stream_data
|
63
|
+
if isinstance(stream_data, Record)
|
64
|
+
else Record(
|
65
|
+
data=stream_data,
|
66
|
+
stream_name=self.stream_name(),
|
67
|
+
associated_slice=self._stream_slice,
|
68
|
+
)
|
65
69
|
)
|
70
|
+
yield record
|
66
71
|
else:
|
67
72
|
self._message_repository.emit_message(stream_data)
|
68
73
|
|
@@ -8,16 +8,18 @@ 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, Callable, Iterable, List, MutableMapping, Optional, Set, Tuple
|
12
12
|
|
13
13
|
from wcmatch.glob import GLOBSTAR, globmatch
|
14
14
|
|
15
|
+
from airbyte_cdk.models import AirbyteRecordMessageFileReference
|
15
16
|
from airbyte_cdk.sources.file_based.config.abstract_file_based_spec import AbstractFileBasedSpec
|
16
17
|
from airbyte_cdk.sources.file_based.config.validate_config_transfer_modes import (
|
17
18
|
include_identities_stream,
|
18
19
|
preserve_directory_structure,
|
19
20
|
use_file_transfer,
|
20
21
|
)
|
22
|
+
from airbyte_cdk.sources.file_based.file_record_data import FileRecordData
|
21
23
|
from airbyte_cdk.sources.file_based.remote_file import RemoteFile
|
22
24
|
|
23
25
|
|
@@ -28,6 +30,10 @@ class FileReadMode(Enum):
|
|
28
30
|
|
29
31
|
class AbstractFileBasedStreamReader(ABC):
|
30
32
|
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"
|
31
37
|
|
32
38
|
def __init__(self) -> None:
|
33
39
|
self._config = None
|
@@ -148,9 +154,9 @@ class AbstractFileBasedStreamReader(ABC):
|
|
148
154
|
return False
|
149
155
|
|
150
156
|
@abstractmethod
|
151
|
-
def
|
157
|
+
def upload(
|
152
158
|
self, file: RemoteFile, local_directory: str, logger: logging.Logger
|
153
|
-
) ->
|
159
|
+
) -> Tuple[FileRecordData, AirbyteRecordMessageFileReference]:
|
154
160
|
"""
|
155
161
|
This is required for connectors that will support writing to
|
156
162
|
files. It will handle the logic to download,get,read,acquire or
|
@@ -162,25 +168,41 @@ class AbstractFileBasedStreamReader(ABC):
|
|
162
168
|
logger (logging.Logger): Logger for logging information and errors.
|
163
169
|
|
164
170
|
Returns:
|
165
|
-
|
166
|
-
-
|
167
|
-
-
|
168
|
-
-
|
169
|
-
this a mounted volume in the pod container.
|
170
|
-
|
171
|
+
AirbyteRecordMessageFileReference: A file reference object containing:
|
172
|
+
- staging_file_url (str): The absolute path to the referenced file in the staging area.
|
173
|
+
- file_size_bytes (int): The size of the referenced file in bytes.
|
174
|
+
- source_file_relative_path (str): The relative path to the referenced file in source.
|
171
175
|
"""
|
172
176
|
...
|
173
177
|
|
174
|
-
def _get_file_transfer_paths(
|
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
|
+
"""
|
175
189
|
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)
|
176
193
|
if preserve_directory_structure:
|
177
194
|
# Remove left slashes from source path format to make relative path for writing locally
|
178
|
-
file_relative_path =
|
195
|
+
file_relative_path = source_file_relative_path.lstrip("/")
|
179
196
|
else:
|
180
|
-
file_relative_path =
|
181
|
-
local_file_path = path.join(
|
182
|
-
|
197
|
+
file_relative_path = file_name
|
198
|
+
local_file_path = path.join(staging_directory, file_relative_path)
|
183
199
|
# Ensure the local directory exists
|
184
200
|
makedirs(path.dirname(local_file_path), exist_ok=True)
|
185
|
-
|
186
|
-
|
201
|
+
|
202
|
+
file_paths = {
|
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
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
3
|
+
#
|
4
|
+
|
5
|
+
from datetime import datetime
|
6
|
+
from typing import Optional
|
7
|
+
|
8
|
+
from pydantic.v1 import BaseModel
|
9
|
+
|
10
|
+
|
11
|
+
class FileRecordData(BaseModel):
|
12
|
+
"""
|
13
|
+
A record in a file-based stream.
|
14
|
+
"""
|
15
|
+
|
16
|
+
folder: str
|
17
|
+
file_name: str
|
18
|
+
bytes: int
|
19
|
+
source_uri: str
|
20
|
+
id: Optional[str] = None
|
21
|
+
created_at: Optional[str] = None
|
22
|
+
updated_at: Optional[str] = None
|
23
|
+
mime_type: Optional[str] = None
|
@@ -2,34 +2,27 @@
|
|
2
2
|
# Copyright (c) 2024 Airbyte, Inc., all rights reserved.
|
3
3
|
#
|
4
4
|
import logging
|
5
|
-
import
|
6
|
-
from typing import Any, Dict, Iterable
|
5
|
+
from typing import Iterable, Tuple
|
7
6
|
|
8
|
-
from airbyte_cdk.
|
7
|
+
from airbyte_cdk.models import AirbyteRecordMessageFileReference
|
9
8
|
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
|
-
|
12
|
-
AIRBYTE_STAGING_DIRECTORY = os.getenv("AIRBYTE_STAGING_DIRECTORY", "/staging/files")
|
13
|
-
DEFAULT_LOCAL_DIRECTORY = "/tmp/airbyte-file-transfer"
|
11
|
+
from airbyte_cdk.sources.utils.files_directory import get_files_directory
|
14
12
|
|
15
13
|
|
16
14
|
class FileTransfer:
|
17
15
|
def __init__(self) -> None:
|
18
|
-
self._local_directory = (
|
19
|
-
AIRBYTE_STAGING_DIRECTORY
|
20
|
-
if os.path.exists(AIRBYTE_STAGING_DIRECTORY)
|
21
|
-
else DEFAULT_LOCAL_DIRECTORY
|
22
|
-
)
|
16
|
+
self._local_directory = get_files_directory()
|
23
17
|
|
24
|
-
def
|
18
|
+
def upload(
|
25
19
|
self,
|
26
|
-
config: FileBasedStreamConfig,
|
27
20
|
file: RemoteFile,
|
28
21
|
stream_reader: AbstractFileBasedStreamReader,
|
29
22
|
logger: logging.Logger,
|
30
|
-
) -> Iterable[
|
23
|
+
) -> Iterable[Tuple[FileRecordData, AirbyteRecordMessageFileReference]]:
|
31
24
|
try:
|
32
|
-
yield stream_reader.
|
25
|
+
yield stream_reader.upload(
|
33
26
|
file=file, local_directory=self._local_directory, logger=logger
|
34
27
|
)
|
35
28
|
except Exception as ex:
|
@@ -18,9 +18,19 @@ 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
|
+
|
21
22
|
file_transfer_schema = {
|
22
23
|
"type": "object",
|
23
|
-
"properties": {
|
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
|
+
"created_at": {"type": ["null", "string"]},
|
31
|
+
"updated_at": {"type": ["null", "string"]},
|
32
|
+
"mime_type": {"type": ["null", "string"]},
|
33
|
+
},
|
24
34
|
}
|
25
35
|
|
26
36
|
|