airbyte-cdk 6.60.10__tar.gz → 6.60.12__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.
Files changed (433) hide show
  1. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +6 -9
  3. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/checks/check_stream.py +31 -12
  4. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -6
  5. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +2 -1
  6. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +3 -1
  7. airbyte_cdk-6.60.12/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +7 -0
  8. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +1 -27
  9. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -1
  10. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -2
  11. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/availability_strategy.py +1 -0
  12. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +6 -6
  13. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -43
  14. airbyte_cdk-6.60.12/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +37 -0
  15. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/default_stream.py +32 -9
  16. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/pyproject.toml +1 -1
  17. airbyte_cdk-6.60.10/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -11
  18. airbyte_cdk-6.60.10/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -94
  19. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/LICENSE.txt +0 -0
  20. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/LICENSE_SHORT +0 -0
  21. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/README.md +0 -0
  22. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/__init__.py +0 -0
  23. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/__init__.py +0 -0
  24. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
  25. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/airbyte_cdk/_connector.py +0 -0
  26. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/airbyte_cdk/_image.py +0 -0
  27. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
  28. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/airbyte_cdk/_secrets.py +0 -0
  29. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
  30. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/airbyte_cdk/exceptions.py +0 -0
  31. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/source_declarative_manifest/README.md +0 -0
  32. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  33. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  34. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  35. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/config_observation.py +0 -0
  36. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector.py +0 -0
  37. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/README.md +0 -0
  38. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/__init__.py +0 -0
  39. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  40. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/main.py +0 -0
  41. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/models.py +0 -0
  42. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  43. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  44. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  45. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  46. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  47. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/__init__.py +0 -0
  48. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/destination.py +0 -0
  49. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  50. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  51. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  52. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  53. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  54. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  55. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  56. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  57. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  58. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/entrypoint.py +0 -0
  59. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/exception_handler.py +0 -0
  60. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/logger.py +0 -0
  61. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/README.md +0 -0
  62. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
  63. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
  64. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
  65. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
  66. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
  67. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
  68. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +0 -0
  69. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
  70. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +0 -0
  71. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
  72. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/models/__init__.py +0 -0
  73. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  74. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  75. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/models/connector_metadata.py +0 -0
  76. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/models/well_known_types.py +0 -0
  77. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/py.typed +0 -0
  78. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/__init__.py +0 -0
  79. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/abstract_source.py +0 -0
  80. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  81. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  82. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  83. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  84. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  85. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  86. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  87. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/config.py +0 -0
  88. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  89. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  90. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  91. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  92. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  93. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  94. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  95. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  96. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  97. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  98. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  99. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  100. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  101. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  102. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  103. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  104. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  105. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  106. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  107. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  108. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  109. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  110. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  111. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  112. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  113. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  114. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  115. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  116. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  117. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  118. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  119. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  120. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  121. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  122. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  123. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  124. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  125. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  126. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  127. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  128. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  129. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  130. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  131. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  132. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  133. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  134. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  135. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  136. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  137. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  138. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  139. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  140. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  141. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  142. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  143. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  144. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  145. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  146. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  147. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  148. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  149. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  150. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  151. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  152. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  153. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
  154. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  155. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  156. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  157. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  158. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
  159. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  160. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
  161. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  162. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  163. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  164. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  165. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  166. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  167. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  168. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  169. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  170. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  171. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  172. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  173. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  174. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  175. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  176. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  177. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  178. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  179. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  180. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  181. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  182. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  183. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  184. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  185. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  186. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  187. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  188. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  189. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  190. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  191. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  192. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  193. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  194. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  195. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  196. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  197. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  198. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  199. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  200. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  201. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  202. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  203. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  204. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  205. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  206. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  207. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  208. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  209. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  210. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  211. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  212. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  213. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  214. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  215. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  216. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  217. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/resolvers/parametrized_components_resolver.py +0 -0
  218. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  219. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  220. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
  221. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
  222. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
  223. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
  224. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
  225. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
  226. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
  227. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  228. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  229. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  230. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/schema/composite_schema_loader.py +0 -0
  231. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  232. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  233. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  234. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  235. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  236. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  237. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  238. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  239. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  240. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  241. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py +0 -0
  242. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  243. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  244. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py +0 -0
  245. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/config_transformations/add_fields.py +0 -0
  246. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/config_transformations/config_transformation.py +0 -0
  247. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/config_transformations/remap_field.py +0 -0
  248. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/config_transformations/remove_fields.py +0 -0
  249. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  250. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  251. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  252. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  253. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  254. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  255. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  256. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/types.py +0 -0
  257. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/validators/__init__.py +0 -0
  258. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/validators/dpath_validator.py +0 -0
  259. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/validators/predicate_validator.py +0 -0
  260. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py +0 -0
  261. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/validators/validation_strategy.py +0 -0
  262. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/validators/validator.py +0 -0
  263. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  264. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/README.md +0 -0
  265. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  266. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  267. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  268. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  269. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  270. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  271. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  272. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  273. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  274. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  275. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  276. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  277. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  278. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  279. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  280. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  281. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  282. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  283. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  284. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
  285. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  286. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  287. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  288. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  289. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  290. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  291. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  292. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  293. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  294. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  295. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  296. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  297. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  298. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  299. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  300. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  301. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  302. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  303. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  304. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  305. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  306. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  307. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  308. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  309. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  310. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  311. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/file_based/types.py +0 -0
  312. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/http_config.py +0 -0
  313. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/http_logger.py +0 -0
  314. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/message/__init__.py +0 -0
  315. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/message/repository.py +0 -0
  316. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/source.py +0 -0
  317. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  318. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/__init__.py +0 -0
  319. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  320. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  321. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  322. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  323. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  324. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  325. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  326. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  327. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  328. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  329. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  330. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  331. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  332. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  333. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  334. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  335. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  336. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  337. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  338. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  339. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  340. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  341. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  342. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  343. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  344. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  345. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/core.py +0 -0
  346. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  347. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  348. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  349. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  350. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  351. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  352. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  353. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  354. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  355. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  356. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  357. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  358. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/http.py +0 -0
  359. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  360. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  361. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  362. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  363. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  364. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  365. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  366. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  367. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  368. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/types.py +0 -0
  369. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/utils/__init__.py +0 -0
  370. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/utils/casing.py +0 -0
  371. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/utils/files_directory.py +0 -0
  372. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  373. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  374. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  375. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/utils/transform.py +0 -0
  376. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sources/utils/types.py +0 -0
  377. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/__init__.py +0 -0
  378. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/_util/__init__.py +0 -0
  379. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/_util/hashing.py +0 -0
  380. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  381. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/constants.py +0 -0
  382. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/exceptions.py +0 -0
  383. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/secrets.py +0 -0
  384. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/shared/__init__.py +0 -0
  385. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  386. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  387. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/sql/types.py +0 -0
  388. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/__init__.py +0 -0
  389. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/catalog_builder.py +0 -0
  390. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  391. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  392. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  393. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  394. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/mock_http/request.py +0 -0
  395. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/mock_http/response.py +0 -0
  396. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  397. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/models/__init__.py +0 -0
  398. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/models/outcome.py +0 -0
  399. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/models/scenario.py +0 -0
  400. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
  401. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
  402. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/connector_base.py +0 -0
  403. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
  404. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
  405. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/docker_base.py +0 -0
  406. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
  407. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/source_base.py +0 -0
  408. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/standard_tests/util.py +0 -0
  409. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/state_builder.py +0 -0
  410. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/utils/__init__.py +0 -0
  411. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/utils/data.py +0 -0
  412. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  413. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  414. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/test/utils/reading.py +0 -0
  415. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/__init__.py +0 -0
  416. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  417. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/analytics_message.py +0 -0
  418. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/connector_paths.py +0 -0
  419. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/constants.py +0 -0
  420. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  421. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  422. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/docker.py +0 -0
  423. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/event_timing.py +0 -0
  424. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  425. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  426. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/message_utils.py +0 -0
  427. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  428. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/print_buffer.py +0 -0
  429. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  430. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/slice_hasher.py +0 -0
  431. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  432. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  433. {airbyte_cdk-6.60.10 → airbyte_cdk-6.60.12}/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.60.10
