airbyte-cdk 6.8.1rc9__tar.gz → 6.8.2.dev1__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.8.2.dev1/PKG-INFO +111 -0
- airbyte_cdk-6.8.2.dev1/README.md +34 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +11 -5
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/config_observation.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/connector_builder/main.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/connector_builder/message_grouper.py +10 -10
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/destination.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/embedder.py +2 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/writer.py +12 -4
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/entrypoint.py +7 -6
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/logger.py +2 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/abstract_source.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/config.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/connector_state_manager.py +9 -4
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/auth/oauth.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +6 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +76 -28
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +10 -4
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +16 -17
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +4 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +3 -5
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/incremental/__init__.py +3 -0
- airbyte_cdk-6.8.2.dev1/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +270 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +8 -6
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +9 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +35 -36
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/macros.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +71 -17
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +13 -7
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +8 -6
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +2 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +5 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/spec/spec.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/embedded/base_integration.py +3 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +12 -4
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +18 -7
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +14 -11
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +3 -3
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +11 -5
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +2 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +6 -3
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/http_logger.py +3 -3
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +5 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/adapters.py +6 -3
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +9 -3
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/cursor.py +10 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +2 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/core.py +17 -14
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/http.py +19 -19
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/http_client.py +4 -48
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +2 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +62 -33
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/utils/record_helper.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/utils/schema_helpers.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/utils/transform.py +34 -15
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/entrypoint_wrapper.py +11 -6
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/mock_http/response_builder.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/airbyte_secrets_utils.py +1 -1
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/event_timing.py +10 -10
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/message_utils.py +4 -3
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/spec_schema_transformations.py +3 -2
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/traced_exception.py +14 -12
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/pyproject.toml +10 -6
- airbyte_cdk-6.8.1rc9/PKG-INFO +0 -307
- airbyte_cdk-6.8.1rc9/README.md +0 -229
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/LICENSE.txt +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/models/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/embedded/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/embedded/catalog.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/embedded/runner.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/embedded/tools.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/types.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
@@ -0,0 +1,111 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: airbyte-cdk
|
3
|
+
Version: 6.8.2.dev1
|
4
|
+
Summary: A framework for writing Airbyte Connectors.
|
5
|
+
Home-page: https://airbyte.com
|
6
|
+
License: MIT
|
7
|
+
Keywords: airbyte,connector-development-kit,cdk
|
8
|
+
Author: Airbyte
|
9
|
+
Author-email: contact@airbyte.io
|
10
|
+
Requires-Python: >=3.10,<3.13
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
12
|
+
Classifier: Intended Audience :: Developers
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
20
|
+
Provides-Extra: file-based
|
21
|
+
Provides-Extra: sphinx-docs
|
22
|
+
Provides-Extra: sql
|
23
|
+
Provides-Extra: vector-db-based
|
24
|
+
Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
|
25
|
+
Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
|
26
|
+
Requires-Dist: Sphinx (>=4.2,<4.3) ; extra == "sphinx-docs"
|
27
|
+
Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
|
28
|
+
Requires-Dist: avro (>=1.11.2,<1.12.0) ; extra == "file-based"
|
29
|
+
Requires-Dist: backoff
|
30
|
+
Requires-Dist: cachetools
|
31
|
+
Requires-Dist: cohere (==4.21) ; extra == "vector-db-based"
|
32
|
+
Requires-Dist: cryptography (>=42.0.5,<44.0.0)
|
33
|
+
Requires-Dist: dpath (>=2.1.6,<3.0.0)
|
34
|
+
Requires-Dist: dunamai (>=1.22.0,<2.0.0)
|
35
|
+
Requires-Dist: fastavro (>=1.8.0,<1.9.0) ; extra == "file-based"
|
36
|
+
Requires-Dist: genson (==1.3.0)
|
37
|
+
Requires-Dist: isodate (>=0.6.1,<0.7.0)
|
38
|
+
Requires-Dist: jsonref (>=0.2,<0.3)
|
39
|
+
Requires-Dist: jsonschema (>=4.17.3,<4.18.0)
|
40
|
+
Requires-Dist: langchain (==0.1.16) ; extra == "vector-db-based"
|
41
|
+
Requires-Dist: langchain_core (==0.1.42)
|
42
|
+
Requires-Dist: markdown ; extra == "file-based"
|
43
|
+
Requires-Dist: nltk (==3.9.1)
|
44
|
+
Requires-Dist: numpy (<2)
|
45
|
+
Requires-Dist: openai[embeddings] (==0.27.9) ; extra == "vector-db-based"
|
46
|
+
Requires-Dist: orjson (>=3.10.7,<4.0.0)
|
47
|
+
Requires-Dist: pandas (==2.2.2)
|
48
|
+
Requires-Dist: pdf2image (==1.16.3) ; extra == "file-based"
|
49
|
+
Requires-Dist: pdfminer.six (==20221105) ; extra == "file-based"
|
50
|
+
Requires-Dist: pendulum (<3.0.0)
|
51
|
+
Requires-Dist: psutil (==6.1.0)
|
52
|
+
Requires-Dist: pyarrow (>=15.0.0,<15.1.0) ; extra == "file-based"
|
53
|
+
Requires-Dist: pydantic (>=2.7,<3.0)
|
54
|
+
Requires-Dist: pyjwt (>=2.8.0,<3.0.0)
|
55
|
+
Requires-Dist: pyrate-limiter (>=3.1.0,<3.2.0)
|
56
|
+
Requires-Dist: pytesseract (==0.3.10) ; extra == "file-based"
|
57
|
+
Requires-Dist: python-calamine (==0.2.3) ; extra == "file-based"
|
58
|
+
Requires-Dist: python-dateutil
|
59
|
+
Requires-Dist: python-snappy (==0.7.3) ; extra == "file-based"
|
60
|
+
Requires-Dist: python-ulid (>=3.0.0,<4.0.0)
|
61
|
+
Requires-Dist: pytz (==2024.1)
|
62
|
+
Requires-Dist: rapidfuzz (>=3.10.1,<4.0.0)
|
63
|
+
Requires-Dist: requests
|
64
|
+
Requires-Dist: requests_cache
|
65
|
+
Requires-Dist: serpyco-rs (>=1.10.2,<2.0.0)
|
66
|
+
Requires-Dist: sphinx-rtd-theme (>=1.0,<1.1) ; extra == "sphinx-docs"
|
67
|
+
Requires-Dist: sqlalchemy (>=2.0,<3.0,!=2.0.36) ; extra == "sql"
|
68
|
+
Requires-Dist: tiktoken (==0.8.0) ; extra == "vector-db-based"
|
69
|
+
Requires-Dist: unstructured.pytesseract (>=0.3.12) ; extra == "file-based"
|
70
|
+
Requires-Dist: unstructured[docx,pptx] (==0.10.27) ; extra == "file-based"
|
71
|
+
Requires-Dist: wcmatch (==10.0)
|
72
|
+
Requires-Dist: xmltodict (>=0.13.0,<0.14.0)
|
73
|
+
Project-URL: Documentation, https://docs.airbyte.io/
|
74
|
+
Project-URL: Repository, https://github.com/airbytehq/airbyte-python-cdk
|
75
|
+
Description-Content-Type: text/markdown
|
76
|
+
|
77
|
+
# Airbyte Python CDK and Low-Code CDK
|
78
|
+
|
79
|
+
Airbyte Python CDK is a framework for building Airbyte API Source Connectors. It provides a set of
|
80
|
+
classes and helpers that make it easy to build a connector against an HTTP API (REST, GraphQL, etc),
|
81
|
+
or a generic Python source connector.
|
82
|
+
|
83
|
+
## Building Connectors with the CDK
|
84
|
+
|
85
|
+
If you're looking to build a connector, we highly recommend that you first
|
86
|
+
[start with the Connector Builder](https://docs.airbyte.com/connector-development/connector-builder-ui/overview).
|
87
|
+
It should be enough for 90% connectors out there. For more flexible and complex connectors, use the
|
88
|
+
[low-code CDK and `SourceDeclarativeManifest`](https://docs.airbyte.com/connector-development/config-based/low-code-cdk-overview).
|
89
|
+
|
90
|
+
For more information on building connectors, please see the [Connector Development](https://docs.airbyte.com/connector-development/) guide on [docs.airbyte.com](https://docs.airbyte.com).
|
91
|
+
|
92
|
+
## Python CDK Overview
|
93
|
+
|
94
|
+
Airbyte CDK code is within `airbyte_cdk` directory. Here's a high level overview of what's inside:
|
95
|
+
|
96
|
+
- `airbyte_cdk/connector_builder`. Internal wrapper that helps the Connector Builder platform run a declarative manifest (low-code connector). You should not use this code directly. If you need to run a `SourceDeclarativeManifest`, take a look at [`source-declarative-manifest`](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-declarative-manifest) connector implementation instead.
|
97
|
+
- `airbyte_cdk/cli/source_declarative_manifest`. This module defines the `source-declarative-manifest` (aka "SDM") connector execution logic and associated CLI.
|
98
|
+
- `airbyte_cdk/destinations`. Basic Destination connector support! If you're building a Destination connector in Python, try that. Some of our vector DB destinations like `destination-pinecone` are using that code.
|
99
|
+
- `airbyte_cdk/models` expose `airbyte_protocol.models` as a part of `airbyte_cdk` package.
|
100
|
+
- `airbyte_cdk/sources/concurrent_source` is the Concurrent CDK implementation. It supports reading data from streams concurrently per slice / partition, useful for connectors with high throughput and high number of records.
|
101
|
+
- `airbyte_cdk/sources/declarative` is the low-code CDK. It works on top of Airbyte Python CDK, but provides a declarative manifest language to define streams, operations, etc. This makes it easier to build connectors without writing Python code.
|
102
|
+
- `airbyte_cdk/sources/file_based` is the CDK for file-based sources. Examples include S3, Azure, GCS, etc.
|
103
|
+
|
104
|
+
## Contributing
|
105
|
+
|
106
|
+
For instructions on how to contribute, please see our [Contributing Guide](docs/CONTRIBUTING.md).
|
107
|
+
|
108
|
+
## Release Management
|
109
|
+
|
110
|
+
Please see the [Release Management](docs/RELEASES.md) guide for information on how to perform releases and pre-releases.
|
111
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Airbyte Python CDK and Low-Code CDK
|
2
|
+
|
3
|
+
Airbyte Python CDK is a framework for building Airbyte API Source Connectors. It provides a set of
|
4
|
+
classes and helpers that make it easy to build a connector against an HTTP API (REST, GraphQL, etc),
|
5
|
+
or a generic Python source connector.
|
6
|
+
|
7
|
+
## Building Connectors with the CDK
|
8
|
+
|
9
|
+
If you're looking to build a connector, we highly recommend that you first
|
10
|
+
[start with the Connector Builder](https://docs.airbyte.com/connector-development/connector-builder-ui/overview).
|
11
|
+
It should be enough for 90% connectors out there. For more flexible and complex connectors, use the
|
12
|
+
[low-code CDK and `SourceDeclarativeManifest`](https://docs.airbyte.com/connector-development/config-based/low-code-cdk-overview).
|
13
|
+
|
14
|
+
For more information on building connectors, please see the [Connector Development](https://docs.airbyte.com/connector-development/) guide on [docs.airbyte.com](https://docs.airbyte.com).
|
15
|
+
|
16
|
+
## Python CDK Overview
|
17
|
+
|
18
|
+
Airbyte CDK code is within `airbyte_cdk` directory. Here's a high level overview of what's inside:
|
19
|
+
|
20
|
+
- `airbyte_cdk/connector_builder`. Internal wrapper that helps the Connector Builder platform run a declarative manifest (low-code connector). You should not use this code directly. If you need to run a `SourceDeclarativeManifest`, take a look at [`source-declarative-manifest`](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-declarative-manifest) connector implementation instead.
|
21
|
+
- `airbyte_cdk/cli/source_declarative_manifest`. This module defines the `source-declarative-manifest` (aka "SDM") connector execution logic and associated CLI.
|
22
|
+
- `airbyte_cdk/destinations`. Basic Destination connector support! If you're building a Destination connector in Python, try that. Some of our vector DB destinations like `destination-pinecone` are using that code.
|
23
|
+
- `airbyte_cdk/models` expose `airbyte_protocol.models` as a part of `airbyte_cdk` package.
|
24
|
+
- `airbyte_cdk/sources/concurrent_source` is the Concurrent CDK implementation. It supports reading data from streams concurrently per slice / partition, useful for connectors with high throughput and high number of records.
|
25
|
+
- `airbyte_cdk/sources/declarative` is the low-code CDK. It works on top of Airbyte Python CDK, but provides a declarative manifest language to define streams, operations, etc. This makes it easier to build connectors without writing Python code.
|
26
|
+
- `airbyte_cdk/sources/file_based` is the CDK for file-based sources. Examples include S3, Azure, GCS, etc.
|
27
|
+
|
28
|
+
## Contributing
|
29
|
+
|
30
|
+
For instructions on how to contribute, please see our [Contributing Guide](docs/CONTRIBUTING.md).
|
31
|
+
|
32
|
+
## Release Management
|
33
|
+
|
34
|
+
Please see the [Release Management](docs/RELEASES.md) guide for information on how to perform releases and pre-releases.
|
{airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/cli/source_declarative_manifest/_run.py
RENAMED
@@ -25,7 +25,7 @@ from datetime import datetime
|
|
25
25
|
from pathlib import Path
|
26
26
|
from typing import Any, cast
|
27
27
|
|
28
|
-
|
28
|
+
import orjson
|
29
29
|
|
30
30
|
from airbyte_cdk.entrypoint import AirbyteEntrypoint, launch
|
31
31
|
from airbyte_cdk.models import (
|
@@ -72,7 +72,7 @@ class SourceLocalYaml(YamlDeclarativeSource):
|
|
72
72
|
super().__init__(
|
73
73
|
catalog=catalog,
|
74
74
|
config=config,
|
75
|
-
state=state,
|
75
|
+
state=state, # type: ignore [arg-type]
|
76
76
|
path_to_yaml="manifest.yaml",
|
77
77
|
)
|
78
78
|
|
@@ -152,7 +152,9 @@ def handle_remote_manifest_command(args: list[str]) -> None:
|
|
152
152
|
)
|
153
153
|
|
154
154
|
|
155
|
-
def create_declarative_source(
|
155
|
+
def create_declarative_source(
|
156
|
+
args: list[str],
|
157
|
+
) -> ConcurrentDeclarativeSource: # type: ignore [type-arg]
|
156
158
|
"""Creates the source with the injected config.
|
157
159
|
|
158
160
|
This essentially does what other low-code sources do at build time, but at runtime,
|
@@ -160,10 +162,14 @@ def create_declarative_source(args: list[str]) -> ConcurrentDeclarativeSource:
|
|
160
162
|
connector builder.
|
161
163
|
"""
|
162
164
|
try:
|
165
|
+
config: Mapping[str, Any] | None
|
166
|
+
catalog: ConfiguredAirbyteCatalog | None
|
167
|
+
state: list[AirbyteStateMessage]
|
163
168
|
config, catalog, state = _parse_inputs_into_config_catalog_state(args)
|
164
|
-
if "__injected_declarative_manifest" not in config:
|
169
|
+
if config is None or "__injected_declarative_manifest" not in config:
|
165
170
|
raise ValueError(
|
166
|
-
|
171
|
+
"Invalid config: `__injected_declarative_manifest` should be provided at the root "
|
172
|
+
f"of the config but config only has keys: {list(config.keys() if config else [])}"
|
167
173
|
)
|
168
174
|
return ConcurrentDeclarativeSource(
|
169
175
|
config=config,
|
{airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/connector_builder/message_grouper.py
RENAMED
@@ -71,7 +71,7 @@ class MessageGrouper:
|
|
71
71
|
|
72
72
|
is_nested_key = isinstance(field[0], str)
|
73
73
|
if is_nested_key:
|
74
|
-
return [field]
|
74
|
+
return [field]
|
75
75
|
|
76
76
|
raise ValueError(f"Unknown type for cursor field `{field}")
|
77
77
|
|
@@ -232,9 +232,9 @@ class MessageGrouper:
|
|
232
232
|
current_slice_descriptor = self._parse_slice_description(message.log.message) # type: ignore[union-attr] # AirbyteMessage with MessageType.LOG has log.message
|
233
233
|
current_slice_pages = []
|
234
234
|
at_least_one_page_in_group = False
|
235
|
-
elif message.type == MessageType.LOG and message.log.message.startswith(
|
235
|
+
elif message.type == MessageType.LOG and message.log.message.startswith( # type: ignore[union-attr] # None doesn't have 'message'
|
236
236
|
SliceLogger.SLICE_LOG_PREFIX
|
237
|
-
):
|
237
|
+
):
|
238
238
|
# parsing the first slice
|
239
239
|
current_slice_descriptor = self._parse_slice_description(message.log.message) # type: ignore[union-attr] # AirbyteMessage with MessageType.LOG has log.message
|
240
240
|
elif message.type == MessageType.LOG:
|
@@ -274,14 +274,14 @@ class MessageGrouper:
|
|
274
274
|
if message.trace.type == TraceType.ERROR: # type: ignore[union-attr] # AirbyteMessage with MessageType.TRACE has trace.type
|
275
275
|
yield message.trace
|
276
276
|
elif message.type == MessageType.RECORD:
|
277
|
-
current_page_records.append(message.record.data) # type: ignore[union-attr] # AirbyteMessage with MessageType.RECORD has record.data
|
277
|
+
current_page_records.append(message.record.data) # type: ignore[arg-type, union-attr] # AirbyteMessage with MessageType.RECORD has record.data
|
278
278
|
records_count += 1
|
279
279
|
schema_inferrer.accumulate(message.record)
|
280
280
|
datetime_format_inferrer.accumulate(message.record)
|
281
281
|
elif (
|
282
282
|
message.type == MessageType.CONTROL
|
283
|
-
and message.control.type == OrchestratorType.CONNECTOR_CONFIG
|
284
|
-
):
|
283
|
+
and message.control.type == OrchestratorType.CONNECTOR_CONFIG # type: ignore[union-attr] # None doesn't have 'type'
|
284
|
+
):
|
285
285
|
yield message.control
|
286
286
|
elif message.type == MessageType.STATE:
|
287
287
|
latest_state_message = message.state # type: ignore[assignment]
|
@@ -310,8 +310,8 @@ class MessageGrouper:
|
|
310
310
|
and message.type == MessageType.LOG
|
311
311
|
and (
|
312
312
|
MessageGrouper._is_page_http_request(json_message)
|
313
|
-
or message.log.message.startswith("slice:")
|
314
|
-
)
|
313
|
+
or message.log.message.startswith("slice:") # type: ignore[union-attr] # AirbyteMessage with MessageType.LOG has log.message
|
314
|
+
)
|
315
315
|
)
|
316
316
|
|
317
317
|
@staticmethod
|
@@ -355,8 +355,8 @@ class MessageGrouper:
|
|
355
355
|
StreamReadPages(
|
356
356
|
request=current_page_request,
|
357
357
|
response=current_page_response,
|
358
|
-
records=deepcopy(current_page_records),
|
359
|
-
)
|
358
|
+
records=deepcopy(current_page_records), # type: ignore [arg-type]
|
359
|
+
)
|
360
360
|
)
|
361
361
|
current_page_records.clear()
|
362
362
|
|
@@ -9,7 +9,7 @@ import sys
|
|
9
9
|
from abc import ABC, abstractmethod
|
10
10
|
from typing import Any, Iterable, List, Mapping
|
11
11
|
|
12
|
-
|
12
|
+
import orjson
|
13
13
|
|
14
14
|
from airbyte_cdk.connector import Connector
|
15
15
|
from airbyte_cdk.exception_handler import init_uncaught_exception_handler
|
{airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/embedder.py
RENAMED
@@ -107,7 +107,7 @@ class BaseOpenAIEmbedder(Embedder):
|
|
107
107
|
class OpenAIEmbedder(BaseOpenAIEmbedder):
|
108
108
|
def __init__(self, config: OpenAIEmbeddingConfigModel, chunk_size: int):
|
109
109
|
super().__init__(
|
110
|
-
OpenAIEmbeddings(
|
110
|
+
OpenAIEmbeddings( # type: ignore [call-arg]
|
111
111
|
openai_api_key=config.openai_key, max_retries=15, disallowed_special=()
|
112
112
|
),
|
113
113
|
chunk_size,
|
@@ -118,7 +118,7 @@ class AzureOpenAIEmbedder(BaseOpenAIEmbedder):
|
|
118
118
|
def __init__(self, config: AzureOpenAIEmbeddingConfigModel, chunk_size: int):
|
119
119
|
# Azure OpenAI API has — as of 20230927 — a limit of 16 documents per request
|
120
120
|
super().__init__(
|
121
|
-
OpenAIEmbeddings(
|
121
|
+
OpenAIEmbeddings( # type: ignore [call-arg]
|
122
122
|
openai_api_key=config.openai_key,
|
123
123
|
chunk_size=16,
|
124
124
|
max_retries=15,
|
{airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/destinations/vector_db_based/writer.py
RENAMED
@@ -83,11 +83,19 @@ class Writer:
|
|
83
83
|
yield message
|
84
84
|
elif message.type == Type.RECORD:
|
85
85
|
record_chunks, record_id_to_delete = self.processor.process(message.record)
|
86
|
-
self.chunks[
|
87
|
-
|
88
|
-
|
89
|
-
|
86
|
+
self.chunks[
|
87
|
+
( # type: ignore [index] # expected "tuple[str, str]", got "tuple[str | Any | None, str | Any]"
|
88
|
+
message.record.namespace, # type: ignore [union-attr] # record not None
|
89
|
+
message.record.stream, # type: ignore [union-attr] # record not None
|
90
90
|
)
|
91
|
+
].extend(record_chunks)
|
92
|
+
if record_id_to_delete is not None:
|
93
|
+
self.ids_to_delete[
|
94
|
+
( # type: ignore [index] # expected "tuple[str, str]", got "tuple[str | Any | None, str | Any]"
|
95
|
+
message.record.namespace, # type: ignore [union-attr] # record not None
|
96
|
+
message.record.stream, # type: ignore [union-attr] # record not None
|
97
|
+
)
|
98
|
+
].append(record_id_to_delete)
|
91
99
|
self.number_of_chunks += len(record_chunks)
|
92
100
|
if self.number_of_chunks >= self.batch_size:
|
93
101
|
self._process_batch()
|
@@ -22,7 +22,7 @@ from requests import PreparedRequest, Response, Session
|
|
22
22
|
from airbyte_cdk.connector import TConfig
|
23
23
|
from airbyte_cdk.exception_handler import init_uncaught_exception_handler
|
24
24
|
from airbyte_cdk.logger import init_logger
|
25
|
-
from airbyte_cdk.models import (
|
25
|
+
from airbyte_cdk.models import (
|
26
26
|
AirbyteConnectionStatus,
|
27
27
|
AirbyteMessage,
|
28
28
|
AirbyteMessageSerializer,
|
@@ -255,9 +255,10 @@ class AirbyteEntrypoint(object):
|
|
255
255
|
|
256
256
|
stream_message_count[
|
257
257
|
HashableStreamDescriptor(
|
258
|
-
name=message.record.stream,
|
258
|
+
name=message.record.stream, # type: ignore[union-attr] # record has `stream`
|
259
|
+
namespace=message.record.namespace, # type: ignore[union-attr] # record has `namespace`
|
259
260
|
)
|
260
|
-
] += 1.0
|
261
|
+
] += 1.0
|
261
262
|
case Type.STATE:
|
262
263
|
if message.state is None:
|
263
264
|
raise ValueError("State message must have a state attribute")
|
@@ -266,9 +267,9 @@ class AirbyteEntrypoint(object):
|
|
266
267
|
|
267
268
|
# Set record count from the counter onto the state message
|
268
269
|
message.state.sourceStats = message.state.sourceStats or AirbyteStateStats() # type: ignore[union-attr] # state has `sourceStats`
|
269
|
-
message.state.sourceStats.recordCount = stream_message_count.get(
|
270
|
+
message.state.sourceStats.recordCount = stream_message_count.get( # type: ignore[union-attr] # state has `sourceStats`
|
270
271
|
stream_descriptor, 0.0
|
271
|
-
)
|
272
|
+
)
|
272
273
|
|
273
274
|
# Reset the counter
|
274
275
|
stream_message_count[stream_descriptor] = 0.0
|
@@ -290,7 +291,7 @@ class AirbyteEntrypoint(object):
|
|
290
291
|
|
291
292
|
@staticmethod
|
292
293
|
def airbyte_message_to_string(airbyte_message: AirbyteMessage) -> str:
|
293
|
-
return orjson.dumps(AirbyteMessageSerializer.dump(airbyte_message)).decode()
|
294
|
+
return orjson.dumps(AirbyteMessageSerializer.dump(airbyte_message)).decode()
|
294
295
|
|
295
296
|
@classmethod
|
296
297
|
def extract_state(cls, args: List[str]) -> Optional[Any]:
|
@@ -7,7 +7,7 @@ import logging
|
|
7
7
|
import logging.config
|
8
8
|
from typing import Any, Callable, Mapping, Optional, Tuple
|
9
9
|
|
10
|
-
|
10
|
+
import orjson
|
11
11
|
|
12
12
|
from airbyte_cdk.models import (
|
13
13
|
AirbyteLogMessage,
|
@@ -78,7 +78,7 @@ class AirbyteLogFormatter(logging.Formatter):
|
|
78
78
|
log_message = AirbyteMessage(
|
79
79
|
type=Type.LOG, log=AirbyteLogMessage(level=airbyte_level, message=message)
|
80
80
|
)
|
81
|
-
return orjson.dumps(AirbyteMessageSerializer.dump(log_message)).decode()
|
81
|
+
return orjson.dumps(AirbyteMessageSerializer.dump(log_message)).decode()
|
82
82
|
|
83
83
|
@staticmethod
|
84
84
|
def extract_extra_args_from_record(record: logging.LogRecord) -> Mapping[str, Any]:
|
@@ -200,7 +200,7 @@ class AbstractSource(Source, ABC):
|
|
200
200
|
if len(stream_name_to_exception) > 0:
|
201
201
|
error_message = generate_failed_streams_error_message(
|
202
202
|
{key: [value] for key, value in stream_name_to_exception.items()}
|
203
|
-
)
|
203
|
+
)
|
204
204
|
logger.info(error_message)
|
205
205
|
# We still raise at least one exception when a stream raises an exception because the platform currently relies
|
206
206
|
# on a non-zero exit code to determine if a sync attempt has failed. We also raise the exception as a config_error
|
@@ -24,4 +24,4 @@ class BaseConfig(BaseModel):
|
|
24
24
|
rename_key(schema, old_key="anyOf", new_key="oneOf") # UI supports only oneOf
|
25
25
|
expand_refs(schema)
|
26
26
|
schema.pop("description", None) # description added from the docstring
|
27
|
-
return schema
|
27
|
+
return schema
|
{airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/connector_state_manager.py
RENAMED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
import copy
|
6
6
|
from dataclasses import dataclass
|
7
|
-
from typing import Any, List, Mapping, MutableMapping, Optional, Tuple, Union
|
7
|
+
from typing import Any, List, Mapping, MutableMapping, Optional, Tuple, Union, cast
|
8
8
|
|
9
9
|
from airbyte_cdk.models import (
|
10
10
|
AirbyteMessage,
|
@@ -15,6 +15,7 @@ from airbyte_cdk.models import (
|
|
15
15
|
StreamDescriptor,
|
16
16
|
)
|
17
17
|
from airbyte_cdk.models import Type as MessageType
|
18
|
+
from airbyte_cdk.models.airbyte_protocol import AirbyteGlobalState, AirbyteStateBlob
|
18
19
|
|
19
20
|
|
20
21
|
@dataclass(frozen=True)
|
@@ -118,8 +119,12 @@ class ConnectorStateManager:
|
|
118
119
|
is_global = cls._is_global_state(state)
|
119
120
|
|
120
121
|
if is_global:
|
121
|
-
|
122
|
-
|
122
|
+
# We already validate that this is a global state message, not None:
|
123
|
+
global_state = cast(AirbyteGlobalState, state[0].global_)
|
124
|
+
# global_state has shared_state, also not None:
|
125
|
+
shared_state: AirbyteStateBlob = cast(
|
126
|
+
AirbyteStateBlob, copy.deepcopy(global_state.shared_state, {})
|
127
|
+
)
|
123
128
|
streams = {
|
124
129
|
HashableStreamDescriptor(
|
125
130
|
name=per_stream_state.stream_descriptor.name,
|
@@ -131,7 +136,7 @@ class ConnectorStateManager:
|
|
131
136
|
else:
|
132
137
|
streams = {
|
133
138
|
HashableStreamDescriptor(
|
134
|
-
name=per_stream_state.stream.stream_descriptor.name,
|
139
|
+
name=per_stream_state.stream.stream_descriptor.name, # type: ignore[union-attr] # stream has stream_descriptor
|
135
140
|
namespace=per_stream_state.stream.stream_descriptor.namespace, # type: ignore[union-attr] # stream has stream_descriptor
|
136
141
|
): per_stream_state.stream.stream_state # type: ignore[union-attr] # stream has stream_state
|
137
142
|
for per_stream_state in state
|
{airbyte_cdk-6.8.1rc9 → airbyte_cdk-6.8.2.dev1}/airbyte_cdk/sources/declarative/auth/oauth.py
RENAMED
@@ -135,7 +135,7 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
|
|
135
135
|
return self.grant_type.eval(self.config) # type: ignore # eval returns a string in this context
|
136
136
|
|
137
137
|
def get_refresh_request_body(self) -> Mapping[str, Any]:
|
138
|
-
return self._refresh_request_body.eval(self.config)
|
138
|
+
return self._refresh_request_body.eval(self.config)
|
139
139
|
|
140
140
|
def get_token_expiry_date(self) -> pendulum.DateTime:
|
141
141
|
return self._token_expiry_date # type: ignore # _token_expiry_date is a pendulum.DateTime. It is never None despite what mypy thinks
|
@@ -28,7 +28,12 @@ class SelectiveAuthenticator(DeclarativeAuthenticator):
|
|
28
28
|
**kwargs: Any,
|
29
29
|
) -> DeclarativeAuthenticator:
|
30
30
|
try:
|
31
|
-
selected_key = str(
|
31
|
+
selected_key = str(
|
32
|
+
dpath.get(
|
33
|
+
config, # type: ignore [arg-type] # Dpath wants mutable mapping but doesn't need it.
|
34
|
+
authenticator_selection_path,
|
35
|
+
)
|
36
|
+
)
|
32
37
|
except KeyError as err:
|
33
38
|
raise ValueError(
|
34
39
|
"The path from `authenticator_selection_path` is not found in the config."
|
@@ -20,6 +20,9 @@ from airbyte_cdk.sources.declarative.extractors.record_filter import (
|
|
20
20
|
ClientSideIncrementalRecordFilterDecorator,
|
21
21
|
)
|
22
22
|
from airbyte_cdk.sources.declarative.incremental.datetime_based_cursor import DatetimeBasedCursor
|
23
|
+
from airbyte_cdk.sources.declarative.incremental.per_partition_with_global import (
|
24
|
+
PerPartitionWithGlobalCursor,
|
25
|
+
)
|
23
26
|
from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
|
24
27
|
from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
|
25
28
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
@@ -56,9 +59,8 @@ from airbyte_cdk.sources.types import Config, StreamState
|
|
56
59
|
|
57
60
|
|
58
61
|
class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
59
|
-
# By default, we defer to a value of
|
60
|
-
|
61
|
-
SINGLE_THREADED_CONCURRENCY_LEVEL = 2
|
62
|
+
# By default, we defer to a value of 1 which represents running a connector using the Concurrent CDK engine on only one thread.
|
63
|
+
SINGLE_THREADED_CONCURRENCY_LEVEL = 1
|
62
64
|
|
63
65
|
def __init__(
|
64
66
|
self,
|
@@ -79,9 +81,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
79
81
|
emit_connector_builder_messages=emit_connector_builder_messages,
|
80
82
|
disable_resumable_full_refresh=True,
|
81
83
|
)
|
82
|
-
self._config = config
|
83
|
-
self._concurrent_streams: Optional[List[AbstractStream]] = None
|
84
|
-
self._synchronous_streams: Optional[List[Stream]] = None
|
85
84
|
|
86
85
|
super().__init__(
|
87
86
|
source_config=source_config,
|
@@ -92,6 +91,21 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
92
91
|
|
93
92
|
self._state = state
|
94
93
|
|
94
|
+
self._concurrent_streams: Optional[List[AbstractStream]]
|
95
|
+
self._synchronous_streams: Optional[List[Stream]]
|
96
|
+
|
97
|
+
# If the connector command was SPEC, there is no incoming config, and we cannot instantiate streams because
|
98
|
+
# they might depend on it. Ideally we want to have a static method on this class to get the spec without
|
99
|
+
# any other arguments, but the existing entrypoint.py isn't designed to support this. Just noting this
|
100
|
+
# for our future improvements to the CDK.
|
101
|
+
if config:
|
102
|
+
self._concurrent_streams, self._synchronous_streams = self._group_streams(
|
103
|
+
config=config or {}
|
104
|
+
)
|
105
|
+
else:
|
106
|
+
self._concurrent_streams = None
|
107
|
+
self._synchronous_streams = None
|
108
|
+
|
95
109
|
concurrency_level_from_manifest = self._source_config.get("concurrency_level")
|
96
110
|
if concurrency_level_from_manifest:
|
97
111
|
concurrency_level_component = self._constructor.create_component(
|
@@ -110,29 +124,16 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
110
124
|
) # Partition_generation iterates using range based on this value. If this is floored to zero we end up in a dead lock during start up
|
111
125
|
else:
|
112
126
|
concurrency_level = self.SINGLE_THREADED_CONCURRENCY_LEVEL
|
113
|
-
initial_number_of_partitions_to_generate = self.SINGLE_THREADED_CONCURRENCY_LEVEL
|
127
|
+
initial_number_of_partitions_to_generate = self.SINGLE_THREADED_CONCURRENCY_LEVEL
|
114
128
|
|
115
129
|
self._concurrent_source = ConcurrentSource.create(
|
116
130
|
num_workers=concurrency_level,
|
117
131
|
initial_number_of_partitions_to_generate=initial_number_of_partitions_to_generate,
|
118
132
|
logger=self.logger,
|
119
133
|
slice_logger=self._slice_logger,
|
120
|
-
message_repository=self.message_repository,
|
134
|
+
message_repository=self.message_repository,
|
121
135
|
)
|
122
136
|
|
123
|
-
def _actually_group(self) -> None:
|
124
|
-
# If the connector command was SPEC, there is no incoming config, and we cannot instantiate streams because
|
125
|
-
# they might depend on it. Ideally we want to have a static method on this class to get the spec without
|
126
|
-
# any other arguments, but the existing entrypoint.py isn't designed to support this. Just noting this
|
127
|
-
# for our future improvements to the CDK.
|
128
|
-
if self._config:
|
129
|
-
self._concurrent_streams, self._synchronous_streams = self._group_streams(
|
130
|
-
config=self._config or {}
|
131
|
-
)
|
132
|
-
else:
|
133
|
-
self._concurrent_streams = None
|
134
|
-
self._synchronous_streams = None
|
135
|
-
|
136
137
|
def read(
|
137
138
|
self,
|
138
139
|
logger: logging.Logger,
|
@@ -142,9 +143,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
142
143
|
) -> Iterator[AirbyteMessage]:
|
143
144
|
# ConcurrentReadProcessor pops streams that are finished being read so before syncing, the names of the concurrent
|
144
145
|
# streams must be saved so that they can be removed from the catalog before starting synchronous streams
|
145
|
-
if self._concurrent_streams is None:
|
146
|
-
self._actually_group()
|
147
|
-
|
148
146
|
if self._concurrent_streams:
|
149
147
|
concurrent_stream_names = set(
|
150
148
|
[concurrent_stream.name for concurrent_stream in self._concurrent_streams]
|
@@ -170,9 +168,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
170
168
|
yield from super().read(logger, config, filtered_catalog, state)
|
171
169
|
|
172
170
|
def discover(self, logger: logging.Logger, config: Mapping[str, Any]) -> AirbyteCatalog:
|
173
|
-
if self._concurrent_streams is None:
|
174
|
-
self._actually_group()
|
175
|
-
|
176
171
|
concurrent_streams = self._concurrent_streams or []
|
177
172
|
synchronous_streams = self._synchronous_streams or []
|
178
173
|
return AirbyteCatalog(
|
@@ -201,7 +196,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
201
196
|
state_manager = ConnectorStateManager(state=self._state) # type: ignore # state is always in the form of List[AirbyteStateMessage]. The ConnectorStateManager should use generics, but this can be done later
|
202
197
|
|
203
198
|
name_to_stream_mapping = {
|
204
|
-
stream["name"]: stream for stream in self.
|
199
|
+
stream["name"]: stream for stream in self.resolved_manifest["streams"]
|
205
200
|
}
|
206
201
|
|
207
202
|
for declarative_stream in self.streams(config=config):
|
@@ -314,6 +309,59 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
314
309
|
cursor=final_state_cursor,
|
315
310
|
)
|
316
311
|
)
|
312
|
+
elif (
|
313
|
+
incremental_sync_component_definition
|
314
|
+
and incremental_sync_component_definition.get("type", "")
|
315
|
+
== DatetimeBasedCursorModel.__name__
|
316
|
+
and self._stream_supports_concurrent_partition_processing(
|
317
|
+
declarative_stream=declarative_stream
|
318
|
+
)
|
319
|
+
and hasattr(declarative_stream.retriever, "stream_slicer")
|
320
|
+
and isinstance(declarative_stream.retriever.stream_slicer, PerPartitionWithGlobalCursor)
|
321
|
+
):
|
322
|
+
stream_state = state_manager.get_stream_state(
|
323
|
+
stream_name=declarative_stream.name, namespace=declarative_stream.namespace
|
324
|
+
)
|
325
|
+
partition_router = declarative_stream.retriever.stream_slicer._partition_router
|
326
|
+
|
327
|
+
cursor = self._constructor.create_concurrent_cursor_from_perpartition_cursor(
|
328
|
+
state_manager=state_manager,
|
329
|
+
model_type=DatetimeBasedCursorModel,
|
330
|
+
component_definition=incremental_sync_component_definition,
|
331
|
+
stream_name=declarative_stream.name,
|
332
|
+
stream_namespace=declarative_stream.namespace,
|
333
|
+
config=config or {},
|
334
|
+
stream_state=stream_state,
|
335
|
+
partition_router=partition_router,
|
336
|
+
)
|
337
|
+
|
338
|
+
|
339
|
+
partition_generator = StreamSlicerPartitionGenerator(
|
340
|
+
DeclarativePartitionFactory(
|
341
|
+
declarative_stream.name,
|
342
|
+
declarative_stream.get_json_schema(),
|
343
|
+
self._retriever_factory(
|
344
|
+
name_to_stream_mapping[declarative_stream.name],
|
345
|
+
config,
|
346
|
+
stream_state,
|
347
|
+
),
|
348
|
+
self.message_repository,
|
349
|
+
),
|
350
|
+
cursor,
|
351
|
+
)
|
352
|
+
|
353
|
+
concurrent_streams.append(
|
354
|
+
DefaultStream(
|
355
|
+
partition_generator=partition_generator,
|
356
|
+
name=declarative_stream.name,
|
357
|
+
json_schema=declarative_stream.get_json_schema(),
|
358
|
+
availability_strategy=AlwaysAvailableAvailabilityStrategy(),
|
359
|
+
primary_key=get_primary_key_from_stream(declarative_stream.primary_key),
|
360
|
+
cursor_field=cursor.cursor_field.cursor_field_key,
|
361
|
+
logger=self.logger,
|
362
|
+
cursor=cursor,
|
363
|
+
)
|
364
|
+
)
|
317
365
|
else:
|
318
366
|
synchronous_streams.append(declarative_stream)
|
319
367
|
else:
|