airbyte-cdk 6.54.11__tar.gz → 6.55.1__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.54.11 → airbyte_cdk-6.55.1}/PKG-INFO +2 -1
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/airbyte_cdk/_connector.py +32 -8
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/airbyte_cdk/_image.py +76 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/airbyte_cdk/_secrets.py +13 -12
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/models/airbyte_protocol_serializers.py +4 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/models/connector_metadata.py +14 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +1 -1
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +31 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +28 -9
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +23 -2
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +2 -2
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/entrypoint_wrapper.py +163 -26
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/models/scenario.py +49 -10
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/standard_tests/__init__.py +2 -4
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/standard_tests/connector_base.py +12 -80
- airbyte_cdk-6.55.1/airbyte_cdk/test/standard_tests/docker_base.py +388 -0
- airbyte_cdk-6.55.1/airbyte_cdk/test/standard_tests/pytest_hooks.py +174 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/standard_tests/source_base.py +13 -7
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/standard_tests/util.py +4 -3
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/connector_paths.py +3 -3
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/docker.py +83 -34
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/pyproject.toml +3 -1
- airbyte_cdk-6.54.11/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -61
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/LICENSE.txt +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/README.md +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/airbyte_cdk/exceptions.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/config_observation.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/main.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/destination.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/entrypoint.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/logger.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/README.md +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/models/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/abstract_source.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/config.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/connector_state_manager.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/schema/composite_schema_loader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/add_fields.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/config_transformation.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/remap_field.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/validators/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/validators/dpath_validator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/validators/predicate_validator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/validators/validation_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/validators/validator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/http_logger.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/core.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/http.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/utils/files_directory.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/utils/record_helper.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/utils/transform.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/models/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/models/outcome.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/datetime_helpers.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/event_timing.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/message_utils.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
- {airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.
|
3
|
+
Version: 6.55.1
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
Home-page: https://airbyte.com
|
6
6
|
License: MIT
|
@@ -69,6 +69,7 @@ Requires-Dist: requests_cache
|
|
69
69
|
Requires-Dist: rich
|
70
70
|
Requires-Dist: rich-click (>=1.8.8,<2.0.0)
|
71
71
|
Requires-Dist: serpyco-rs (>=1.10.2,<2.0.0)
|
72
|
+
Requires-Dist: setuptools (>=80.9.0,<81.0.0)
|
72
73
|
Requires-Dist: sqlalchemy (>=2.0,<3.0,!=2.0.36) ; extra == "sql"
|
73
74
|
Requires-Dist: tiktoken (==0.8.0) ; extra == "vector-db-based"
|
74
75
|
Requires-Dist: typing-extensions
|
@@ -101,7 +101,7 @@ def connector_cli_group() -> None:
|
|
101
101
|
pass
|
102
102
|
|
103
103
|
|
104
|
-
@connector_cli_group.command()
|
104
|
+
@connector_cli_group.command("test")
|
105
105
|
@click.argument(
|
106
106
|
"connector",
|
107
107
|
required=False,
|
@@ -114,10 +114,18 @@ def connector_cli_group() -> None:
|
|
114
114
|
default=False,
|
115
115
|
help="Only collect tests, do not run them.",
|
116
116
|
)
|
117
|
-
|
117
|
+
@click.option(
|
118
|
+
"--pytest-arg",
|
119
|
+
"pytest_args", # ← map --pytest-arg into pytest_args
|
120
|
+
type=str,
|
121
|
+
multiple=True,
|
122
|
+
help="Additional argument(s) to pass to pytest. Can be specified multiple times.",
|
123
|
+
)
|
124
|
+
def connector_test(
|
118
125
|
connector: str | Path | None = None,
|
119
126
|
*,
|
120
127
|
collect_only: bool = False,
|
128
|
+
pytest_args: list[str] | None = None,
|
121
129
|
) -> None:
|
122
130
|
"""Run connector tests.
|
123
131
|
|
@@ -130,19 +138,36 @@ def test(
|
|
130
138
|
directory. If the current working directory is not a connector directory (e.g. starting
|
131
139
|
with 'source-') and no connector name or path is provided, the process will fail.
|
132
140
|
"""
|
141
|
+
click.echo("Connector test command executed.")
|
142
|
+
connector_name, connector_directory = resolve_connector_name_and_directory(connector)
|
143
|
+
|
144
|
+
pytest_args = pytest_args or []
|
145
|
+
if collect_only:
|
146
|
+
pytest_args.append("--collect-only")
|
147
|
+
|
148
|
+
run_connector_tests(
|
149
|
+
connector_name=connector_name,
|
150
|
+
connector_directory=connector_directory,
|
151
|
+
extra_pytest_args=pytest_args,
|
152
|
+
)
|
153
|
+
|
154
|
+
|
155
|
+
def run_connector_tests(
|
156
|
+
connector_name: str,
|
157
|
+
connector_directory: Path,
|
158
|
+
extra_pytest_args: list[str],
|
159
|
+
) -> None:
|
133
160
|
if pytest is None:
|
134
161
|
raise ImportError(
|
135
162
|
"pytest is not installed. Please install pytest to run the connector tests."
|
136
163
|
)
|
137
|
-
click.echo("Connector test command executed.")
|
138
|
-
connector_name, connector_directory = resolve_connector_name_and_directory(connector)
|
139
164
|
|
140
165
|
connector_test_suite = create_connector_test_suite(
|
141
166
|
connector_name=connector_name if not connector_directory else None,
|
142
167
|
connector_directory=connector_directory,
|
143
168
|
)
|
144
169
|
|
145
|
-
pytest_args: list[str] = []
|
170
|
+
pytest_args: list[str] = ["-p", "airbyte_cdk.test.standard_tests.pytest_hooks"]
|
146
171
|
if connector_directory:
|
147
172
|
pytest_args.append(f"--rootdir={connector_directory}")
|
148
173
|
os.chdir(str(connector_directory))
|
@@ -158,8 +183,8 @@ def test(
|
|
158
183
|
test_file_path.parent.mkdir(parents=True, exist_ok=True)
|
159
184
|
test_file_path.write_text(file_text)
|
160
185
|
|
161
|
-
if
|
162
|
-
pytest_args.
|
186
|
+
if extra_pytest_args:
|
187
|
+
pytest_args.extend(extra_pytest_args)
|
163
188
|
|
164
189
|
pytest_args.append(str(test_file_path))
|
165
190
|
|
@@ -170,7 +195,6 @@ def test(
|
|
170
195
|
|
171
196
|
click.echo(f"Running tests from connector directory: {connector_directory}...")
|
172
197
|
click.echo(f"Test file: {test_file_path}")
|
173
|
-
click.echo(f"Collect only: {collect_only}")
|
174
198
|
click.echo(f"Pytest args: {pytest_args}")
|
175
199
|
click.echo("Invoking Pytest...")
|
176
200
|
exit_code = pytest.main(
|
@@ -10,6 +10,7 @@ from pathlib import Path
|
|
10
10
|
|
11
11
|
import rich_click as click
|
12
12
|
|
13
|
+
from airbyte_cdk.cli.airbyte_cdk._connector import run_connector_tests
|
13
14
|
from airbyte_cdk.models.connector_metadata import MetadataFile
|
14
15
|
from airbyte_cdk.utils.connector_paths import resolve_connector_name_and_directory
|
15
16
|
from airbyte_cdk.utils.docker import (
|
@@ -88,6 +89,81 @@ def build(
|
|
88
89
|
sys.exit(1)
|
89
90
|
|
90
91
|
|
92
|
+
@image_cli_group.command("test")
|
93
|
+
@click.argument(
|
94
|
+
"connector",
|
95
|
+
required=False,
|
96
|
+
type=str,
|
97
|
+
metavar="[CONNECTOR]",
|
98
|
+
)
|
99
|
+
@click.option(
|
100
|
+
"--image",
|
101
|
+
help="Image to test, instead of building a new one.",
|
102
|
+
)
|
103
|
+
def image_test( # "image test" command
|
104
|
+
connector: str | None = None,
|
105
|
+
*,
|
106
|
+
image: str | None = None,
|
107
|
+
) -> None:
|
108
|
+
"""Test a connector Docker image.
|
109
|
+
|
110
|
+
[CONNECTOR] can be a connector name (e.g. 'source-pokeapi'), a path to a connector directory, or omitted to use the current working directory.
|
111
|
+
If a string containing '/' is provided, it is treated as a path. Otherwise, it is treated as a connector name.
|
112
|
+
|
113
|
+
If an image is provided, it will be used for testing instead of building a new one.
|
114
|
+
|
115
|
+
Note: You should run `airbyte-cdk secrets fetch` before running this command to ensure
|
116
|
+
that the secrets are available for the connector tests.
|
117
|
+
"""
|
118
|
+
if not verify_docker_installation():
|
119
|
+
click.echo(
|
120
|
+
"Docker is not installed or not running. Please install Docker and try again.", err=True
|
121
|
+
)
|
122
|
+
sys.exit(1)
|
123
|
+
|
124
|
+
connector_name, connector_directory = resolve_connector_name_and_directory(connector)
|
125
|
+
|
126
|
+
# Select only tests with the 'image_tests' mark
|
127
|
+
pytest_args = ["-m", "image_tests"]
|
128
|
+
if not image:
|
129
|
+
metadata_file_path: Path = connector_directory / "metadata.yaml"
|
130
|
+
try:
|
131
|
+
metadata = MetadataFile.from_file(metadata_file_path)
|
132
|
+
except (FileNotFoundError, ValueError) as e:
|
133
|
+
click.echo(
|
134
|
+
f"Error loading metadata file '{metadata_file_path}': {e!s}",
|
135
|
+
err=True,
|
136
|
+
)
|
137
|
+
sys.exit(1)
|
138
|
+
|
139
|
+
tag = "dev-latest"
|
140
|
+
image = f"{metadata.data.dockerRepository}:{tag}"
|
141
|
+
click.echo(f"Building Image for Connector: {image}")
|
142
|
+
try:
|
143
|
+
image = build_connector_image(
|
144
|
+
connector_directory=connector_directory,
|
145
|
+
connector_name=connector_name,
|
146
|
+
metadata=metadata,
|
147
|
+
tag=tag,
|
148
|
+
no_verify=True,
|
149
|
+
)
|
150
|
+
except ConnectorImageBuildError as e:
|
151
|
+
click.echo(
|
152
|
+
f"Error building connector image: {e!s}",
|
153
|
+
err=True,
|
154
|
+
)
|
155
|
+
sys.exit(1)
|
156
|
+
|
157
|
+
pytest_args.extend(["--connector-image", image])
|
158
|
+
|
159
|
+
click.echo(f"Testing Connector Image: {image}")
|
160
|
+
run_connector_tests(
|
161
|
+
connector_name=connector_name,
|
162
|
+
connector_directory=connector_directory,
|
163
|
+
extra_pytest_args=pytest_args,
|
164
|
+
)
|
165
|
+
|
166
|
+
|
91
167
|
__all__ = [
|
92
168
|
"image_cli_group",
|
93
169
|
]
|
@@ -99,12 +99,12 @@ def secrets_cli_group() -> None:
|
|
99
99
|
help="Print GitHub CI mask for secrets.",
|
100
100
|
type=bool,
|
101
101
|
is_flag=True,
|
102
|
-
default=
|
102
|
+
default=None,
|
103
103
|
)
|
104
104
|
def fetch(
|
105
105
|
connector: str | Path | None = None,
|
106
106
|
gcp_project_id: str = GCP_PROJECT_ID,
|
107
|
-
print_ci_secrets_masks: bool =
|
107
|
+
print_ci_secrets_masks: bool | None = None,
|
108
108
|
) -> None:
|
109
109
|
"""Fetch secrets for a connector from Google Secret Manager.
|
110
110
|
|
@@ -181,22 +181,23 @@ def fetch(
|
|
181
181
|
if secret_count == 0:
|
182
182
|
raise exceptions[0]
|
183
183
|
|
184
|
-
if not
|
185
|
-
return
|
186
|
-
|
187
|
-
if not os.environ.get("CI", None):
|
184
|
+
if print_ci_secrets_masks and "CI" not in os.environ:
|
188
185
|
click.echo(
|
189
186
|
"The `--print-ci-secrets-masks` option is only available in CI environments. "
|
190
187
|
"The `CI` env var is either not set or not set to a truthy value. "
|
191
188
|
"Skipping printing secret masks.",
|
192
189
|
err=True,
|
193
190
|
)
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
191
|
+
print_ci_secrets_masks = False
|
192
|
+
elif print_ci_secrets_masks is None:
|
193
|
+
# If not explicitly set, we check if we are in a CI environment
|
194
|
+
# and set to True if so.
|
195
|
+
print_ci_secrets_masks = os.environ.get("CI", "") != ""
|
196
|
+
|
197
|
+
if print_ci_secrets_masks:
|
198
|
+
_print_ci_secrets_masks(
|
199
|
+
secrets_dir=secrets_dir,
|
200
|
+
)
|
200
201
|
|
201
202
|
|
202
203
|
@secrets_cli_group.command("list")
|
{airbyte_cdk-6.54.11 → airbyte_cdk-6.55.1}/airbyte_cdk/models/airbyte_protocol_serializers.py
RENAMED
@@ -4,9 +4,11 @@ from typing import Any, Dict
|
|
4
4
|
from serpyco_rs import CustomType, Serializer
|
5
5
|
|
6
6
|
from .airbyte_protocol import ( # type: ignore[attr-defined] # all classes are imported to airbyte_protocol via *
|
7
|
+
AirbyteCatalog,
|
7
8
|
AirbyteMessage,
|
8
9
|
AirbyteStateBlob,
|
9
10
|
AirbyteStateMessage,
|
11
|
+
AirbyteStream,
|
10
12
|
AirbyteStreamState,
|
11
13
|
ConfiguredAirbyteCatalog,
|
12
14
|
ConfiguredAirbyteStream,
|
@@ -30,6 +32,8 @@ def custom_type_resolver(t: type) -> CustomType[AirbyteStateBlob, Dict[str, Any]
|
|
30
32
|
return AirbyteStateBlobType() if t is AirbyteStateBlob else None
|
31
33
|
|
32
34
|
|
35
|
+
AirbyteCatalogSerializer = Serializer(AirbyteCatalog, omit_none=True)
|
36
|
+
AirbyteStreamSerializer = Serializer(AirbyteStream, omit_none=True)
|
33
37
|
AirbyteStreamStateSerializer = Serializer(
|
34
38
|
AirbyteStreamState, omit_none=True, custom_type_resolver=custom_type_resolver
|
35
39
|
)
|
@@ -34,6 +34,15 @@ class ConnectorBuildOptions(BaseModel):
|
|
34
34
|
)
|
35
35
|
|
36
36
|
|
37
|
+
class SuggestedStreams(BaseModel):
|
38
|
+
"""Suggested streams from metadata.yaml."""
|
39
|
+
|
40
|
+
streams: list[str] = Field(
|
41
|
+
default=[],
|
42
|
+
description="List of suggested streams for the connector",
|
43
|
+
)
|
44
|
+
|
45
|
+
|
37
46
|
class ConnectorMetadata(BaseModel):
|
38
47
|
"""Connector metadata from metadata.yaml."""
|
39
48
|
|
@@ -47,6 +56,11 @@ class ConnectorMetadata(BaseModel):
|
|
47
56
|
description="List of tags for the connector",
|
48
57
|
)
|
49
58
|
|
59
|
+
suggestedStreams: SuggestedStreams | None = Field(
|
60
|
+
default=None,
|
61
|
+
description="Suggested streams for the connector",
|
62
|
+
)
|
63
|
+
|
50
64
|
@property
|
51
65
|
def language(self) -> ConnectorLanguage:
|
52
66
|
"""Get the connector language."""
|
@@ -202,7 +202,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
202
202
|
|
203
203
|
# Combine streams and dynamic_streams. Note: both cannot be empty at the same time,
|
204
204
|
# and this is validated during the initialization of the source.
|
205
|
-
streams = self._stream_configs(self._source_config) + self._dynamic_stream_configs(
|
205
|
+
streams = self._stream_configs(self._source_config, config) + self._dynamic_stream_configs(
|
206
206
|
self._source_config, config
|
207
207
|
)
|
208
208
|
|
@@ -25,6 +25,7 @@ properties:
|
|
25
25
|
type: array
|
26
26
|
items:
|
27
27
|
anyOf:
|
28
|
+
- "$ref": "#/definitions/ConditionalStreams"
|
28
29
|
- "$ref": "#/definitions/DeclarativeStream"
|
29
30
|
- "$ref": "#/definitions/StateDelegatingStream"
|
30
31
|
dynamic_streams:
|
@@ -424,6 +425,36 @@ definitions:
|
|
424
425
|
$parameters:
|
425
426
|
type: object
|
426
427
|
additionalProperties: true
|
428
|
+
ConditionalStreams:
|
429
|
+
title: Conditional Streams
|
430
|
+
description: Streams that are only available while performing a connector operation when the condition is met.
|
431
|
+
type: object
|
432
|
+
required:
|
433
|
+
- type
|
434
|
+
- streams
|
435
|
+
- condition
|
436
|
+
properties:
|
437
|
+
type:
|
438
|
+
type: string
|
439
|
+
enum: [ConditionalStreams]
|
440
|
+
condition:
|
441
|
+
title: Condition
|
442
|
+
description: Condition that will be evaluated to determine if a set of streams should be available.
|
443
|
+
type: string
|
444
|
+
interpolation_context:
|
445
|
+
- config
|
446
|
+
- parameters
|
447
|
+
examples:
|
448
|
+
- "{{ config['is_sandbox'] }}"
|
449
|
+
streams:
|
450
|
+
title: Streams
|
451
|
+
description: Streams that will be used during an operation based on the condition.
|
452
|
+
type: array
|
453
|
+
items:
|
454
|
+
"$ref": "#/definitions/DeclarativeStream"
|
455
|
+
$parameters:
|
456
|
+
type: object
|
457
|
+
additionalProperties: true
|
427
458
|
ConstantBackoffStrategy:
|
428
459
|
title: Constant Backoff
|
429
460
|
description: Backoff strategy with a constant backoff interval.
|
@@ -8,7 +8,7 @@ import pkgutil
|
|
8
8
|
from copy import deepcopy
|
9
9
|
from importlib import metadata
|
10
10
|
from types import ModuleType
|
11
|
-
from typing import Any, Dict, Iterator, List, Mapping,
|
11
|
+
from typing import Any, Dict, Iterator, List, Mapping, Optional, Set
|
12
12
|
|
13
13
|
import orjson
|
14
14
|
import yaml
|
@@ -35,6 +35,10 @@ from airbyte_cdk.models.airbyte_protocol_serializers import AirbyteMessageSerial
|
|
35
35
|
from airbyte_cdk.sources.declarative.checks import COMPONENTS_CHECKER_TYPE_MAPPING
|
36
36
|
from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
|
37
37
|
from airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource
|
38
|
+
from airbyte_cdk.sources.declarative.interpolation import InterpolatedBoolean
|
39
|
+
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
40
|
+
ConditionalStreams as ConditionalStreamsModel,
|
41
|
+
)
|
38
42
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
39
43
|
DeclarativeStream as DeclarativeStreamModel,
|
40
44
|
)
|
@@ -300,7 +304,9 @@ class ManifestDeclarativeSource(DeclarativeSource):
|
|
300
304
|
}
|
301
305
|
)
|
302
306
|
|
303
|
-
stream_configs =
|
307
|
+
stream_configs = (
|
308
|
+
self._stream_configs(self._source_config, config=config) + self.dynamic_streams
|
309
|
+
)
|
304
310
|
|
305
311
|
api_budget_model = self._source_config.get("api_budget")
|
306
312
|
if api_budget_model:
|
@@ -319,7 +325,6 @@ class ManifestDeclarativeSource(DeclarativeSource):
|
|
319
325
|
)
|
320
326
|
for stream_config in self._initialize_cache_for_parent_streams(deepcopy(stream_configs))
|
321
327
|
]
|
322
|
-
|
323
328
|
return source_streams
|
324
329
|
|
325
330
|
@staticmethod
|
@@ -373,7 +378,6 @@ class ManifestDeclarativeSource(DeclarativeSource):
|
|
373
378
|
)
|
374
379
|
else:
|
375
380
|
stream_config["retriever"]["requester"]["use_cache"] = True
|
376
|
-
|
377
381
|
return stream_configs
|
378
382
|
|
379
383
|
def spec(self, logger: logging.Logger) -> ConnectorSpecification:
|
@@ -477,12 +481,27 @@ class ManifestDeclarativeSource(DeclarativeSource):
|
|
477
481
|
# No exception
|
478
482
|
return parsed_version
|
479
483
|
|
480
|
-
def _stream_configs(
|
484
|
+
def _stream_configs(
|
485
|
+
self, manifest: Mapping[str, Any], config: Mapping[str, Any]
|
486
|
+
) -> List[Dict[str, Any]]:
|
481
487
|
# This has a warning flag for static, but after we finish part 4 we'll replace manifest with self._source_config
|
482
|
-
stream_configs
|
483
|
-
for
|
484
|
-
if
|
485
|
-
|
488
|
+
stream_configs = []
|
489
|
+
for current_stream_config in manifest.get("streams", []):
|
490
|
+
if (
|
491
|
+
"type" in current_stream_config
|
492
|
+
and current_stream_config["type"] == "ConditionalStreams"
|
493
|
+
):
|
494
|
+
interpolated_boolean = InterpolatedBoolean(
|
495
|
+
condition=current_stream_config.get("condition"),
|
496
|
+
parameters={},
|
497
|
+
)
|
498
|
+
|
499
|
+
if interpolated_boolean.eval(config=config):
|
500
|
+
stream_configs.extend(current_stream_config.get("streams", []))
|
501
|
+
else:
|
502
|
+
if "type" not in current_stream_config:
|
503
|
+
current_stream_config["type"] = "DeclarativeStream"
|
504
|
+
stream_configs.append(current_stream_config)
|
486
505
|
return stream_configs
|
487
506
|
|
488
507
|
def _dynamic_stream_configs(
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
2
|
+
|
1
3
|
# generated by datamodel-codegen:
|
2
4
|
# filename: declarative_component_schema.yaml
|
3
5
|
|
@@ -2168,7 +2170,7 @@ class DeclarativeSource1(BaseModel):
|
|
2168
2170
|
|
2169
2171
|
type: Literal["DeclarativeSource"]
|
2170
2172
|
check: Union[CheckStream, CheckDynamicStream]
|
2171
|
-
streams: List[Union[DeclarativeStream, StateDelegatingStream]]
|
2173
|
+
streams: List[Union[ConditionalStreams, DeclarativeStream, StateDelegatingStream]]
|
2172
2174
|
dynamic_streams: Optional[List[DynamicDeclarativeStream]] = None
|
2173
2175
|
version: str = Field(
|
2174
2176
|
...,
|
@@ -2201,7 +2203,9 @@ class DeclarativeSource2(BaseModel):
|
|
2201
2203
|
|
2202
2204
|
type: Literal["DeclarativeSource"]
|
2203
2205
|
check: Union[CheckStream, CheckDynamicStream]
|
2204
|
-
streams: Optional[List[Union[DeclarativeStream, StateDelegatingStream]]] =
|
2206
|
+
streams: Optional[List[Union[ConditionalStreams, DeclarativeStream, StateDelegatingStream]]] = (
|
2207
|
+
None
|
2208
|
+
)
|
2205
2209
|
dynamic_streams: List[DynamicDeclarativeStream]
|
2206
2210
|
version: str = Field(
|
2207
2211
|
...,
|
@@ -2280,6 +2284,22 @@ class SelectiveAuthenticator(BaseModel):
|
|
2280
2284
|
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2281
2285
|
|
2282
2286
|
|
2287
|
+
class ConditionalStreams(BaseModel):
|
2288
|
+
type: Literal["ConditionalStreams"]
|
2289
|
+
condition: str = Field(
|
2290
|
+
...,
|
2291
|
+
description="Condition that will be evaluated to determine if a set of streams should be available.",
|
2292
|
+
examples=["{{ config['is_sandbox'] }}"],
|
2293
|
+
title="Condition",
|
2294
|
+
)
|
2295
|
+
streams: List[DeclarativeStream] = Field(
|
2296
|
+
...,
|
2297
|
+
description="Streams that will be used during an operation based on the condition.",
|
2298
|
+
title="Streams",
|
2299
|
+
)
|
2300
|
+
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2301
|
+
|
2302
|
+
|
2283
2303
|
class FileUploader(BaseModel):
|
2284
2304
|
type: Literal["FileUploader"]
|
2285
2305
|
requester: Union[HttpRequester, CustomRequester] = Field(
|
@@ -2936,6 +2956,7 @@ CompositeErrorHandler.update_forward_refs()
|
|
2936
2956
|
DeclarativeSource1.update_forward_refs()
|
2937
2957
|
DeclarativeSource2.update_forward_refs()
|
2938
2958
|
SelectiveAuthenticator.update_forward_refs()
|
2959
|
+
ConditionalStreams.update_forward_refs()
|
2939
2960
|
FileUploader.update_forward_refs()
|
2940
2961
|
DeclarativeStream.update_forward_refs()
|
2941
2962
|
SessionTokenAuthenticator.update_forward_refs()
|
@@ -3150,12 +3150,12 @@ class ModelToComponentFactory:
|
|
3150
3150
|
This is needed because the URL is not set until the requester is created.
|
3151
3151
|
"""
|
3152
3152
|
|
3153
|
-
_url = (
|
3153
|
+
_url: str = (
|
3154
3154
|
model.requester.url
|
3155
3155
|
if hasattr(model.requester, "url") and model.requester.url is not None
|
3156
3156
|
else requester.get_url()
|
3157
3157
|
)
|
3158
|
-
_url_base = (
|
3158
|
+
_url_base: str = (
|
3159
3159
|
model.requester.url_base
|
3160
3160
|
if hasattr(model.requester, "url_base") and model.requester.url_base is not None
|
3161
3161
|
else requester.get_url_base()
|