3
+ Version: 6.60.12
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -3,12 +3,13 @@
3
3
  #
4
4
 
5
5
  import logging
6
- import traceback
7
6
  from dataclasses import InitVar, dataclass
8
- from typing import Any, List, Mapping, Tuple
7
+ from typing import Any, List, Mapping, Tuple, Union
9
8
 
10
- from airbyte_cdk import AbstractSource
9
+ from airbyte_cdk.sources.abstract_source import AbstractSource
10
+ from airbyte_cdk.sources.declarative.checks.check_stream import evaluate_availability
11
11
  from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
12
+ from airbyte_cdk.sources.streams.concurrent.abstract_stream import AbstractStream
12
13
  from airbyte_cdk.sources.streams.http.availability_strategy import HttpAvailabilityStrategy
13
14
 
14
15
 
@@ -34,20 +35,16 @@ class CheckDynamicStream(ConnectionChecker):
34
35
  def check_connection(
35
36
  self, source: AbstractSource, logger: logging.Logger, config: Mapping[str, Any]
36
37
  ) -> Tuple[bool, Any]:
37
- streams = source.streams(config=config)
38
+ streams: List[Union[Stream, AbstractStream]] = source.streams(config=config) # type: ignore # this is a migration step and we expect the declarative CDK to migrate off of ConnectionChecker
38
39
 
