airbyte-cdk 6.8.3rc1__tar.gz → 6.9.0.dev0__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 (343) hide show
  1. airbyte_cdk-6.9.0.dev0/PKG-INFO +111 -0
  2. airbyte_cdk-6.9.0.dev0/README.md +34 -0
  3. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +7 -3
  4. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +186 -2
  5. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +53 -2
  6. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +137 -6
  7. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +10 -0
  8. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +167 -21
  9. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +2 -1
  10. airbyte_cdk-6.9.0.dev0/airbyte_cdk/sources/declarative/resolvers/__init__.py +13 -0
  11. airbyte_cdk-6.9.0.dev0/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +55 -0
  12. airbyte_cdk-6.9.0.dev0/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +106 -0
  13. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/schema/__init__.py +2 -1
  14. airbyte_cdk-6.9.0.dev0/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +219 -0
  15. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/pyproject.toml +4 -4
  16. airbyte_cdk-6.8.3rc1/PKG-INFO +0 -306
  17. airbyte_cdk-6.8.3rc1/README.md +0 -229
  18. airbyte_cdk-6.8.3rc1/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -55
  19. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/LICENSE.txt +0 -0
  20. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/__init__.py +0 -0
  21. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/cli/__init__.py +0 -0
  22. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  23. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  24. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  25. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/config_observation.py +0 -0
  26. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/connector.py +0 -0
  27. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/connector_builder/README.md +0 -0
  28. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/connector_builder/__init__.py +0 -0
  29. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  30. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/connector_builder/main.py +0 -0
  31. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  32. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/connector_builder/models.py +0 -0
  33. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/__init__.py +0 -0
  34. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/destination.py +0 -0
  35. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  36. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  37. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  38. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  39. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  40. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  41. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  42. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  43. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  44. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/entrypoint.py +0 -0
  45. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/exception_handler.py +0 -0
  46. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/logger.py +0 -0
  47. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/models/__init__.py +0 -0
  48. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  49. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  50. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  51. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/models/well_known_types.py +0 -0
  52. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/py.typed +0 -0
  53. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/__init__.py +0 -0
  54. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/abstract_source.py +0 -0
  55. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  56. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  57. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  58. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  59. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  60. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  61. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  62. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/config.py +0 -0
  63. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  64. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  65. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  66. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  67. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  68. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  69. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  70. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  71. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  72. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  73. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  74. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  75. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  76. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  77. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  78. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  79. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  80. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  81. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  82. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  83. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  84. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  85. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  86. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  87. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  88. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  89. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  90. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  91. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  92. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  93. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  94. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  95. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  96. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  97. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  98. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  99. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  100. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  101. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  102. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  103. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  104. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  105. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  106. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  107. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  108. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  109. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  110. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  111. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  112. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  113. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  114. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  115. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  116. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  117. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  118. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  119. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  120. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  121. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  122. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  123. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  124. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  125. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  126. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  127. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  128. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  129. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  130. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  131. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  132. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  133. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  134. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  135. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  136. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  137. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  138. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  139. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  140. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  141. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  142. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  143. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  144. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  145. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  146. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  147. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  148. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  149. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  150. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  151. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  152. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  153. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  154. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  155. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  156. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  157. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  158. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  159. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  160. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  161. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  162. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  163. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  164. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  165. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  166. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  167. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  168. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  169. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  170. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  171. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  172. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  173. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  174. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  175. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  176. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  177. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  178. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  179. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  180. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  181. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  182. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  183. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  184. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  185. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/types.py +0 -0
  186. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  187. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  188. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  189. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  190. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/embedded/runner.py +0 -0
  191. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/embedded/tools.py +0 -0
  192. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/README.md +0 -0
  193. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  194. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  195. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  196. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  197. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  198. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  199. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  200. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  201. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  202. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  203. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  204. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  205. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  206. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  207. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  208. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  209. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  210. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  211. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  212. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  213. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  214. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  215. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  216. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  217. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  218. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  219. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  220. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  221. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  222. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  223. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  224. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  225. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  226. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  227. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  228. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  229. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  230. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  231. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  232. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  233. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  234. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  235. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  236. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  237. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  238. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/file_based/types.py +0 -0
  239. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/http_config.py +0 -0
  240. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/http_logger.py +0 -0
  241. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/message/__init__.py +0 -0
  242. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/message/repository.py +0 -0
  243. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/source.py +0 -0
  244. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/__init__.py +0 -0
  245. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  246. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  247. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  248. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  249. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  250. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  251. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  252. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  253. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  254. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  255. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  256. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  257. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  258. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  259. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  260. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  261. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  262. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  263. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  264. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  265. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  266. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  267. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  268. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  269. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  270. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  271. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  272. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  273. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/core.py +0 -0
  274. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  275. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  276. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  277. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  278. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  279. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  280. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  281. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  282. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  283. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  284. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  285. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  286. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/http.py +0 -0
  287. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  288. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  289. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  290. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  291. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  292. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  293. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  294. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  295. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/types.py +0 -0
  296. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/utils/__init__.py +0 -0
  297. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/utils/casing.py +0 -0
  298. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  299. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  300. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  301. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/utils/transform.py +0 -0
  302. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sources/utils/types.py +0 -0
  303. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/__init__.py +0 -0
  304. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/_util/__init__.py +0 -0
  305. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/_util/hashing.py +0 -0
  306. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  307. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/constants.py +0 -0
  308. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/exceptions.py +0 -0
  309. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/secrets.py +0 -0
  310. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/shared/__init__.py +0 -0
  311. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  312. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  313. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/sql/types.py +0 -0
  314. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/__init__.py +0 -0
  315. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/catalog_builder.py +0 -0
  316. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  317. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  318. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  319. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  320. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/mock_http/request.py +0 -0
  321. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/mock_http/response.py +0 -0
  322. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  323. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/state_builder.py +0 -0
  324. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/utils/__init__.py +0 -0
  325. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/utils/data.py +0 -0
  326. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  327. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/test/utils/reading.py +0 -0
  328. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/__init__.py +0 -0
  329. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  330. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/analytics_message.py +0 -0
  331. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/constants.py +0 -0
  332. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  333. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/event_timing.py +0 -0
  334. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  335. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  336. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/message_utils.py +0 -0
  337. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  338. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/print_buffer.py +0 -0
  339. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  340. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/slice_hasher.py +0 -0
  341. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  342. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  343. {airbyte_cdk-6.8.3rc1 → airbyte_cdk-6.9.0.dev0}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -0,0 +1,111 @@
