airbyte-cdk 6.45.0.post24.dev14387467928__tar.gz → 6.45.1.post44.dev14417290834__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/PKG-INFO +2 -1
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/connector_builder_handler.py +12 -3
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/main.py +3 -3
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/reader.py +2 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +3 -3
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/filters.py +49 -2
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_based_source.py +3 -3
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +1 -1
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +3 -3
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/shared/sql_processor.py +8 -9
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/test_suites/__init__.py +1 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/test_suites/connector_base.py +49 -40
- airbyte_cdk-6.45.1.post44.dev14417290834/airbyte_cdk/test/declarative/test_suites/declarative_sources.py +74 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/test_suites/source_base.py +7 -8
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/utils/job_runner.py +48 -26
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/pytest_config/plugin.py +3 -3
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/pyproject.toml +8 -4
- airbyte_cdk-6.45.0.post24.dev14387467928/airbyte_cdk/test/declarative/test_suites/declarative_sources.py +0 -48
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/LICENSE.txt +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/README.md +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/config_observation.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/destination.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/entrypoint.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/logger.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/airbyte_protocol.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/abstract_source.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/config.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/connector_state_manager.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/http_logger.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/core.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/http.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/record_helper.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/transform.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/models/scenario.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/test_suites/destination_base.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/fixtures/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/fixtures/auto.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/datetime_helpers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/event_timing.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/message_utils.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/stream_status_utils.py +0 -0
- {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/traced_exception.py +0 -0
{airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.45.
|
3
|
+
Version: 6.45.1.post44.dev14417290834
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
Home-page: https://airbyte.com
|
6
6
|
License: MIT
|
@@ -26,6 +26,7 @@ Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
|
|
26
26
|
Requires-Dist: anyascii (>=0.3.2,<0.4.0)
|
27
27
|
Requires-Dist: avro (>=1.11.2,<1.13.0) ; extra == "file-based"
|
28
28
|
Requires-Dist: backoff
|
29
|
+
Requires-Dist: boltons (>=25.0.0,<26.0.0)
|
29
30
|
Requires-Dist: cachetools
|
30
31
|
Requires-Dist: cohere (==4.21) ; extra == "vector-db-based"
|
31
32
|
Requires-Dist: cryptography (>=44.0.0,<45.0.0)
|
@@ -35,8 +35,10 @@ MAX_RECORDS_KEY = "max_records"
|
|
35
35
|
MAX_STREAMS_KEY = "max_streams"
|
36
36
|
|
37
37
|
|
38
|
-
@dataclass
|
38
|
+
@dataclass(kw_only=True)
|
39
39
|
class TestLimits:
|
40
|
+
__test__: bool = False # Prevent pytest from treating this as a test case, despite its name
|
41
|
+
|
40
42
|
max_records: int = field(default=DEFAULT_MAXIMUM_RECORDS)
|
41
43
|
max_pages_per_slice: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
|
42
44
|
max_slices: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
|
@@ -51,7 +53,12 @@ def get_limits(config: Mapping[str, Any]) -> TestLimits:
|
|
51
53
|
max_slices = command_config.get(MAX_SLICES_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_SLICES
|
52
54
|
max_records = command_config.get(MAX_RECORDS_KEY) or DEFAULT_MAXIMUM_RECORDS
|
53
55
|
max_streams = command_config.get(MAX_STREAMS_KEY) or DEFAULT_MAXIMUM_STREAMS
|
54
|
-
return TestLimits(
|
56
|
+
return TestLimits(
|
57
|
+
max_records=max_records,
|
58
|
+
max_pages_per_slice=max_pages_per_slice,
|
59
|
+
max_slices=max_slices,
|
60
|
+
max_streams=max_streams,
|
61
|
+
)
|
55
62
|
|
56
63
|
|
57
64
|
def create_source(config: Mapping[str, Any], limits: TestLimits) -> ManifestDeclarativeSource:
|
@@ -79,7 +86,9 @@ def read_stream(
|
|
79
86
|
) -> AirbyteMessage:
|
80
87
|
try:
|
81
88
|
test_read_handler = TestReader(
|
82
|
-
limits.max_pages_per_slice,
|
89
|
+
max_pages_per_slice=limits.max_pages_per_slice,
|
90
|
+
max_slices=limits.max_slices,
|
91
|
+
max_record_limit=limits.max_records,
|
83
92
|
)
|
84
93
|
# The connector builder only supports a single stream
|
85
94
|
stream_name = configured_catalog.streams[0].stream.name
|
@@ -78,9 +78,9 @@ def handle_connector_builder_request(
|
|
78
78
|
if command == "resolve_manifest":
|
79
79
|
return resolve_manifest(source)
|
80
80
|
elif command == "test_read":
|
81
|
-
assert (
|
82
|
-
|
83
|
-
)
|
81
|
+
assert catalog is not None, (
|
82
|
+
"`test_read` requires a valid `ConfiguredAirbyteCatalog`, got None."
|
83
|
+
)
|
84
84
|
return read_stream(source, config, catalog, state, limits)
|
85
85
|
elif command == "full_resolve_manifest":
|
86
86
|
return full_resolve_manifest(source, limits)
|
@@ -49,9 +49,9 @@ class ConcurrentSource:
|
|
49
49
|
too_many_generator = (
|
50
50
|
not is_single_threaded and initial_number_of_partitions_to_generate >= num_workers
|
51
51
|
)
|
52
|
-
assert (
|
53
|
-
|
54
|
-
)
|
52
|
+
assert not too_many_generator, (
|
53
|
+
"It is required to have more workers than threads generating partitions"
|
54
|
+
)
|
55
55
|
threadpool = ThreadPoolManager(
|
56
56
|
concurrent.futures.ThreadPoolExecutor(
|
57
57
|
max_workers=num_workers, thread_name_prefix="workerpool"
|
@@ -4,9 +4,10 @@
|
|
4
4
|
|
5
5
|
import base64
|
6
6
|
import hashlib
|
7
|
+
import hmac as hmac_lib
|
7
8
|
import json
|
8
9
|
import re
|
9
|
-
from typing import Any, Optional
|
10
|
+
from typing import Any, Dict, Optional
|
10
11
|
|
11
12
|
|
12
13
|
def hash(value: Any, hash_type: str = "md5", salt: Optional[str] = None) -> str:
|
@@ -135,5 +136,51 @@ def regex_search(value: str, regex: str) -> str:
|
|
135
136
|
return ""
|
136
137
|
|
137
138
|
|
138
|
-
|
139
|
+
def hmac(value: Any, key: str, hash_type: str = "sha256") -> str:
|
140
|
+
"""
|
141
|
+
Implementation of a custom Jinja2 hmac filter with SHA-256 support.
|
142
|
+
|
143
|
+
This filter creates a Hash-based Message Authentication Code (HMAC) using a cryptographic
|
144
|
+
hash function and a secret key. Currently only supports SHA-256, and returns hexdigest of the signature.
|
145
|
+
|
146
|
+
Example usage in a low code connector:
|
147
|
+
|
148
|
+
auth_headers:
|
149
|
+
$ref: "#/definitions/base_auth"
|
150
|
+
$parameters:
|
151
|
+
signature: "{{ 'message_to_sign' | hmac('my_secret_key') }}"
|
152
|
+
|
153
|
+
:param value: The message to be authenticated
|
154
|
+
:param key: The secret key for the HMAC
|
155
|
+
:param hash_type: Hash algorithm to use (default: sha256)
|
156
|
+
:return: HMAC digest as a hexadecimal string
|
157
|
+
"""
|
158
|
+
# Define allowed hash functions
|
159
|
+
ALLOWED_HASH_TYPES: Dict[str, Any] = {
|
160
|
+
"sha256": hashlib.sha256,
|
161
|
+
}
|
162
|
+
|
163
|
+
if hash_type not in ALLOWED_HASH_TYPES:
|
164
|
+
raise ValueError(
|
165
|
+
f"Hash type '{hash_type}' is not allowed. Allowed types: {', '.join(ALLOWED_HASH_TYPES.keys())}"
|
166
|
+
)
|
167
|
+
|
168
|
+
hmac_obj = hmac_lib.new(
|
169
|
+
key=str(key).encode("utf-8"),
|
170
|
+
msg=str(value).encode("utf-8"),
|
171
|
+
digestmod=ALLOWED_HASH_TYPES[hash_type],
|
172
|
+
)
|
173
|
+
|
174
|
+
return hmac_obj.hexdigest()
|
175
|
+
|
176
|
+
|
177
|
+
_filters_list = [
|
178
|
+
hash,
|
179
|
+
base64encode,
|
180
|
+
base64decode,
|
181
|
+
base64binascii_decode,
|
182
|
+
string,
|
183
|
+
regex_search,
|
184
|
+
hmac,
|
185
|
+
]
|
139
186
|
filters = {f.__name__: f for f in _filters_list}
|
@@ -282,9 +282,9 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
|
|
282
282
|
and hasattr(self, "_concurrency_level")
|
283
283
|
and self._concurrency_level is not None
|
284
284
|
):
|
285
|
-
assert (
|
286
|
-
|
287
|
-
)
|
285
|
+
assert state_manager is not None, (
|
286
|
+
"No ConnectorStateManager was created, but it is required for incremental syncs. This is unexpected. Please contact Support."
|
287
|
+
)
|
288
288
|
|
289
289
|
cursor = self.cursor_cls(
|
290
290
|
stream_config,
|
@@ -154,7 +154,7 @@ class AvroParser(FileTypeParser):
|
|
154
154
|
# For example: ^-?\d{1,5}(?:\.\d{1,3})?$ would accept 12345.123 and 123456.12345 would be rejected
|
155
155
|
return {
|
156
156
|
"type": "string",
|
157
|
-
"pattern": f"^-?\\d{{{1,max_whole_number_range}}}(?:\\.\\d{1,decimal_range})?$",
|
157
|
+
"pattern": f"^-?\\d{{{1, max_whole_number_range}}}(?:\\.\\d{1, decimal_range})?$",
|
158
158
|
}
|
159
159
|
elif "logicalType" in avro_field:
|
160
160
|
if avro_field["logicalType"] not in AVRO_LOGICAL_TYPE_TO_JSON:
|
@@ -284,9 +284,9 @@ class FileBasedStreamPartition(Partition):
|
|
284
284
|
def to_slice(self) -> Optional[Mapping[str, Any]]:
|
285
285
|
if self._slice is None:
|
286
286
|
return None
|
287
|
-
assert (
|
288
|
-
len(self._slice[
|
289
|
-
)
|
287
|
+
assert len(self._slice["files"]) == 1, (
|
288
|
+
f"Expected 1 file per partition but got {len(self._slice['files'])} for stream {self.stream_name()}"
|
289
|
+
)
|
290
290
|
file = self._slice["files"][0]
|
291
291
|
return {"files": [file]}
|
292
292
|
|
@@ -326,9 +326,9 @@ class SqlProcessorBase(abc.ABC):
|
|
326
326
|
|
327
327
|
if DEBUG_MODE:
|
328
328
|
found_schemas = schemas_list
|
329
|
-
assert (
|
330
|
-
schema_name
|
331
|
-
)
|
329
|
+
assert schema_name in found_schemas, (
|
330
|
+
f"Schema {schema_name} was not created. Found: {found_schemas}"
|
331
|
+
)
|
332
332
|
|
333
333
|
def _quote_identifier(self, identifier: str) -> str:
|
334
334
|
"""Return the given identifier, quoted."""
|
@@ -617,10 +617,10 @@ class SqlProcessorBase(abc.ABC):
|
|
617
617
|
self._execute_sql(
|
618
618
|
f"""
|
619
619
|
INSERT INTO {self._fully_qualified(final_table_name)} (
|
620
|
-
{f
|
620
|
+
{f",{nl} ".join(columns)}
|
621
621
|
)
|
622
622
|
SELECT
|
623
|
-
{f
|
623
|
+
{f",{nl} ".join(columns)}
|
624
624
|
FROM {self._fully_qualified(temp_table_name)}
|
625
625
|
""",
|
626
626
|
)
|
@@ -645,8 +645,7 @@ class SqlProcessorBase(abc.ABC):
|
|
645
645
|
deletion_name = f"{final_table_name}_deleteme"
|
646
646
|
commands = "\n".join(
|
647
647
|
[
|
648
|
-
f"ALTER TABLE {self._fully_qualified(final_table_name)} RENAME "
|
649
|
-
f"TO {deletion_name};",
|
648
|
+
f"ALTER TABLE {self._fully_qualified(final_table_name)} RENAME TO {deletion_name};",
|
650
649
|
f"ALTER TABLE {self._fully_qualified(temp_table_name)} RENAME "
|
651
650
|
f"TO {final_table_name};",
|
652
651
|
f"DROP TABLE {self._fully_qualified(deletion_name)};",
|
@@ -686,10 +685,10 @@ class SqlProcessorBase(abc.ABC):
|
|
686
685
|
{set_clause}
|
687
686
|
WHEN NOT MATCHED THEN INSERT
|
688
687
|
(
|
689
|
-
{f
|
688
|
+
{f",{nl} ".join(columns)}
|
690
689
|
)
|
691
690
|
VALUES (
|
692
|
-
tmp.{f
|
691
|
+
tmp.{f",{nl} tmp.".join(columns)}
|
693
692
|
);
|
694
693
|
""",
|
695
694
|
)
|
@@ -6,6 +6,7 @@ Here we have base classes for a robust set of declarative connector test suites.
|
|
6
6
|
|
7
7
|
from airbyte_cdk.test.declarative.test_suites.connector_base import (
|
8
8
|
ConnectorTestScenario,
|
9
|
+
ConnectorTestSuiteBase,
|
9
10
|
generate_tests,
|
10
11
|
)
|
11
12
|
from airbyte_cdk.test.declarative.test_suites.declarative_sources import (
|
@@ -4,34 +4,28 @@
|
|
4
4
|
from __future__ import annotations
|
5
5
|
|
6
6
|
import abc
|
7
|
-
import functools
|
8
7
|
import inspect
|
9
8
|
import sys
|
10
9
|
from pathlib import Path
|
11
|
-
from typing import Any,
|
10
|
+
from typing import Any, Literal
|
12
11
|
|
13
12
|
import pytest
|
14
13
|
import yaml
|
15
|
-
from
|
16
|
-
from typing_extensions import override
|
14
|
+
from boltons.typeutils import classproperty
|
17
15
|
|
18
16
|
from airbyte_cdk import Connector
|
19
17
|
from airbyte_cdk.models import (
|
20
18
|
AirbyteMessage,
|
21
19
|
Type,
|
22
20
|
)
|
23
|
-
from airbyte_cdk.sources import Source
|
24
|
-
from airbyte_cdk.sources.declarative.declarative_source import (
|
25
|
-
AbstractSource,
|
26
|
-
DeclarativeSource,
|
27
|
-
)
|
28
21
|
from airbyte_cdk.test import entrypoint_wrapper
|
29
22
|
from airbyte_cdk.test.declarative.models import (
|
30
23
|
ConnectorTestScenario,
|
31
24
|
)
|
32
|
-
from airbyte_cdk.test.declarative.utils.job_runner import run_test_job
|
25
|
+
from airbyte_cdk.test.declarative.utils.job_runner import IConnector, run_test_job
|
33
26
|
|
34
27
|
ACCEPTANCE_TEST_CONFIG = "acceptance-test-config.yml"
|
28
|
+
MANIFEST_YAML = "manifest.yaml"
|
35
29
|
|
36
30
|
|
37
31
|
class JavaClass(str):
|
@@ -49,7 +43,7 @@ class RunnableConnector(abc.ABC):
|
|
49
43
|
def launch(cls, args: list[str] | None) -> None: ...
|
50
44
|
|
51
45
|
|
52
|
-
def generate_tests(metafunc) -> None:
|
46
|
+
def generate_tests(metafunc: pytest.Metafunc) -> None:
|
53
47
|
"""
|
54
48
|
A helper for pytest_generate_tests hook.
|
55
49
|
|
@@ -96,23 +90,21 @@ def generate_tests(metafunc) -> None:
|
|
96
90
|
class ConnectorTestSuiteBase(abc.ABC):
|
97
91
|
"""Base class for connector test suites."""
|
98
92
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
93
|
+
@classmethod
|
94
|
+
def get_test_class_dir(cls) -> Path:
|
95
|
+
"""Get the file path that contains the class."""
|
96
|
+
module = sys.modules[cls.__module__]
|
97
|
+
# Get the directory containing the test file
|
98
|
+
return Path(inspect.getfile(module)).parent
|
105
99
|
|
106
100
|
connector: type[Connector] | Path | JavaClass | DockerImage | None = None
|
107
101
|
"""The connector class or path to the connector to test."""
|
108
102
|
|
109
|
-
working_dir: Path | None = None
|
110
|
-
"""The root directory of the connector source code."""
|
111
|
-
|
112
103
|
@classmethod
|
113
104
|
def create_connector(
|
114
|
-
cls,
|
115
|
-
|
105
|
+
cls,
|
106
|
+
scenario: ConnectorTestScenario,
|
107
|
+
) -> IConnector:
|
116
108
|
"""Instantiate the connector class."""
|
117
109
|
raise NotImplementedError("Subclasses must implement this method.")
|
118
110
|
|
@@ -121,7 +113,7 @@ class ConnectorTestSuiteBase(abc.ABC):
|
|
121
113
|
verb: Literal["read", "check", "discover"],
|
122
114
|
test_scenario: ConnectorTestScenario,
|
123
115
|
*,
|
124
|
-
catalog: dict | None = None,
|
116
|
+
catalog: dict[str, Any] | None = None,
|
125
117
|
) -> entrypoint_wrapper.EntrypointOutput:
|
126
118
|
"""Run a test job from provided CLI args and return the result."""
|
127
119
|
return run_test_job(
|
@@ -146,27 +138,43 @@ class ConnectorTestSuiteBase(abc.ABC):
|
|
146
138
|
msg for msg in result._messages if msg.type == Type.CONNECTION_STATUS
|
147
139
|
] # noqa: SLF001 # Non-public API
|
148
140
|
assert len(conn_status_messages) == 1, (
|
149
|
-
"Expected exactly one CONNECTION_STATUS message. Got:
|
141
|
+
f"Expected exactly one CONNECTION_STATUS message. Got: {result._messages}"
|
150
142
|
)
|
151
143
|
|
152
144
|
@classmethod
|
153
|
-
|
154
|
-
|
155
|
-
|
145
|
+
def get_connector_root_dir(cls) -> Path:
|
146
|
+
"""Get the root directory of the connector."""
|
147
|
+
for parent in cls.get_test_class_dir().parents:
|
148
|
+
if (parent / MANIFEST_YAML).exists():
|
149
|
+
return parent
|
150
|
+
if (parent / ACCEPTANCE_TEST_CONFIG).exists():
|
151
|
+
return parent
|
152
|
+
if parent.name == "airbyte_cdk":
|
153
|
+
break
|
154
|
+
# If we reach here, we didn't find the manifest file in any parent directory
|
155
|
+
# Check if the manifest file exists in the current directory
|
156
|
+
for parent in Path.cwd().parents:
|
157
|
+
if (parent / MANIFEST_YAML).exists():
|
158
|
+
return parent
|
159
|
+
if (parent / ACCEPTANCE_TEST_CONFIG).exists():
|
160
|
+
return parent
|
161
|
+
if parent.name == "airbyte_cdk":
|
162
|
+
break
|
156
163
|
|
157
|
-
Check vwd and parent directories of cwd for the config file, and return the first one found.
|
158
|
-
|
159
|
-
Give up if the config file is not found in any parent directory.
|
160
|
-
"""
|
161
|
-
current_dir = Path.cwd()
|
162
|
-
for parent_dir in current_dir.parents:
|
163
|
-
config_path = parent_dir / ACCEPTANCE_TEST_CONFIG
|
164
|
-
if config_path.exists():
|
165
|
-
return config_path
|
166
164
|
raise FileNotFoundError(
|
167
|
-
|
165
|
+
"Could not find connector root directory relative to "
|
166
|
+
f"'{str(cls.get_test_class_dir())}' or '{str(Path.cwd())}'."
|
168
167
|
)
|
169
168
|
|
169
|
+
@classproperty
|
170
|
+
def acceptance_test_config_path(cls) -> Path:
|
171
|
+
"""Get the path to the acceptance test config file."""
|
172
|
+
result = cls.get_connector_root_dir() / ACCEPTANCE_TEST_CONFIG
|
173
|
+
if result.exists():
|
174
|
+
return result
|
175
|
+
|
176
|
+
raise FileNotFoundError(f"Acceptance test config file not found at: {str(result)}")
|
177
|
+
|
170
178
|
@classmethod
|
171
179
|
def get_scenarios(
|
172
180
|
cls,
|
@@ -193,10 +201,11 @@ class ConnectorTestSuiteBase(abc.ABC):
|
|
193
201
|
for test in all_tests_config["acceptance_tests"][category]["tests"]
|
194
202
|
if "iam_role" not in test["config_path"]
|
195
203
|
]
|
196
|
-
|
204
|
+
connector_root = cls.get_connector_root_dir().absolute()
|
197
205
|
for test in tests_scenarios:
|
198
206
|
if test.config_path:
|
199
|
-
test.config_path =
|
207
|
+
test.config_path = connector_root / test.config_path
|
200
208
|
if test.configured_catalog_path:
|
201
|
-
test.configured_catalog_path =
|
209
|
+
test.configured_catalog_path = connector_root / test.configured_catalog_path
|
210
|
+
|
202
211
|
return tests_scenarios
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import os
|
2
|
+
from hashlib import md5
|
3
|
+
from pathlib import Path
|
4
|
+
from typing import Any, cast
|
5
|
+
|
6
|
+
import yaml
|
7
|
+
from boltons.typeutils import classproperty
|
8
|
+
|
9
|
+
from airbyte_cdk.sources.declarative.concurrent_declarative_source import (
|
10
|
+
ConcurrentDeclarativeSource,
|
11
|
+
)
|
12
|
+
from airbyte_cdk.test.declarative.models import ConnectorTestScenario
|
13
|
+
from airbyte_cdk.test.declarative.test_suites.connector_base import MANIFEST_YAML
|
14
|
+
from airbyte_cdk.test.declarative.test_suites.source_base import (
|
15
|
+
SourceTestSuiteBase,
|
16
|
+
)
|
17
|
+
from airbyte_cdk.test.declarative.utils.job_runner import IConnector
|
18
|
+
|
19
|
+
|
20
|
+
def md5_checksum(file_path: Path) -> str:
|
21
|
+
with open(file_path, "rb") as file:
|
22
|
+
return md5(file.read()).hexdigest()
|
23
|
+
|
24
|
+
|
25
|
+
class DeclarativeSourceTestSuite(SourceTestSuiteBase):
|
26
|
+
@classproperty
|
27
|
+
def manifest_yaml_path(cls) -> Path:
|
28
|
+
"""Get the path to the manifest.yaml file."""
|
29
|
+
result = cls.get_connector_root_dir() / MANIFEST_YAML
|
30
|
+
if result.exists():
|
31
|
+
return result
|
32
|
+
|
33
|
+
raise FileNotFoundError(
|
34
|
+
f"Manifest YAML file not found at {result}. "
|
35
|
+
"Please ensure that the test suite is run in the correct directory.",
|
36
|
+
)
|
37
|
+
|
38
|
+
@classproperty
|
39
|
+
def components_py_path(cls) -> Path | None:
|
40
|
+
"""Get the path to the components.py file."""
|
41
|
+
result = cls.get_connector_root_dir() / "components.py"
|
42
|
+
if result.exists():
|
43
|
+
return result
|
44
|
+
|
45
|
+
return None
|
46
|
+
|
47
|
+
@classmethod
|
48
|
+
def create_connector(
|
49
|
+
cls,
|
50
|
+
scenario: ConnectorTestScenario,
|
51
|
+
) -> IConnector:
|
52
|
+
"""Create a connector instance for the test suite."""
|
53
|
+
config: dict[str, Any] = scenario.get_config_dict()
|
54
|
+
# catalog = scenario.get_catalog()
|
55
|
+
# state = scenario.get_state()
|
56
|
+
# source_config = scenario.get_source_config()
|
57
|
+
|
58
|
+
manifest_dict = yaml.safe_load(cls.manifest_yaml_path.read_text())
|
59
|
+
if cls.components_py_path and cls.components_py_path.exists():
|
60
|
+
os.environ["AIRBYTE_ENABLE_UNSAFE_CODE"] = "true"
|
61
|
+
config["__injected_components_py"] = cls.components_py_path.read_text()
|
62
|
+
config["__injected_components_py_checksums"] = {
|
63
|
+
"md5": md5_checksum(cls.components_py_path),
|
64
|
+
}
|
65
|
+
|
66
|
+
return cast(
|
67
|
+
IConnector,
|
68
|
+
ConcurrentDeclarativeSource(
|
69
|
+
config=config,
|
70
|
+
catalog=None,
|
71
|
+
state=None,
|
72
|
+
source_config=manifest_dict,
|
73
|
+
),
|
74
|
+
)
|
@@ -2,9 +2,6 @@
|
|
2
2
|
"""Base class for source test suites."""
|
3
3
|
|
4
4
|
from dataclasses import asdict
|
5
|
-
from pathlib import Path
|
6
|
-
|
7
|
-
import pytest
|
8
5
|
|
9
6
|
from airbyte_cdk.models import (
|
10
7
|
AirbyteMessage,
|
@@ -45,8 +42,10 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
|
|
45
42
|
conn_status_messages: list[AirbyteMessage] = [
|
46
43
|
msg for msg in result._messages if msg.type == Type.CONNECTION_STATUS
|
47
44
|
] # noqa: SLF001 # Non-public API
|
48
|
-
|
49
|
-
|
45
|
+
num_status_messages = len(conn_status_messages)
|
46
|
+
assert num_status_messages == 1, (
|
47
|
+
f"Expected exactly one CONNECTION_STATUS message. Got {num_status_messages}: \n"
|
48
|
+
+ "\n".join([str(m) for m in result._messages])
|
50
49
|
)
|
51
50
|
|
52
51
|
def test_basic_read(
|
@@ -70,7 +69,7 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
|
|
70
69
|
sync_mode=SyncMode.full_refresh,
|
71
70
|
destination_sync_mode=DestinationSyncMode.append_dedup,
|
72
71
|
)
|
73
|
-
for stream in discover_result.catalog.catalog.streams
|
72
|
+
for stream in discover_result.catalog.catalog.streams # type: ignore [reportOptionalMemberAccess, union-attr]
|
74
73
|
]
|
75
74
|
)
|
76
75
|
result = run_test_job(
|
@@ -102,8 +101,8 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
|
|
102
101
|
},
|
103
102
|
supported_sync_modes=[SyncMode.full_refresh],
|
104
103
|
),
|
105
|
-
sync_mode="INVALID",
|
106
|
-
destination_sync_mode="INVALID",
|
104
|
+
sync_mode="INVALID", # type: ignore [reportArgumentType]
|
105
|
+
destination_sync_mode="INVALID", # type: ignore [reportArgumentType]
|
107
106
|
)
|
108
107
|
]
|
109
108
|
)
|
@@ -1,53 +1,62 @@
|
|
1
1
|
import tempfile
|
2
2
|
import uuid
|
3
|
+
from dataclasses import asdict
|
3
4
|
from pathlib import Path
|
4
5
|
from typing import Any, Callable, Literal
|
5
6
|
|
6
7
|
import orjson
|
8
|
+
from typing_extensions import Protocol, runtime_checkable
|
7
9
|
|
8
|
-
from airbyte_cdk import Connector
|
9
10
|
from airbyte_cdk.models import (
|
11
|
+
ConfiguredAirbyteCatalog,
|
10
12
|
Status,
|
11
13
|
)
|
12
|
-
from airbyte_cdk.sources.abstract_source import AbstractSource
|
13
|
-
from airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource
|
14
14
|
from airbyte_cdk.test import entrypoint_wrapper
|
15
15
|
from airbyte_cdk.test.declarative.models import (
|
16
16
|
ConnectorTestScenario,
|
17
17
|
)
|
18
18
|
|
19
19
|
|
20
|
+
@runtime_checkable
|
21
|
+
class IConnector(Protocol):
|
22
|
+
"""A connector that can be run in a test scenario."""
|
23
|
+
|
24
|
+
def launch(self, args: list[str] | None) -> None:
|
25
|
+
"""Launch the connector with the given arguments."""
|
26
|
+
...
|
27
|
+
|
28
|
+
|
20
29
|
def run_test_job(
|
21
|
-
connector:
|
30
|
+
connector: IConnector | type[IConnector] | Callable[[], IConnector],
|
22
31
|
verb: Literal["read", "check", "discover"],
|
23
32
|
test_instance: ConnectorTestScenario,
|
24
33
|
*,
|
25
|
-
catalog: dict[str, Any] | None = None,
|
34
|
+
catalog: ConfiguredAirbyteCatalog | dict[str, Any] | None = None,
|
26
35
|
) -> entrypoint_wrapper.EntrypointOutput:
|
27
36
|
"""Run a test job from provided CLI args and return the result."""
|
28
37
|
if not connector:
|
29
38
|
raise ValueError("Connector is required")
|
30
39
|
|
31
|
-
|
32
|
-
|
40
|
+
if catalog and isinstance(catalog, ConfiguredAirbyteCatalog):
|
41
|
+
# Convert the catalog to a dict if it's already a ConfiguredAirbyteCatalog.
|
42
|
+
catalog = asdict(catalog)
|
43
|
+
|
44
|
+
connector_obj: IConnector
|
45
|
+
if isinstance(connector, type) or callable(connector):
|
46
|
+
# If the connector is a class or a factory lambda, instantiate it.
|
33
47
|
connector_obj = connector()
|
34
|
-
elif
|
35
|
-
|
36
|
-
|
48
|
+
elif (
|
49
|
+
isinstance(
|
50
|
+
connector,
|
51
|
+
IConnector,
|
52
|
+
)
|
53
|
+
or True
|
54
|
+
): # TODO: Get a valid protocol check here
|
37
55
|
connector_obj = connector
|
38
|
-
elif isinstance(connector, Callable):
|
39
|
-
try:
|
40
|
-
connector_obj = connector()
|
41
|
-
except Exception as ex:
|
42
|
-
if not test_instance.expect_exception:
|
43
|
-
raise
|
44
|
-
|
45
|
-
return entrypoint_wrapper.EntrypointOutput(
|
46
|
-
messages=[],
|
47
|
-
uncaught_exception=ex,
|
48
|
-
)
|
49
56
|
else:
|
50
|
-
raise ValueError(
|
57
|
+
raise ValueError(
|
58
|
+
f"Invalid connector input: {type(connector)}",
|
59
|
+
)
|
51
60
|
|
52
61
|
args: list[str] = [verb]
|
53
62
|
if test_instance.config_path:
|
@@ -82,14 +91,14 @@ def run_test_job(
|
|
82
91
|
# Because it *also* can fail, we have ot redundantly wrap it in a try/except block.
|
83
92
|
|
84
93
|
result: entrypoint_wrapper.EntrypointOutput = entrypoint_wrapper._run_command( # noqa: SLF001 # Non-public API
|
85
|
-
source=connector_obj,
|
94
|
+
source=connector_obj, # type: ignore [arg-type]
|
86
95
|
args=args,
|
87
96
|
expecting_exception=test_instance.expect_exception,
|
88
97
|
)
|
89
98
|
if result.errors and not test_instance.expect_exception:
|
90
99
|
raise AssertionError(
|
91
100
|
"\n\n".join(
|
92
|
-
[str(err.trace.error).replace("\\n", "\n") for err in result.errors],
|
101
|
+
[str(err.trace.error).replace("\\n", "\n") for err in result.errors if err.trace],
|
93
102
|
)
|
94
103
|
)
|
95
104
|
|
@@ -106,10 +115,16 @@ def run_test_job(
|
|
106
115
|
+ "\n".join([str(msg) for msg in result.connection_status_messages])
|
107
116
|
)
|
108
117
|
if test_instance.expect_exception:
|
109
|
-
|
118
|
+
conn_status = result.connection_status_messages[0].connectionStatus
|
119
|
+
assert conn_status, (
|
120
|
+
"Expected CONNECTION_STATUS message to be present. Got: \n"
|
121
|
+
+ "\n".join([str(msg) for msg in result.connection_status_messages])
|
122
|
+
)
|
123
|
+
assert conn_status.status == Status.FAILED, (
|
110
124
|
"Expected CONNECTION_STATUS message to be FAILED. Got: \n"
|
111
125
|
+ "\n".join([str(msg) for msg in result.connection_status_messages])
|
112
126
|
)
|
127
|
+
|
113
128
|
return result
|
114
129
|
|
115
130
|
# For all other verbs, we assert check that an exception is raised (or not).
|
@@ -121,7 +136,14 @@ def run_test_job(
|
|
121
136
|
if result.errors:
|
122
137
|
raise AssertionError(
|
123
138
|
"\n\n".join(
|
124
|
-
[
|
139
|
+
[
|
140
|
+
str(err.trace.error).replace(
|
141
|
+
"\\n",
|
142
|
+
"\n",
|
143
|
+
)
|
144
|
+
for err in result.errors
|
145
|
+
if err.trace
|
146
|
+
],
|
125
147
|
)
|
126
148
|
)
|
127
149
|
|