39
40
  if len(streams) == 0:
40
41
  return False, f"No streams to connect to from source {source}"
41
42
  if not self.use_check_availability:
42
43
  return True, None
43
44
 
44
- availability_strategy = HttpAvailabilityStrategy()
45
-
46
45
  try:
47
46
  for stream in streams[: min(self.stream_count, len(streams))]:
48
- stream_is_available, reason = availability_strategy.check_availability(
49
- stream, logger
50
- )
47
+ stream_is_available, reason = evaluate_availability(stream, logger)
51
48
  if not stream_is_available:
52
49
  logger.warning(f"Stream {stream.name} is not available: {reason}")
53
50
  return False, reason
@@ -5,13 +5,30 @@
5
5
  import logging
6
6
  import traceback
7
7
  from dataclasses import InitVar, dataclass
8
- from typing import Any, Dict, List, Mapping, Optional, Tuple
8
+ from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
9
9
 
10
- from airbyte_cdk import AbstractSource
10
+ from airbyte_cdk.sources.abstract_source import AbstractSource
11
11
  from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
12
+ from airbyte_cdk.sources.streams.concurrent.abstract_stream import AbstractStream
13
+ from airbyte_cdk.sources.streams.core import Stream
12
14
  from airbyte_cdk.sources.streams.http.availability_strategy import HttpAvailabilityStrategy
13
15
 
14
16
 
17
+ def evaluate_availability(
18
+ stream: Union[Stream, AbstractStream], logger: logging.Logger
19
+ ) -> Tuple[bool, Optional[str]]:
20
+ """
21
+ As a transition period, we want to support both Stream and AbstractStream until we migrate everything to AbstractStream.
22
+ """
23
+ if isinstance(stream, Stream):
24
+ return HttpAvailabilityStrategy().check_availability(stream, logger)
25
+ elif isinstance(stream, AbstractStream):
26
+ availability = stream.check_availability()
27
+ return availability.is_available, availability.reason
28
+ else:
29
+ raise ValueError(f"Unsupported stream type {type(stream)}")
30
+
31
+
15
32
  @dataclass(frozen=True)
16
33
  class DynamicStreamCheckConfig:
