airbyte-cdk 6.8.0rc2__tar.gz → 6.8.1.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.0rc2 → airbyte_cdk-6.8.1.dev1}/PKG-INFO +1 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +11 -5
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/config_observation.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/connector_builder/main.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/connector_builder/message_grouper.py +10 -10
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/destination.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/embedder.py +2 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/writer.py +12 -4
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/entrypoint.py +19 -8
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/logger.py +2 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/abstract_source.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/config.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/connector_state_manager.py +9 -4
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/auth/oauth.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +6 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +6 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +10 -4
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +16 -17
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +4 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +8 -6
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +3 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/macros.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +5 -6
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +13 -7
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +8 -6
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +2 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +5 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/spec/spec.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/embedded/base_integration.py +3 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +12 -4
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +18 -7
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +14 -11
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +3 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +11 -5
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +2 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +6 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/http_logger.py +3 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +5 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/adapters.py +6 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +9 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/cursor.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +2 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/core.py +17 -14
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/http.py +19 -19
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/http_client.py +2 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +2 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +62 -33
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/utils/record_helper.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/utils/schema_helpers.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/utils/transform.py +34 -15
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/entrypoint_wrapper.py +11 -6
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/mock_http/response_builder.py +1 -1
- airbyte_cdk-6.8.1.dev1/airbyte_cdk/test/utils/manifest_only_fixtures.py +40 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/airbyte_secrets_utils.py +1 -1
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/event_timing.py +10 -10
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/message_utils.py +4 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/spec_schema_transformations.py +3 -2
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/traced_exception.py +14 -12
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/pyproject.toml +7 -3
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/LICENSE.txt +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/README.md +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/models/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/embedded/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/embedded/catalog.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/embedded/runner.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/embedded/tools.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/types.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.dev1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.8.
|
3
|
+
Version: 6.8.1.dev1
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
Home-page: https://airbyte.com
|
6
6
|
License: MIT
|
@@ -21,7 +21,6 @@ Provides-Extra: file-based
|
|
21
21
|
Provides-Extra: sphinx-docs
|
22
22
|
Provides-Extra: sql
|
23
23
|
Provides-Extra: vector-db-based
|
24
|
-
Requires-Dist: Deprecated (>=1.2,<1.3)
|
25
24
|
Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
|
26
25
|
Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
|
27
26
|
Requires-Dist: Sphinx (>=4.2,<4.3) ; extra == "sphinx-docs"
|
{airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1.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.0rc2 → airbyte_cdk-6.8.1.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.0rc2 → airbyte_cdk-6.8.1.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.0rc2 → airbyte_cdk-6.8.1.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()
|
@@ -15,14 +15,14 @@ from functools import wraps
|
|
15
15
|
from typing import Any, DefaultDict, Iterable, List, Mapping, Optional
|
16
16
|
from urllib.parse import urlparse
|
17
17
|
|
18
|
+
import orjson
|
18
19
|
import requests
|
19
|
-
from orjson import orjson
|
20
20
|
from requests import PreparedRequest, Response, Session
|
21
21
|
|
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,
|
@@ -129,7 +129,11 @@ class AirbyteEntrypoint(object):
|
|
129
129
|
|
130
130
|
source_spec: ConnectorSpecification = self.source.spec(self.logger)
|
131
131
|
try:
|
132
|
-
with tempfile.TemporaryDirectory(
|
132
|
+
with tempfile.TemporaryDirectory(
|
133
|
+
# Cleanup can fail on Windows due to file locks. Ignore if so,
|
134
|
+
# rather than failing the whole process.
|
135
|
+
ignore_cleanup_errors=True,
|
136
|
+
) as temp_dir:
|
133
137
|
os.environ[ENV_REQUEST_CACHE_PATH] = (
|
134
138
|
temp_dir # set this as default directory for request_cache to store *.sqlite files
|
135
139
|
)
|
@@ -246,19 +250,26 @@ class AirbyteEntrypoint(object):
|
|
246
250
|
) -> AirbyteMessage:
|
247
251
|
match message.type:
|
248
252
|
case Type.RECORD:
|
253
|
+
if message.record is None:
|
254
|
+
raise ValueError("Record message must have a record attribute")
|
255
|
+
|
249
256
|
stream_message_count[
|
250
257
|
HashableStreamDescriptor(
|
251
|
-
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`
|
252
260
|
)
|
253
|
-
] += 1.0
|
261
|
+
] += 1.0
|
254
262
|
case Type.STATE:
|
263
|
+
if message.state is None:
|
264
|
+
raise ValueError("State message must have a state attribute")
|
265
|
+
|
255
266
|
stream_descriptor = message_utils.get_stream_descriptor(message)
|
256
267
|
|
257
268
|
# Set record count from the counter onto the state message
|
258
269
|
message.state.sourceStats = message.state.sourceStats or AirbyteStateStats() # type: ignore[union-attr] # state has `sourceStats`
|
259
|
-
message.state.sourceStats.recordCount = stream_message_count.get(
|
270
|
+
message.state.sourceStats.recordCount = stream_message_count.get( # type: ignore[union-attr] # state has `sourceStats`
|
260
271
|
stream_descriptor, 0.0
|
261
|
-
)
|
272
|
+
)
|
262
273
|
|
263
274
|
# Reset the counter
|
264
275
|
stream_message_count[stream_descriptor] = 0.0
|
@@ -280,7 +291,7 @@ class AirbyteEntrypoint(object):
|
|
280
291
|
|
281
292
|
@staticmethod
|
282
293
|
def airbyte_message_to_string(airbyte_message: AirbyteMessage) -> str:
|
283
|
-
return orjson.dumps(AirbyteMessageSerializer.dump(airbyte_message)).decode()
|
294
|
+
return orjson.dumps(AirbyteMessageSerializer.dump(airbyte_message)).decode()
|
284
295
|
|
285
296
|
@classmethod
|
286
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.0rc2 → airbyte_cdk-6.8.1.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.0rc2 → airbyte_cdk-6.8.1.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."
|
@@ -128,7 +128,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
128
128
|
initial_number_of_partitions_to_generate=initial_number_of_partitions_to_generate,
|
129
129
|
logger=self.logger,
|
130
130
|
slice_logger=self._slice_logger,
|
131
|
-
message_repository=self.message_repository,
|
131
|
+
message_repository=self.message_repository,
|
132
132
|
)
|
133
133
|
|
134
134
|
def read(
|
@@ -200,12 +200,15 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
200
200
|
# Some low-code sources use a combination of DeclarativeStream and regular Python streams. We can't inspect
|
201
201
|
# these legacy Python streams the way we do low-code streams to determine if they are concurrent compatible,
|
202
202
|
# so we need to treat them as synchronous
|
203
|
-
if
|
203
|
+
if (
|
204
|
+
isinstance(declarative_stream, DeclarativeStream)
|
205
|
+
and name_to_stream_mapping[declarative_stream.name].get("retriever")["type"]
|
206
|
+
== "SimpleRetriever"
|
207
|
+
):
|
204
208
|
incremental_sync_component_definition = name_to_stream_mapping[
|
205
209
|
declarative_stream.name
|
206
210
|
].get("incremental_sync")
|
207
211
|
|
208
|
-
|
209
212
|
partition_router_component_definition = (
|
210
213
|
name_to_stream_mapping[declarative_stream.name]
|
211
214
|
.get("retriever")
|
@@ -41,12 +41,12 @@ class MinMaxDatetime:
|
|
41
41
|
self.datetime = InterpolatedString.create(self.datetime, parameters=parameters or {})
|
42
42
|
self._parser = DatetimeParser()
|
43
43
|
self.min_datetime = (
|
44
|
-
InterpolatedString.create(self.min_datetime, parameters=parameters)
|
44
|
+
InterpolatedString.create(self.min_datetime, parameters=parameters) # type: ignore [assignment] # expression has type "InterpolatedString | None", variable has type "InterpolatedString | str"
|
45
45
|
if self.min_datetime
|
46
46
|
else None
|
47
47
|
) # type: ignore
|
48
48
|
self.max_datetime = (
|
49
|
-
InterpolatedString.create(self.max_datetime, parameters=parameters)
|
49
|
+
InterpolatedString.create(self.max_datetime, parameters=parameters) # type: ignore [assignment] # expression has type "InterpolatedString | None", variable has type "InterpolatedString | str"
|
50
50
|
if self.max_datetime
|
51
51
|
else None
|
52
52
|
) # type: ignore
|
@@ -66,7 +66,13 @@ class MinMaxDatetime:
|
|
66
66
|
datetime_format = "%Y-%m-%dT%H:%M:%S.%f%z"
|
67
67
|
|
68
68
|
time = self._parser.parse(
|
69
|
-
str(
|
69
|
+
str(
|
70
|
+
self.datetime.eval( # type: ignore[union-attr] # str has no attribute "eval"
|
71
|
+
config,
|
72
|
+
**additional_parameters,
|
73
|
+
)
|
74
|
+
),
|
75
|
+
datetime_format,
|
70
76
|
) # type: ignore # datetime is always cast to an interpolated string
|
71
77
|
|
72
78
|
if self.min_datetime:
|
@@ -105,7 +111,7 @@ class MinMaxDatetime:
|
|
105
111
|
if isinstance(interpolated_string_or_min_max_datetime, InterpolatedString) or isinstance(
|
106
112
|
interpolated_string_or_min_max_datetime, str
|
107
113
|
):
|
108
|
-
return MinMaxDatetime(
|
114
|
+
return MinMaxDatetime( # type: ignore [call-arg]
|
109
115
|
datetime=interpolated_string_or_min_max_datetime, parameters=parameters
|
110
116
|
)
|
111
117
|
else:
|
@@ -2057,7 +2057,7 @@ definitions:
|
|
2057
2057
|
The DeclarativeOAuth Specific URL templated string to obtain the `access_token`, `refresh_token` etc.
|
2058
2058
|
The placeholders are replaced during the processing to provide neccessary values.
|
2059
2059
|
examples:
|
2060
|
-
- access_token_url: https://auth.host.com/oauth2/token?{client_id_key}={{client_id_key}}&{client_secret_key}={{client_secret_key}}&{auth_code_key}={{auth_code_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}
|
2060
|
+
- access_token_url: https://auth.host.com/oauth2/token?{client_id_key}={{client_id_key}}&{client_secret_key}={{client_secret_key}}&{auth_code_key}={{auth_code_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}
|
2061
2061
|
access_token_headers:
|
2062
2062
|
title: (Optional) DeclarativeOAuth Access Token Headers
|
2063
2063
|
type: object
|
@@ -2065,9 +2065,10 @@ definitions:
|
|
2065
2065
|
description: |-
|
2066
2066
|
The DeclarativeOAuth Specific optional headers to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.
|
2067
2067
|
examples:
|
2068
|
-
- access_token_headers:
|
2069
|
-
|
2070
|
-
|
2068
|
+
- access_token_headers:
|
2069
|
+
{
|
2070
|
+
"Authorization": "Basic {base64Encoder:{client_id}:{client_secret}}",
|
2071
|
+
}
|
2071
2072
|
access_token_params:
|
2072
2073
|
title: (Optional) DeclarativeOAuth Access Token Query Params (Json Encoded)
|
2073
2074
|
type: object
|
@@ -2076,18 +2077,19 @@ definitions:
|
|
2076
2077
|
The DeclarativeOAuth Specific optional query parameters to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.
|
2077
2078
|
When this property is provided, the query params will be encoded as `Json` and included in the outgoing API request.
|
2078
2079
|
examples:
|
2079
|
-
- access_token_params:
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2083
|
-
|
2080
|
+
- access_token_params:
|
2081
|
+
{
|
2082
|
+
"{auth_code_key}": "{{auth_code_key}}",
|
2083
|
+
"{client_id_key}": "{{client_id_key}}",
|
2084
|
+
"{client_secret_key}": "{{client_secret_key}}",
|
2085
|
+
}
|
2084
2086
|
extract_output:
|
2085
2087
|
title: DeclarativeOAuth Extract Output
|
2086
2088
|
type: array
|
2087
2089
|
items:
|
2088
2090
|
type: string
|
2089
2091
|
description: |-
|
2090
|
-
The DeclarativeOAuth Specific list of strings to indicate which keys should be extracted and returned back to the input config.
|
2092
|
+
The DeclarativeOAuth Specific list of strings to indicate which keys should be extracted and returned back to the input config.
|
2091
2093
|
examples:
|
2092
2094
|
- extract_output: ["access_token", "refresh_token", "other_field"]
|
2093
2095
|
state:
|
@@ -2099,17 +2101,14 @@ definitions:
|
|
2099
2101
|
- max
|
2100
2102
|
description: |-
|
2101
2103
|
The DeclarativeOAuth Specific object to provide the criteria of how the `state` query param should be constructed,
|
2102
|
-
including length and complexity.
|
2104
|
+
including length and complexity.
|
2103
2105
|
properties:
|
2104
2106
|
min:
|
2105
2107
|
type: integer
|
2106
2108
|
max:
|
2107
2109
|
type: integer
|
2108
2110
|
examples:
|
2109
|
-
- state: {
|
2110
|
-
"min": 7,
|
2111
|
-
"max": 128,
|
2112
|
-
}
|
2111
|
+
- state: { "min": 7, "max": 128 }
|
2113
2112
|
client_id_key:
|
2114
2113
|
title: (Optional) DeclarativeOAuth Client ID Key Override
|
2115
2114
|
type: string
|
@@ -2135,14 +2134,14 @@ definitions:
|
|
2135
2134
|
title: (Optional) DeclarativeOAuth State Key Override
|
2136
2135
|
type: string
|
2137
2136
|
description: |-
|
2138
|
-
The DeclarativeOAuth Specific optional override to provide the custom `state` key name, if required by data-provider.
|
2137
|
+
The DeclarativeOAuth Specific optional override to provide the custom `state` key name, if required by data-provider.
|
2139
2138
|
examples:
|
2140
2139
|
- state_key: "my_custom_state_key_key_name"
|
2141
2140
|
auth_code_key:
|
2142
2141
|
title: (Optional) DeclarativeOAuth Auth Code Key Override
|
2143
2142
|
type: string
|
2144
2143
|
description: |-
|
2145
|
-
The DeclarativeOAuth Specific optional override to provide the custom `code` key name to something like `auth_code` or `custom_auth_code`, if required by data-provider.
|
2144
|
+
The DeclarativeOAuth Specific optional override to provide the custom `code` key name to something like `auth_code` or `custom_auth_code`, if required by data-provider.
|
2146
2145
|
examples:
|
2147
2146
|
- auth_code_key: "my_custom_auth_code_key_name"
|
2148
2147
|
redirect_uri_key:
|
@@ -14,5 +14,8 @@ class NoopDecoder(Decoder):
|
|
14
14
|
def is_stream_response(self) -> bool:
|
15
15
|
return False
|
16
16
|
|
17
|
-
def decode(
|
17
|
+
def decode( # type: ignore[override] # Signature doesn't match base class
|
18
|
+
self,
|
19
|
+
response: requests.Response,
|
20
|
+
) -> Generator[Mapping[str, Any], None, None]:
|
18
21
|
yield from [{}]
|
@@ -133,8 +133,8 @@ class DatetimeBasedCursor(DeclarativeCursor):
|
|
133
133
|
:param stream_state: The state of the stream as returned by get_stream_state
|
134
134
|
"""
|
135
135
|
self._cursor = (
|
136
|
-
stream_state.get(self.cursor_field.eval(self.config)) if stream_state else None
|
137
|
-
)
|
136
|
+
stream_state.get(self.cursor_field.eval(self.config)) if stream_state else None # type: ignore [union-attr]
|
137
|
+
)
|
138
138
|
|
139
139
|
def observe(self, stream_slice: StreamSlice, record: Record) -> None:
|
140
140
|
"""
|
@@ -158,8 +158,10 @@ class DatetimeBasedCursor(DeclarativeCursor):
|
|
158
158
|
)
|
159
159
|
if (
|
160
160
|
self._is_within_daterange_boundaries(
|
161
|
-
record,
|
162
|
-
|
161
|
+
record,
|
162
|
+
stream_slice.get(start_field), # type: ignore [arg-type]
|
163
|
+
stream_slice.get(end_field), # type: ignore [arg-type]
|
164
|
+
)
|
163
165
|
and is_highest_observed_cursor_value
|
164
166
|
):
|
165
167
|
self._highest_observed_cursor_field_value = record_cursor_value
|
@@ -368,9 +370,9 @@ class DatetimeBasedCursor(DeclarativeCursor):
|
|
368
370
|
self._partition_field_start.eval(self.config)
|
369
371
|
)
|
370
372
|
if self.end_time_option and self.end_time_option.inject_into == option_type:
|
371
|
-
options[self.end_time_option.field_name.eval(config=self.config)] = stream_slice.get(
|
373
|
+
options[self.end_time_option.field_name.eval(config=self.config)] = stream_slice.get( # type: ignore [union-attr]
|
372
374
|
self._partition_field_end.eval(self.config)
|
373
|
-
)
|
375
|
+
)
|
374
376
|
return options
|
375
377
|
|
376
378
|
def should_be_synced(self, record: Record) -> bool:
|
@@ -27,7 +27,7 @@ class StreamPartitionAccessEnvironment(SandboxedEnvironment):
|
|
27
27
|
def is_safe_attribute(self, obj: Any, attr: str, value: Any) -> bool:
|
28
28
|
if attr in ["_partition"]:
|
29
29
|
return True
|
30
|
-
return super().is_safe_attribute(obj, attr, value)
|
30
|
+
return super().is_safe_attribute(obj, attr, value)
|
31
31
|
|
32
32
|
|
33
33
|
class JinjaInterpolation(Interpolation):
|
@@ -132,7 +132,7 @@ class JinjaInterpolation(Interpolation):
|
|
132
132
|
return s
|
133
133
|
|
134
134
|
@cache
|
135
|
-
def _find_undeclared_variables(self, s: Optional[str]) ->
|
135
|
+
def _find_undeclared_variables(self, s: Optional[str]) -> set[str]:
|
136
136
|
"""
|
137
137
|
Find undeclared variables and cache them
|
138
138
|
"""
|
@@ -144,4 +144,4 @@ class JinjaInterpolation(Interpolation):
|
|
144
144
|
"""
|
145
145
|
We must cache the Jinja Template ourselves because we're using `from_string` instead of a template loader
|
146
146
|
"""
|
147
|
-
return self._environment.from_string(s)
|
147
|
+
return self._environment.from_string(s) # type: ignore [arg-type] # Expected `str | Template` but passed `str | None`
|
@@ -116,7 +116,7 @@ def duration(datestring: str) -> Union[datetime.timedelta, isodate.Duration]:
|
|
116
116
|
Usage:
|
117
117
|
`"{{ now_utc() - duration('P1D') }}"`
|
118
118
|
"""
|
119
|
-
return parse_duration(datestring)
|
119
|
+
return parse_duration(datestring)
|
120
120
|
|
121
121
|
|
122
122
|
def format_datetime(
|