1
+ Metadata-Version: 2.1
2
+ Name: airbyte-cdk
3
+ Version: 6.9.0.dev0
4
+ Summary: A framework for writing Airbyte Connectors.
5
+ Home-page: https://airbyte.com
6
+ License: MIT
7
+ Keywords: airbyte,connector-development-kit,cdk
8
+ Author: Airbyte
9
+ Author-email: contact@airbyte.io
10
+ Requires-Python: >=3.10,<3.13
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Scientific/Engineering
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Provides-Extra: file-based
21
+ Provides-Extra: sphinx-docs
22
+ Provides-Extra: sql
23
+ Provides-Extra: vector-db-based
24
+ Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
25
+ Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
26
+ Requires-Dist: Sphinx (>=4.2,<4.3) ; extra == "sphinx-docs"
27
+ Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
28
+ Requires-Dist: avro (>=1.11.2,<1.12.0) ; extra == "file-based"
29
+ Requires-Dist: backoff
30
+ Requires-Dist: cachetools
31
+ Requires-Dist: cohere (==4.21) ; extra == "vector-db-based"
32
+ Requires-Dist: cryptography (>=42.0.5,<44.0.0)
33
+ Requires-Dist: dpath (>=2.1.6,<3.0.0)
34
+ Requires-Dist: dunamai (>=1.22.0,<2.0.0)
35
+ Requires-Dist: fastavro (>=1.8.0,<1.9.0) ; extra == "file-based"
36
+ Requires-Dist: genson (==1.3.0)
37
+ Requires-Dist: isodate (>=0.6.1,<0.7.0)
38
+ Requires-Dist: jsonref (>=0.2,<0.3)
39
+ Requires-Dist: jsonschema (>=4.17.3,<4.18.0)
40
+ Requires-Dist: langchain (==0.1.16) ; extra == "vector-db-based"
41
+ Requires-Dist: langchain_core (==0.1.42)
42
+ Requires-Dist: markdown ; extra == "file-based"
43
+ Requires-Dist: nltk (==3.9.1)
44
+ Requires-Dist: numpy (<2)
45
+ Requires-Dist: openai[embeddings] (==0.27.9) ; extra == "vector-db-based"
46
+ Requires-Dist: orjson (>=3.10.7,<4.0.0)
47
+ Requires-Dist: pandas (==2.2.2)
48
+ Requires-Dist: pdf2image (==1.16.3) ; extra == "file-based"
49
+ Requires-Dist: pdfminer.six (==20221105) ; extra == "file-based"
50
+ Requires-Dist: pendulum (<3.0.0)
51
+ Requires-Dist: psutil (==6.1.0)
52
+ Requires-Dist: pyarrow (>=15.0.0,<15.1.0) ; extra == "file-based"
53
+ Requires-Dist: pydantic (>=2.7,<3.0)
54
+ Requires-Dist: pyjwt (>=2.8.0,<3.0.0)
55
+ Requires-Dist: pyrate-limiter (>=3.1.0,<3.2.0)
56
+ Requires-Dist: pytesseract (==0.3.10) ; extra == "file-based"
57
+ Requires-Dist: python-calamine (==0.2.3) ; extra == "file-based"
58
+ Requires-Dist: python-dateutil
59
+ Requires-Dist: python-snappy (==0.7.3) ; extra == "file-based"
60
+ Requires-Dist: python-ulid (>=3.0.0,<4.0.0)
61
+ Requires-Dist: pytz (==2024.1)
62
+ Requires-Dist: rapidfuzz (>=3.10.1,<4.0.0)
63
+ Requires-Dist: requests
64
+ Requires-Dist: requests_cache
65
+ Requires-Dist: serpyco-rs (>=1.10.2,<2.0.0)
66
+ Requires-Dist: sphinx-rtd-theme (>=1.0,<1.1) ; extra == "sphinx-docs"
67
+ Requires-Dist: sqlalchemy (>=2.0,<3.0,!=2.0.36) ; extra == "sql"
68
+ Requires-Dist: tiktoken (==0.8.0) ; extra == "vector-db-based"
69
+ Requires-Dist: unstructured.pytesseract (>=0.3.12) ; extra == "file-based"
70
+ Requires-Dist: unstructured[docx,pptx] (==0.10.27) ; extra == "file-based"
71
+ Requires-Dist: wcmatch (==10.0)
72
+ Requires-Dist: xmltodict (>=0.13.0,<0.14.0)
73
+ Project-URL: Documentation, https://docs.airbyte.io/
74
+ Project-URL: Repository, https://github.com/airbytehq/airbyte-python-cdk
75
+ Description-Content-Type: text/markdown
76
+
77
+ # Airbyte Python CDK and Low-Code CDK
78
+
79
+ Airbyte Python CDK is a framework for building Airbyte API Source Connectors. It provides a set of
80
+ classes and helpers that make it easy to build a connector against an HTTP API (REST, GraphQL, etc),
81
+ or a generic Python source connector.
82
+
83
+ ## Building Connectors with the CDK
84
+
85
+ If you're looking to build a connector, we highly recommend that you first
86
+ [start with the Connector Builder](https://docs.airbyte.com/connector-development/connector-builder-ui/overview).
87
+ It should be enough for 90% connectors out there. For more flexible and complex connectors, use the
88
+ [low-code CDK and `SourceDeclarativeManifest`](https://docs.airbyte.com/connector-development/config-based/low-code-cdk-overview).
89
+
90
+ For more information on building connectors, please see the [Connector Development](https://docs.airbyte.com/connector-development/) guide on [docs.airbyte.com](https://docs.airbyte.com).
91
+
92
+ ## Python CDK Overview
93
+
94
+ Airbyte CDK code is within `airbyte_cdk` directory. Here's a high level overview of what's inside:
95
+
96
+ - `airbyte_cdk/connector_builder`. Internal wrapper that helps the Connector Builder platform run a declarative manifest (low-code connector). You should not use this code directly. If you need to run a `SourceDeclarativeManifest`, take a look at [`source-declarative-manifest`](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-declarative-manifest) connector implementation instead.
97
+ - `airbyte_cdk/cli/source_declarative_manifest`. This module defines the `source-declarative-manifest` (aka "SDM") connector execution logic and associated CLI.
98
+ - `airbyte_cdk/destinations`. Basic Destination connector support! If you're building a Destination connector in Python, try that. Some of our vector DB destinations like `destination-pinecone` are using that code.
99
+ - `airbyte_cdk/models` expose `airbyte_protocol.models` as a part of `airbyte_cdk` package.
100
+ - `airbyte_cdk/sources/concurrent_source` is the Concurrent CDK implementation. It supports reading data from streams concurrently per slice / partition, useful for connectors with high throughput and high number of records.
101
+ - `airbyte_cdk/sources/declarative` is the low-code CDK. It works on top of Airbyte Python CDK, but provides a declarative manifest language to define streams, operations, etc. This makes it easier to build connectors without writing Python code.
102
+ - `airbyte_cdk/sources/file_based` is the CDK for file-based sources. Examples include S3, Azure, GCS, etc.
103
+
104
+ ## Contributing
105
+
106
+ For instructions on how to contribute, please see our [Contributing Guide](docs/CONTRIBUTING.md).
107
+
108
+ ## Release Management
109
+
110
+ Please see the [Release Management](docs/RELEASES.md) guide for information on how to perform releases and pre-releases.
111
+
@@ -0,0 +1,34 @@
1
+ # Airbyte Python CDK and Low-Code CDK
2
+
3
+ Airbyte Python CDK is a framework for building Airbyte API Source Connectors. It provides a set of
4
+ classes and helpers that make it easy to build a connector against an HTTP API (REST, GraphQL, etc),
5
+ or a generic Python source connector.
6
+
7
+ ## Building Connectors with the CDK
8
+
9
+ If you're looking to build a connector, we highly recommend that you first
10
+ [start with the Connector Builder](https://docs.airbyte.com/connector-development/connector-builder-ui/overview).
11
+ It should be enough for 90% connectors out there. For more flexible and complex connectors, use the
12
+ [low-code CDK and `SourceDeclarativeManifest`](https://docs.airbyte.com/connector-development/config-based/low-code-cdk-overview).
13
+
14
+ For more information on building connectors, please see the [Connector Development](https://docs.airbyte.com/connector-development/) guide on [docs.airbyte.com](https://docs.airbyte.com).
15
+
16
+ ## Python CDK Overview
17
+
18
+ Airbyte CDK code is within `airbyte_cdk` directory. Here's a high level overview of what's inside:
19
+
20
+ - `airbyte_cdk/connector_builder`. Internal wrapper that helps the Connector Builder platform run a declarative manifest (low-code connector). You should not use this code directly. If you need to run a `SourceDeclarativeManifest`, take a look at [`source-declarative-manifest`](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-declarative-manifest) connector implementation instead.
21
+ - `airbyte_cdk/cli/source_declarative_manifest`. This module defines the `source-declarative-manifest` (aka "SDM") connector execution logic and associated CLI.
22
+ - `airbyte_cdk/destinations`. Basic Destination connector support! If you're building a Destination connector in Python, try that. Some of our vector DB destinations like `destination-pinecone` are using that code.
23
+ - `airbyte_cdk/models` expose `airbyte_protocol.models` as a part of `airbyte_cdk` package.
24
+ - `airbyte_cdk/sources/concurrent_source` is the Concurrent CDK implementation. It supports reading data from streams concurrently per slice / partition, useful for connectors with high throughput and high number of records.
25
+ - `airbyte_cdk/sources/declarative` is the low-code CDK. It works on top of Airbyte Python CDK, but provides a declarative manifest language to define streams, operations, etc. This makes it easier to build connectors without writing Python code.
26
+ - `airbyte_cdk/sources/file_based` is the CDK for file-based sources. Examples include S3, Azure, GCS, etc.
27
+
28
+ ## Contributing
29
+
30
+ For instructions on how to contribute, please see our [Contributing Guide](docs/CONTRIBUTING.md).
31
+
32
+ ## Release Management
33
+
34
+ Please see the [Release Management](docs/RELEASES.md) guide for information on how to perform releases and pre-releases.
@@ -192,9 +192,13 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
192
192
 
193
193
  state_manager = ConnectorStateManager(state=self._state) # type: ignore # state is always in the form of List[AirbyteStateMessage]. The ConnectorStateManager should use generics, but this can be done later
194
194
 
195
- name_to_stream_mapping = {
196
- stream["name"]: stream for stream in self.resolved_manifest["streams"]
197
- }
195
+ # Combine streams and dynamic_streams. Note: both cannot be empty at the same time,
196
+ # and this is validated during the initialization of the source.
197
+ streams = self._stream_configs(self._source_config) + self._dynamic_stream_configs(
198
+ self._source_config, config
199
+ )
200
+
201
+ name_to_stream_mapping = {stream["name"]: stream for stream in streams}
198
202
 
199
203
  for declarative_stream in self.streams(config=config):
200
204
  # Some low-code sources use a combination of DeclarativeStream and regular Python streams. We can't inspect
@@ -7,8 +7,12 @@ version: 1.0.0
7
7
  required:
8
8
  - type
9
9
  - check
10
- - streams
11
10
  - version
11
+ anyOf:
12
+ - required:
13
+ - streams
14
+ - required:
15
+ - dynamic_streams
12
16
  properties:
13
17
  type:
14
18
  type: string
@@ -19,6 +23,10 @@ properties:
19
23
  type: array
20
24
  items:
21
25
  "$ref": "#/definitions/DeclarativeStream"
26
+ dynamic_streams:
27
+ type: array
28
+ items:
29
+ "$ref": "#/definitions/DynamicDeclarativeStream"
22
30
  version:
23
31
  type: string
24
32
  description: The version of the Airbyte CDK used to build and test the source.
@@ -1321,7 +1329,7 @@ definitions:
1321
1329
  type: array
1322
1330
  items:
1323
1331
  - type: string
1324
- interpolation_content:
1332
+ interpolation_context:
1325
1333
  - config
1326
1334
  examples:
1327
1335
  - ["data"]
@@ -1676,6 +1684,92 @@ definitions:
1676
1684
  $parameters:
1677
1685
  type: object
1678
1686
  additionalProperties: true
1687
+ TypesMap:
1688
+ title: Types Map
1689
+ description: (This component is experimental. Use at your own risk.) Represents a mapping between a current type and its corresponding target type.
1690
+ type: object
1691
+ required:
1692
+ - target_type
1693
+ - current_type
1694
+ properties:
1695
+ target_type:
1696
+ anyOf:
1697
+ - type: string
1698
+ - type: array
1699
+ items:
1700
+ type: string
1701
+ current_type:
1702
+ anyOf:
1703
+ - type: string
1704
+ - type: array
1705
+ items:
1706
+ type: string
1707
+ SchemaTypeIdentifier:
1708
+ title: Schema Type Identifier
1709
+ description: (This component is experimental. Use at your own risk.) Identifies schema details for dynamic schema extraction and processing.
1710
+ type: object
1711
+ required:
1712
+ - key_pointer
1713
+ properties:
1714
+ type:
1715
+ type: string
1716
+ enum: [SchemaTypeIdentifier]
1717
+ schema_pointer:
1718
+ title: Schema Path
1719
+ description: List of nested fields defining the schema field path to extract. Defaults to [].
1720
+ type: array
1721
+ default: []
1722
+ items:
1723
+ - type: string
1724
+ interpolation_content:
1725
+ - config
1726
+ key_pointer:
1727
+ title: Key Path
1728
+ description: List of potentially nested fields describing the full path of the field key to extract.
1729
+ type: array
1730
+ items:
1731
+ - type: string
1732
+ interpolation_content:
1733
+ - config
1734
+ type_pointer:
1735
+ title: Type Path
1736
+ description: List of potentially nested fields describing the full path of the field type to extract.
1737
+ type: array
1738
+ items:
1739
+ - type: string
1740
+ interpolation_content:
1741
+ - config
1742
+ types_mapping:
1743
+ type: array
1744
+ items:
1745
+ - "$ref": "#/definitions/TypesMap"
1746
+ $parameters:
1747
+ type: object
1748
+ additionalProperties: true
1749
+ DynamicSchemaLoader:
1750
+ title: Dynamic Schema Loader
1751
+ description: (This component is experimental. Use at your own risk.) Loads a schema by extracting data from retrieved records.
1752
+ type: object
1753
+ required:
1754
+ - type
1755
+ - retriever
1756
+ - schema_type_identifier
1757
+ properties:
1758
+ type:
1759
+ type: string
1760
+ enum: [DynamicSchemaLoader]
1761
+ retriever:
1762
+ title: Retriever
1763
+ description: Component used to coordinate how records are extracted across stream slices and request pages.
1764
+ anyOf:
1765
+ - "$ref": "#/definitions/AsyncRetriever"
1766
+ - "$ref": "#/definitions/CustomRetriever"
1767
+ - "$ref": "#/definitions/SimpleRetriever"
1768
+ schema_type_identifier:
1769
+ "$ref": "#/definitions/SchemaTypeIdentifier"
1770
+ $parameters:
1771
+ type: object
1772
+ additionalProperties: true
1679
1773
  InlineSchemaLoader:
1680
1774
  title: Inline Schema Loader
1681
1775
  description: Loads a schema that is defined directly in the manifest file.
@@ -2895,6 +2989,96 @@ definitions:
2895
2989
  $parameters:
2896
2990
  type: object
2897
2991
  additionalProperties: true
2992
+ ComponentMappingDefinition:
2993
+ title: Component Mapping Definition
2994
+ description: (This component is experimental. Use at your own risk.) Specifies a mapping definition to update or add fields in a record or configuration. This allows dynamic mapping of data by interpolating values into the template based on provided contexts.
2995
+ type: object
2996
+ required:
2997
+ - type
2998
+ - field_path
2999
+ - value
3000
+ properties:
3001
+ type:
3002
+ type: string
3003
+ enum: [ComponentMappingDefinition]
3004
+ field_path:
3005
+ title: Field Path
3006
+ description: A list of potentially nested fields indicating the full path where value will be added or updated.
3007
+ type: array
3008
+ items:
3009
+ - type: string
3010
+ interpolation_context:
3011
+ - config
3012
+ - components_values
3013
+ - stream_template_config
3014
+ examples:
3015
+ - ["data"]
3016
+ - ["data", "records"]
3017
+ - ["data", "{{ parameters.name }}"]
3018
+ - ["data", "*", "record"]
3019
+ value:
3020
+ title: Value
3021
+ description: The dynamic or static value to assign to the key. Interpolated values can be used to dynamically determine the value during runtime.
3022
+ type: string
3023
+ interpolation_context:
3024
+ - config
3025
+ - stream_template_config
3026
+ - components_values
3027
+ examples:
3028
+ - "{{ components_values['updates'] }}"
3029
+ - "{{ components_values['MetaData']['LastUpdatedTime'] }}"
3030
+ - "{{ config['segment_id'] }}"
3031
+ value_type:
3032
+ title: Value Type
3033
+ description: The expected data type of the value. If omitted, the type will be inferred from the value provided.
3034
+ "$ref": "#/definitions/ValueType"
3035
+ $parameters:
3036
+ type: object
3037
+ additionalProperties: true
3038
+ HttpComponentsResolver:
3039
+ type: object
3040
+ description: (This component is experimental. Use at your own risk.) Component resolve and populates stream templates with components fetched via an HTTP retriever.
3041
+ properties:
3042
+ type:
3043
+ type: string
3044
+ enum: [HttpComponentsResolver]
3045
+ retriever:
3046
+ title: Retriever
3047
+ description: Component used to coordinate how records are extracted across stream slices and request pages.
3048
+ anyOf:
3049
+ - "$ref": "#/definitions/AsyncRetriever"
3050
+ - "$ref": "#/definitions/CustomRetriever"
3051
+ - "$ref": "#/definitions/SimpleRetriever"
3052
+ components_mapping:
3053
+ type: array
3054
+ items:
3055
+ "$ref": "#/definitions/ComponentMappingDefinition"
3056
+ $parameters:
3057
+ type: object
3058
+ additionalProperties: true
3059
+ required:
3060
+ - type
3061
+ - retriever
3062
+ - components_mapping
3063
+ DynamicDeclarativeStream:
3064
+ type: object
3065
+ description: (This component is experimental. Use at your own risk.) A component that described how will be created declarative streams based on stream template.
3066
+ properties:
3067
+ type:
3068
+ type: string
3069
+ enum: [DynamicDeclarativeStream]
3070
+ stream_template:
3071
+ title: Stream Template
3072
+ description: Reference to the stream template.
3073
+ "$ref": "#/definitions/DeclarativeStream"
3074
+ components_resolver:
3075
+ title: Components Resolver
3076
+ description: Component resolve and populates stream templates with components values.
3077
+ "$ref": "#/definitions/HttpComponentsResolver"
3078
+ required:
3079
+ - type
3080
+ - stream_template
3081
+ - components_resolver
2898
3082
  interpolation:
2899
3083
  variables:
2900
3084
  - title: config
@@ -39,6 +39,7 @@ from airbyte_cdk.sources.declarative.parsers.manifest_reference_resolver import
39
39
  from airbyte_cdk.sources.declarative.parsers.model_to_component_factory import (
40
40
  ModelToComponentFactory,
41
41
  )
42
+ from airbyte_cdk.sources.declarative.resolvers import COMPONENTS_RESOLVER_TYPE_MAPPING
42
43
  from airbyte_cdk.sources.message import MessageRepository
43
44
  from airbyte_cdk.sources.streams.core import Stream
44
45
  from airbyte_cdk.sources.types import ConnectionDefinition
@@ -120,7 +121,10 @@ class ManifestDeclarativeSource(DeclarativeSource):
120
121
  self._emit_manifest_debug_message(
121
122
  extra_args={"source_name": self.name, "parsed_config": json.dumps(self._source_config)}
122
123
  )
123
- stream_configs = self._stream_configs(self._source_config)
124
+
125
+ stream_configs = self._stream_configs(self._source_config) + self._dynamic_stream_configs(
126
+ self._source_config, config
127
+ )
124
128
 
125
129
  source_streams = [
126
130
  self._constructor.create_component(
@@ -234,7 +238,8 @@ class ManifestDeclarativeSource(DeclarativeSource):
234
238
  )
235
239
 
236
240
  streams = self._source_config.get("streams")
237
- if not streams:
241
+ dynamic_streams = self._source_config.get("dynamic_streams")
242
+ if not (streams or dynamic_streams):
238
243
  raise ValidationError(
239
244
  f"A valid manifest should have at least one stream defined. Got {streams}"
240
245
  )
@@ -303,5 +308,51 @@ class ManifestDeclarativeSource(DeclarativeSource):
303
308
  s["type"] = "DeclarativeStream"
304
309
  return stream_configs
305
310
 
311
+ def _dynamic_stream_configs(
312
+ self, manifest: Mapping[str, Any], config: Mapping[str, Any]
313
+ ) -> List[Dict[str, Any]]:
314
+ dynamic_stream_definitions: List[Dict[str, Any]] = manifest.get("dynamic_streams", [])
315
+ dynamic_stream_configs: List[Dict[str, Any]] = []
316
+
317
+ for dynamic_definition in dynamic_stream_definitions:
318
+ components_resolver_config = dynamic_definition["components_resolver"]
319
+
320
+ if not components_resolver_config:
321
+ raise ValueError(
322
+ f"Missing 'components_resolver' in dynamic definition: {dynamic_definition}"
323
+ )
324
+
325
+ resolver_type = components_resolver_config.get("type")
326
+ if not resolver_type:
327
+ raise ValueError(
328
+ f"Missing 'type' in components resolver configuration: {components_resolver_config}"
329
+ )
330
+
331
+ if resolver_type not in COMPONENTS_RESOLVER_TYPE_MAPPING:
332
+ raise ValueError(
333
+ f"Invalid components resolver type '{resolver_type}'. "
334
+ f"Expected one of {list(COMPONENTS_RESOLVER_TYPE_MAPPING.keys())}."
335
+ )
336
+
337
+ if "retriever" in components_resolver_config:
338
+ components_resolver_config["retriever"]["requester"]["use_cache"] = True
339
+
340
+ # Create a resolver for dynamic components based on type
341
+ components_resolver = self._constructor.create_component(
342
+ COMPONENTS_RESOLVER_TYPE_MAPPING[resolver_type], components_resolver_config, config
343
+ )
344
+
345
+ stream_template_config = dynamic_definition["stream_template"]
346
+
347
+ for dynamic_stream in components_resolver.resolve_components(
348
+ stream_template_config=stream_template_config
349
+ ):
350
+ if "type" not in dynamic_stream:
351
+ dynamic_stream["type"] = "DeclarativeStream"
352
+
353
+ dynamic_stream_configs.append(dynamic_stream)
354
+
355
+ return dynamic_stream_configs
356
+
306
357
  def _emit_manifest_debug_message(self, extra_args: dict[str, Any]) -> None:
307
358
  self.logger.debug("declarative source created from manifest", extra=extra_args)