17
34
  """Defines the configuration for dynamic stream during connection checking. This class specifies
@@ -51,7 +68,7 @@ class CheckStream(ConnectionChecker):
51
68
  ) -> Tuple[bool, Any]:
52
69
  """Checks the connection to the source and its streams."""
53
70
  try:
54
- streams = source.streams(config=config)
71
+ streams: List[Union[Stream, AbstractStream]] = source.streams(config=config) # type: ignore # this is a migration step and we expect the declarative CDK to migrate off of ConnectionChecker
55
72
  if not streams:
56
73
  return False, f"No streams to connect to from source {source}"
57
74
  except Exception as error:
@@ -82,13 +99,15 @@ class CheckStream(ConnectionChecker):
82
99
  return True, None
83
100
 
84
101
  def _check_stream_availability(
85
- self, stream_name_to_stream: Dict[str, Any], stream_name: str, logger: logging.Logger
102
+ self,
103
+ stream_name_to_stream: Dict[str, Union[Stream, AbstractStream]],
104
+ stream_name: str,
105
+ logger: logging.Logger,
86
106
  ) -> Tuple[bool, Any]:
87
107
  """Checks if streams are available."""
88
- availability_strategy = HttpAvailabilityStrategy()
89
108
  try:
90
109
  stream = stream_name_to_stream[stream_name]
91
- stream_is_available, reason = availability_strategy.check_availability(stream, logger)
110
+ stream_is_available, reason = evaluate_availability(stream, logger)
92
111
  if not stream_is_available:
93
112
  message = f"Stream {stream_name} is not available: {reason}"
94
113
  logger.warning(message)
@@ -98,7 +117,10 @@ class CheckStream(ConnectionChecker):
98
117
  return True, None
99
118
 
100
119
  def _check_dynamic_streams_availability(
101
- self, source: AbstractSource, stream_name_to_stream: Dict[str, Any], logger: logging.Logger
120
+ self,
121
+ source: AbstractSource,
122
+ stream_name_to_stream: Dict[str, Union[Stream, AbstractStream]],
123
+ logger: logging.Logger,
102
124
  ) -> Tuple[bool, Any]:
103
125
  """Checks the availability of dynamic streams."""
104
126
  dynamic_streams = source.resolved_manifest.get("dynamic_streams", []) # type: ignore[attr-defined] # The source's resolved_manifest manifest is checked before calling this method
@@ -135,18 +157,15 @@ class CheckStream(ConnectionChecker):
135
157
  def _check_generated_streams_availability(
136
158
  self,
137
159
  generated_streams: List[Dict[str, Any]],
138
- stream_name_to_stream: Dict[str, Any],
160
+ stream_name_to_stream: Dict[str, Union[Stream, AbstractStream]],
139
161
  logger: logging.Logger,
140
162
  max_count: int,
141
163
  ) -> Tuple[bool, Any]:
142
164
  """Checks availability of generated dynamic streams."""
143
- availability_strategy = HttpAvailabilityStrategy()
144
165
  for declarative_stream in generated_streams[: min(max_count, len(generated_streams))]:
145
166
  stream = stream_name_to_stream[declarative_stream["name"]]
146
167
  try:
147
- stream_is_available, reason = availability_strategy.check_availability(
148
- stream, logger
149
- )
168
+ stream_is_available, reason = evaluate_availability(stream, logger)
150
169
  if not stream_is_available:
151
170
  message = f"Dynamic Stream {stream.name} is not available: {reason}"
152
171
  logger.warning(message)
@@ -52,9 +52,6 @@ from airbyte_cdk.sources.source import TState
52
52
  from airbyte_cdk.sources.streams import Stream
53
53
  from airbyte_cdk.sources.streams.concurrent.abstract_stream import AbstractStream
54
54
  from airbyte_cdk.sources.streams.concurrent.abstract_stream_facade import AbstractStreamFacade
55
- from airbyte_cdk.sources.streams.concurrent.availability_strategy import (
56
- AlwaysAvailableAvailabilityStrategy,
57
- )
58
55
  from airbyte_cdk.sources.streams.concurrent.cursor import ConcurrentCursor, FinalStateCursor
59
56
  from airbyte_cdk.sources.streams.concurrent.default_stream import DefaultStream
60
57
  from airbyte_cdk.sources.streams.concurrent.helpers import get_primary_key_from_stream
@@ -325,7 +322,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
325
322
  partition_generator=partition_generator,
326
323
  name=declarative_stream.name,
327
324
  json_schema=declarative_stream.get_json_schema(),
328
- availability_strategy=AlwaysAvailableAvailabilityStrategy(),
329
325
  primary_key=get_primary_key_from_stream(declarative_stream.primary_key),
330
326
  cursor_field=cursor.cursor_field.cursor_field_key
331
327
  if hasattr(cursor, "cursor_field")
@@ -362,7 +358,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
362
358
  partition_generator=partition_generator,
363
359
  name=declarative_stream.name,
364
360
  json_schema=declarative_stream.get_json_schema(),
365
- availability_strategy=AlwaysAvailableAvailabilityStrategy(),
366
361
  primary_key=get_primary_key_from_stream(declarative_stream.primary_key),
367
362
  cursor_field=None,
368
363
  logger=self.logger,
@@ -417,7 +412,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
417
412
  partition_generator=partition_generator,
418
413
  name=declarative_stream.name,
419
414
  json_schema=declarative_stream.get_json_schema(),
420
- availability_strategy=AlwaysAvailableAvailabilityStrategy(),
421
415
  primary_key=get_primary_key_from_stream(declarative_stream.primary_key),
422
416
  cursor_field=perpartition_cursor.cursor_field.cursor_field_key,
423
417
  logger=self.logger,
@@ -1838,6 +1838,7 @@ definitions:
1838
1838
  "$ref": "#/definitions/RequestOption"
1839
1839
  page_token_option:
1840
1840
  title: Inject Page Token Into Outgoing HTTP Request
1841
+ description: Inject the page token into the outgoing HTTP requests by inserting it into either the request URL path or a field on the request.
1841
1842
  anyOf:
1842
1843
  - "$ref": "#/definitions/RequestOption"
1843
1844
  - "$ref": "#/definitions/RequestPath"
@@ -3486,7 +3487,7 @@ definitions:
3486
3487
  - [["content", "html"], ["content", "plain_text"]]
3487
3488
  RequestPath:
3488
3489
  title: Request Path
3489
- description: Specifies where in the request path a component's value should be inserted.
3490
+ description: The URL path to be used for the HTTP request.
3490
3491
  type: object
3491
3492
  required:
3492
3493
  - type
@@ -2002,7 +2002,9 @@ class DefaultPaginator(BaseModel):
2002
2002
  None, title="Inject Page Size Into Outgoing HTTP Request"
2003
2003
  )
2004
2004
  page_token_option: Optional[Union[RequestOption, RequestPath]] = Field(
2005
- None, title="Inject Page Token Into Outgoing HTTP Request"
2005
+ None,
2006
+ description="Inject the page token into the outgoing HTTP requests by inserting it into either the request URL path or a field on the request.",
2007
+ title="Inject Page Token Into Outgoing HTTP Request",
2006
2008
  )
2007
2009
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
2008
2010
 
@@ -0,0 +1,7 @@
1
+ from .abstract_file_based_availability_strategy import AbstractFileBasedAvailabilityStrategy
2
+ from .default_file_based_availability_strategy import DefaultFileBasedAvailabilityStrategy
3
+
4
+ __all__ = [
5
+ "AbstractFileBasedAvailabilityStrategy",
6
+ "DefaultFileBasedAvailabilityStrategy",
7
+ ]
@@ -10,12 +10,6 @@ from typing import TYPE_CHECKING, Optional, Tuple
10
10
 
11
11
  from airbyte_cdk.sources import Source
12
12
  from airbyte_cdk.sources.streams.availability_strategy import AvailabilityStrategy
13
- from airbyte_cdk.sources.streams.concurrent.availability_strategy import (
14
- AbstractAvailabilityStrategy,
15
- StreamAvailability,
16
- StreamAvailable,
17
- StreamUnavailable,
18
- )
19
13
  from airbyte_cdk.sources.streams.core import Stream
20
14
 
21
15
  if TYPE_CHECKING:
@@ -28,7 +22,7 @@ class AbstractFileBasedAvailabilityStrategy(AvailabilityStrategy):
28
22
  self,
29
23
  stream: Stream,
30
24
  logger: logging.Logger,
31
- _: Optional[Source],
25
+ source: Optional[Source] = None,
32
26
  ) -> Tuple[bool, Optional[str]]:
33
27
  """
34
28
  Perform a connection check for the stream.
@@ -51,23 +45,3 @@ class AbstractFileBasedAvailabilityStrategy(AvailabilityStrategy):
51
45
  Returns (True, None) if successful, otherwise (False, <error message>).
52
46
  """
53
47
  ...
54
-
55
-
56
- class AbstractFileBasedAvailabilityStrategyWrapper(AbstractAvailabilityStrategy):
57
- def __init__(self, stream: AbstractFileBasedStream) -> None:
58
- self.stream = stream
59
-
60
- def check_availability(self, logger: logging.Logger) -> StreamAvailability:
61
- is_available, reason = self.stream.availability_strategy.check_availability(
62
- self.stream, logger, None
63
- )
64
- if is_available:
65
- return StreamAvailable()
66
- return StreamUnavailable(reason or "")
67
-
68
- def check_availability_and_parsability(
69
- self, logger: logging.Logger
70
- ) -> Tuple[bool, Optional[str]]:
71
- return self.stream.availability_strategy.check_availability_and_parsability(
72
- self.stream, logger, None
73
- )
@@ -179,7 +179,6 @@ class AbstractFileBasedStream(Stream):
179
179
  )
180
180
 
181
181
  @cached_property
182
- @deprecated("Deprecated as of CDK version 3.7.0.")
183
182
  def availability_strategy(self) -> AbstractFileBasedAvailabilityStrategy:
184
183
  return self._availability_strategy
185
184
 
@@ -21,7 +21,6 @@ from airbyte_cdk.sources import AbstractSource
21
21
  from airbyte_cdk.sources.connector_state_manager import ConnectorStateManager
22
22
  from airbyte_cdk.sources.file_based.availability_strategy import (
23
23
  AbstractFileBasedAvailabilityStrategy,
24
- AbstractFileBasedAvailabilityStrategyWrapper,
25
24
  )
26
25
  from airbyte_cdk.sources.file_based.config.file_based_stream_config import PrimaryKeyType
27
26
  from airbyte_cdk.sources.file_based.file_types.file_type_parser import FileTypeParser
@@ -97,7 +96,6 @@ class FileBasedStreamFacade(AbstractStreamFacade[DefaultStream], AbstractFileBas
97
96
  ),
98
97
  name=stream.name,
99
98
  json_schema=stream.get_json_schema(),
100
- availability_strategy=AbstractFileBasedAvailabilityStrategyWrapper(stream),
101
99
  primary_key=pk,
102
100
  cursor_field=cursor_field,
103
101
  logger=logger,
@@ -14,6 +14,7 @@ if typing.TYPE_CHECKING:
14
14
  from airbyte_cdk.sources import Source
15
15
 
16
16
 
17
+ # FIXME this
17
18
  class AvailabilityStrategy(ABC):
18
19
  """
19
20
  Abstract base class for checking stream availability.
@@ -64,12 +64,6 @@ class AbstractStream(ABC):
64
64
  :return: The name of the field used as a cursor. Nested cursor fields are not supported.
65
65
  """
66
66
 
67
- @abstractmethod
68
- def check_availability(self) -> StreamAvailability:
69
- """
70
- :return: The stream's availability
71
- """
72
-
73
67
  @abstractmethod
74
68
  def get_json_schema(self) -> Mapping[str, Any]:
75
69
  """
@@ -94,3 +88,9 @@ class AbstractStream(ABC):
94
88
  """
95
89
  :return: The cursor associated with this stream.
96
90
  """
91
+
92
+ @abstractmethod
93
+ def check_availability(self) -> StreamAvailability:
94
+ """
95
+ :return: If the stream is available and if not, why
96
+ """
@@ -24,12 +24,7 @@ from airbyte_cdk.sources.connector_state_manager import ConnectorStateManager
24
24
  from airbyte_cdk.sources.message import MessageRepository
25
25
  from airbyte_cdk.sources.source import ExperimentalClassWarning
26
26
  from airbyte_cdk.sources.streams import Stream
27
- from airbyte_cdk.sources.streams.availability_strategy import AvailabilityStrategy
28
27
  from airbyte_cdk.sources.streams.concurrent.abstract_stream_facade import AbstractStreamFacade
29
- from airbyte_cdk.sources.streams.concurrent.availability_strategy import (
30
- AbstractAvailabilityStrategy,
31
- AlwaysAvailableAvailabilityStrategy,
32
- )
33
28
  from airbyte_cdk.sources.streams.concurrent.cursor import Cursor, FinalStateCursor
34
29
  from airbyte_cdk.sources.streams.concurrent.default_stream import DefaultStream
35
30
  from airbyte_cdk.sources.streams.concurrent.exceptions import ExceptionWithDisplayMessage
@@ -101,7 +96,6 @@ class StreamFacade(AbstractStreamFacade[DefaultStream], Stream):
101
96
  name=stream.name,
102
97
  namespace=stream.namespace,
103
98
  json_schema=stream.get_json_schema(),
104
- availability_strategy=AlwaysAvailableAvailabilityStrategy(),
105
99
  primary_key=pk,
106
100
  cursor_field=cursor_field,
107
101
  logger=logger,
@@ -210,18 +204,6 @@ class StreamFacade(AbstractStreamFacade[DefaultStream], Stream):
210
204
  def supports_incremental(self) -> bool:
211
205
  return self._legacy_stream.supports_incremental
212
206
 
213
- def check_availability(
214
- self, logger: logging.Logger, source: Optional["Source"] = None
215
- ) -> Tuple[bool, Optional[str]]:
216
- """
217
- Verifies the stream is available. Delegates to the underlying AbstractStream and ignores the parameters
218
- :param logger: (ignored)
219
- :param source: (ignored)
220
- :return:
221
- """
222
- availability = self._abstract_stream.check_availability()
223
- return availability.is_available(), availability.message()
224
-
225
207
  def as_airbyte_stream(self) -> AirbyteStream:
226
208
  return self._abstract_stream.as_airbyte_stream()
227
209
 
@@ -370,28 +352,3 @@ class StreamPartitionGenerator(PartitionGenerator):
370
352
  self._cursor_field,
371
353
  self._state,
372
354
  )
373
-
374
-
375
- @deprecated(
376
- "Availability strategy has been soft deprecated. Do not use. Class is subject to removal",
377
- category=ExperimentalClassWarning,
378
- )
379
- class AvailabilityStrategyFacade(AvailabilityStrategy):
380
- def __init__(self, abstract_availability_strategy: AbstractAvailabilityStrategy):
381
- self._abstract_availability_strategy = abstract_availability_strategy
382
-
383
- def check_availability(
384
- self, stream: Stream, logger: logging.Logger, source: Optional["Source"] = None
385
- ) -> Tuple[bool, Optional[str]]:
386
- """
387
- Checks stream availability.
388
-
389
- Important to note that the stream and source parameters are not used by the underlying AbstractAvailabilityStrategy.
390
-
391
- :param stream: (unused)
392
- :param logger: logger object to use
393
- :param source: (unused)
394
- :return: A tuple of (boolean, str). If boolean is true, then the stream
395
- """
396
- stream_availability = self._abstract_availability_strategy.check_availability(logger)
397
- return stream_availability.is_available(), stream_availability.message()
@@ -0,0 +1,37 @@
1
+ #
2
+ # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ from abc import ABC, abstractmethod
6
+ from typing import Optional
7
+
8
+
9
+ class StreamAvailability:
10
+ @classmethod
11
+ def available(cls) -> "StreamAvailability":
12
+ return cls(True)
13
+
14
+ @classmethod
15
+ def unavailable(cls, reason: str) -> "StreamAvailability":
16
+ return cls(False, reason)
17
+
18
+ def __init__(self, available: bool, reason: Optional[str] = None) -> None:
19
+ self._available = available
20
+ self._reason = reason
21
+
22
+ if not available:
23
+ assert reason, "A reason needs to be provided if the stream is not available"
24
+
25
+ @property
26
+ def is_available(self) -> bool:
27
+ """
28
+ :return: True if the stream is available. False if the stream is not
29
+ """
30
+ return self._available
31
+
32
+ @property
33
+ def reason(self) -> Optional[str]:
34
+ """
35
+ :return: A message describing why the stream is not available. If the stream is available, this should return None.
36
+ """
37
+ return self._reason
@@ -8,13 +8,11 @@ from typing import Any, Iterable, List, Mapping, Optional
8
8
 
9
9
  from airbyte_cdk.models import AirbyteStream, SyncMode
10
10
  from airbyte_cdk.sources.streams.concurrent.abstract_stream import AbstractStream
11
- from airbyte_cdk.sources.streams.concurrent.availability_strategy import (
12
- AbstractAvailabilityStrategy,
13
- StreamAvailability,
14
- )
11
+ from airbyte_cdk.sources.streams.concurrent.availability_strategy import StreamAvailability
15
12
  from airbyte_cdk.sources.streams.concurrent.cursor import Cursor
16
13
  from airbyte_cdk.sources.streams.concurrent.partitions.partition import Partition
17
14
  from airbyte_cdk.sources.streams.concurrent.partitions.partition_generator import PartitionGenerator
15
+ from airbyte_cdk.utils.traced_exception import AirbyteTracedException
18
16
 
19
17
 
20
18
  class DefaultStream(AbstractStream):
@@ -23,7 +21,6 @@ class DefaultStream(AbstractStream):
23
21
  partition_generator: PartitionGenerator,
24
22
  name: str,
25
23
  json_schema: Mapping[str, Any],
26
- availability_strategy: AbstractAvailabilityStrategy,
27
24
  primary_key: List[str],
28
25
  cursor_field: Optional[str],
29
26
  logger: Logger,
@@ -34,7 +31,6 @@ class DefaultStream(AbstractStream):
34
31
  self._stream_partition_generator = partition_generator
35
32
  self._name = name
36
33
  self._json_schema = json_schema
37
- self._availability_strategy = availability_strategy
38
34
  self._primary_key = primary_key
39
35
  self._cursor_field = cursor_field
40
36
  self._logger = logger
@@ -53,9 +49,6 @@ class DefaultStream(AbstractStream):
53
49
  def namespace(self) -> Optional[str]:
54
50
  return self._namespace
55
51
 
56
- def check_availability(self) -> StreamAvailability:
57
- return self._availability_strategy.check_availability(self._logger)
58
-
59
52
  @property
60
53
  def cursor_field(self) -> Optional[str]:
61
54
  return self._cursor_field
@@ -100,3 +93,33 @@ class DefaultStream(AbstractStream):
100
93
  @property
101
94
  def cursor(self) -> Cursor:
102
95
  return self._cursor
96
+
97
+ def check_availability(self) -> StreamAvailability:
98
+ """
99
+ Check stream availability by attempting to read the first record of the stream.
100
+ """
101
+ try:
102
+ partition = next(iter(self.generate_partitions()))
103
+ except StopIteration:
104
+ # NOTE: The following comment was copied from legacy stuff and I don't know how relevant it is:
105
+ # If stream_slices has no `next()` item (Note - this is different from stream_slices returning [None]!)
106
+ # This can happen when a substream's `stream_slices` method does a `for record in parent_records: yield <something>`
107
+ # without accounting for the case in which the parent stream is empty.
108
+ return StreamAvailability.unavailable(
109
+ f"Cannot attempt to connect to stream {self.name} - no stream slices were found"
110
+ )
111
+ except AirbyteTracedException as error:
112
+ return StreamAvailability.unavailable(
113
+ error.message or error.internal_message or "<no error message>"
114
+ )
115
+
116
+ try:
117
+ next(iter(partition.read()))
118
+ return StreamAvailability.available()
119
+ except StopIteration:
120
+ self._logger.info(f"Successfully connected to stream {self.name}, but got 0 records.")
121
+ return StreamAvailability.available()
122
+ except AirbyteTracedException as error:
123
+ return StreamAvailability.unavailable(
124
+ error.message or error.internal_message or "<no error message>"
125
+ )
@@ -23,7 +23,7 @@ classifiers = [
23
23
  keywords = ["airbyte", "connector-development-kit", "cdk"]
24
24
 
25
25
  # Python CDK uses dynamic versioning: https://github.com/mtkennerly/poetry-dynamic-versioning
26
- version = "6.60.10" # Version will be calculated dynamically.
26
+ version = "6.60.12" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false
@@ -1,11 +0,0 @@
1
- from .abstract_file_based_availability_strategy import (
2
- AbstractFileBasedAvailabilityStrategy,
3
- AbstractFileBasedAvailabilityStrategyWrapper,
4
- )
5
- from .default_file_based_availability_strategy import DefaultFileBasedAvailabilityStrategy
6
-
7
- __all__ = [
8
- "AbstractFileBasedAvailabilityStrategy",
9
- "AbstractFileBasedAvailabilityStrategyWrapper",
10
- "DefaultFileBasedAvailabilityStrategy",
11
- ]
@@ -1,94 +0,0 @@
1
- #
2
- # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
- #
4
-
5
- import logging
6
- from abc import ABC, abstractmethod
7
- from typing import Optional
8
-
9
- from typing_extensions import deprecated
10
-
11
- from airbyte_cdk.sources.source import ExperimentalClassWarning
12
-
13
-
14
- class StreamAvailability(ABC):
15
- @abstractmethod
16
- def is_available(self) -> bool:
17
- """
18
- :return: True if the stream is available. False if the stream is not
19
- """
20
-
21
- @abstractmethod
22
- def message(self) -> Optional[str]:
23
- """
24
- :return: A message describing why the stream is not available. If the stream is available, this should return None.
25
- """
26
-
27
-
28
- class StreamAvailable(StreamAvailability):
29
- def is_available(self) -> bool:
30
- return True
31
-
32
- def message(self) -> Optional[str]:
33
- return None
34
-
35
-
36
- class StreamUnavailable(StreamAvailability):
37
- def __init__(self, message: str):
38
- self._message = message
39
-
40
- def is_available(self) -> bool:
41
- return False
42
-
43
- def message(self) -> Optional[str]:
44
- return self._message
45
-
46
-
47
- # Singleton instances of StreamAvailability to avoid the overhead of creating new dummy objects
48
- STREAM_AVAILABLE = StreamAvailable()
49
-
50
-
51
- @deprecated(
52
- "This class is experimental. Use at your own risk.",
53
- category=ExperimentalClassWarning,
54
- )
55
- class AbstractAvailabilityStrategy(ABC):
56
- """
57
- AbstractAvailabilityStrategy is an experimental interface developed as part of the Concurrent CDK.
58
- This interface is not yet stable and may change in the future. Use at your own risk.
59
-
60
- Why create a new interface instead of using the existing AvailabilityStrategy?
61
- The existing AvailabilityStrategy is tightly coupled with Stream and Source, which yields to circular dependencies and makes it difficult to move away from the Stream interface to AbstractStream.
62
- """
63
-
64
- @abstractmethod
65
- def check_availability(self, logger: logging.Logger) -> StreamAvailability:
66
- """
67
- Checks stream availability.
68
-
69
- :param logger: logger object to use
70
- :return: A StreamAvailability object describing the stream's availability
71
- """
72
-
73
-
74
- @deprecated(
75
- "This class is experimental. Use at your own risk.",
76
- category=ExperimentalClassWarning,
77
- )
78
- class AlwaysAvailableAvailabilityStrategy(AbstractAvailabilityStrategy):
79
- """
80
- An availability strategy that always indicates a stream is available.
81
-
82
- This strategy is used to avoid breaking changes and serves as a soft
83
- deprecation of the availability strategy, allowing a smoother transition
84
- without disrupting existing functionality.
85
- """
86
-
87
- def check_availability(self, logger: logging.Logger) -> StreamAvailability:
88
- """
89
- Checks stream availability.
90
-
91
- :param logger: logger object to use
92
- :return: A StreamAvailability object describing the stream's availability
93
- """
94
- return StreamAvailable()
File without changes
File without changes