airbyte-cdk 6.44.0__tar.gz → 6.45.0.dev4100__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 (370) hide show
  1. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/PKG-INFO +2 -2
  2. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/connector_builder_handler.py +6 -45
  3. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/main.py +2 -5
  4. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/models/__init__.py +1 -0
  5. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/models/airbyte_protocol.py +1 -3
  6. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +1 -1
  7. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/async_job/job.py +0 -6
  8. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +18 -18
  9. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +6 -22
  10. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/checks/__init__.py +2 -5
  11. airbyte_cdk-6.45.0.dev4100/airbyte_cdk/sources/declarative/checks/check_stream.py +56 -0
  12. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +8 -0
  13. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +49 -93
  14. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/extractors/record_selector.py +6 -1
  15. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +1 -2
  16. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/macros.py +4 -8
  17. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +2 -23
  18. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +42 -68
  19. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +4 -16
  20. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +42 -83
  21. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -4
  22. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +1 -5
  23. airbyte_cdk-6.45.0.dev4100/airbyte_cdk/sources/declarative/retrievers/file_uploader.py +89 -0
  24. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +9 -4
  25. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/add_fields.py +1 -3
  26. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +9 -9
  27. airbyte_cdk-6.45.0.dev4100/airbyte_cdk/sources/file_based/file_record_data.py +24 -0
  28. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +8 -15
  29. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/schema_helpers.py +11 -1
  30. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -1
  31. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +16 -31
  32. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +1 -3
  33. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/default_stream.py +3 -0
  34. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -4
  35. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/types.py +11 -2
  36. airbyte_cdk-6.45.0.dev4100/airbyte_cdk/sources/utils/files_directory.py +15 -0
  37. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/utils/record_helper.py +8 -8
  38. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/pyproject.toml +8 -2
  39. airbyte_cdk-6.44.0/airbyte_cdk/models/file_transfer_record_message.py +0 -13
  40. airbyte_cdk-6.44.0/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -158
  41. airbyte_cdk-6.44.0/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -150
  42. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/LICENSE.txt +0 -0
  43. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/LICENSE_SHORT +0 -0
  44. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/README.md +0 -0
  45. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/__init__.py +0 -0
  46. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/cli/__init__.py +0 -0
  47. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  48. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  49. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  50. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/config_observation.py +0 -0
  51. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector.py +0 -0
  52. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/README.md +0 -0
  53. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/__init__.py +0 -0
  54. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/models.py +0 -0
  55. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  56. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  57. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  58. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  59. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  60. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/__init__.py +0 -0
  61. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/destination.py +0 -0
  62. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  63. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  64. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  65. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  66. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  67. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  68. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  69. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  70. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  71. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/entrypoint.py +0 -0
  72. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/exception_handler.py +0 -0
  73. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/logger.py +0 -0
  74. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  75. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/models/well_known_types.py +0 -0
  76. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/py.typed +0 -0
  77. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/__init__.py +0 -0
  78. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/abstract_source.py +0 -0
  79. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  80. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  81. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  82. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  83. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  84. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  85. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/config.py +0 -0
  86. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  87. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  88. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  89. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  90. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  91. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  92. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  93. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  94. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  95. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  96. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  97. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  98. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  99. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  100. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  101. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  102. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  103. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  104. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  105. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  106. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  107. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  108. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  109. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  110. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  111. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  112. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  113. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  114. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  115. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  116. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  117. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  118. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  119. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  120. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  121. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  122. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  123. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  124. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  125. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  126. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  127. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  128. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  129. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  130. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  131. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  132. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  133. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  134. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  135. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  136. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  137. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  138. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  139. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  140. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  141. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  142. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  143. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  144. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  145. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  146. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  147. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  148. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  149. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  150. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  151. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  152. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  153. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  154. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  155. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  156. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  157. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  158. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  159. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  160. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  161. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  162. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  163. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  164. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  165. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  166. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  167. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  168. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  169. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  170. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  171. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  172. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  173. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  174. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  175. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  176. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  177. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  178. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  179. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  180. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  181. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  182. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  183. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  184. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  185. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  186. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  187. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  188. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  189. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  190. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  191. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  192. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  193. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  194. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  195. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  196. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  197. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  198. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  199. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  200. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  201. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  202. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  203. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  204. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  205. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  206. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  207. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  208. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  209. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  210. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  211. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  212. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  213. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  214. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  215. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  216. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/types.py +0 -0
  217. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  218. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/README.md +0 -0
  219. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  220. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  221. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  222. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  223. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  224. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  225. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  226. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  227. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  228. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  229. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  230. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  231. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  232. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  233. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  234. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  235. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  236. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  237. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  238. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  239. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  240. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  241. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  242. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  243. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  244. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  245. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  246. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  247. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  248. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  249. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  250. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  251. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  252. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  253. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  254. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  255. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  256. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  257. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  258. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  259. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  260. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  261. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  262. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/file_based/types.py +0 -0
  263. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/http_config.py +0 -0
  264. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/http_logger.py +0 -0
  265. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/message/__init__.py +0 -0
  266. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/message/repository.py +0 -0
  267. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/source.py +0 -0
  268. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  269. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/__init__.py +0 -0
  270. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  271. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  272. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  273. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  274. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  275. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  276. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  277. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  278. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  279. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  280. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  281. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  282. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  283. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  284. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  285. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  286. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  287. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  288. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  289. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  290. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  291. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  292. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  293. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  294. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  295. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  296. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  297. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  298. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  299. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/core.py +0 -0
  300. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  301. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  302. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  303. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  304. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  305. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  306. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  307. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  308. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  309. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  310. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  311. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  312. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/http.py +0 -0
  313. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  314. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  315. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  316. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  317. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  318. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  319. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  320. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  321. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  322. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/utils/__init__.py +0 -0
  323. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/utils/casing.py +0 -0
  324. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  325. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  326. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/utils/transform.py +0 -0
  327. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sources/utils/types.py +0 -0
  328. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/__init__.py +0 -0
  329. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/_util/__init__.py +0 -0
  330. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/_util/hashing.py +0 -0
  331. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  332. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/constants.py +0 -0
  333. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/exceptions.py +0 -0
  334. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/secrets.py +0 -0
  335. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/shared/__init__.py +0 -0
  336. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  337. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  338. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/sql/types.py +0 -0
  339. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/__init__.py +0 -0
  340. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/catalog_builder.py +0 -0
  341. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  342. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  343. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  344. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  345. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/mock_http/request.py +0 -0
  346. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/mock_http/response.py +0 -0
  347. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  348. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/state_builder.py +0 -0
  349. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/utils/__init__.py +0 -0
  350. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/utils/data.py +0 -0
  351. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  352. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  353. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/test/utils/reading.py +0 -0
  354. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/__init__.py +0 -0
  355. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  356. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/analytics_message.py +0 -0
  357. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/constants.py +0 -0
  358. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  359. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  360. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/event_timing.py +0 -0
  361. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  362. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  363. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/message_utils.py +0 -0
  364. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  365. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/print_buffer.py +0 -0
  366. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  367. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/slice_hasher.py +0 -0
  368. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  369. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  370. {airbyte_cdk-6.44.0 → airbyte_cdk-6.45.0.dev4100}/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.44.0
3
+ Version: 6.45.0.dev4100
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -22,7 +22,7 @@ Provides-Extra: sql
22
22
  Provides-Extra: vector-db-based
23
23
  Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
24
24
  Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
25
- Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
25
+ Requires-Dist: airbyte-protocol-models-dataclasses (==0.14.4.dev1743719077)
26
26
  Requires-Dist: anyascii (>=0.3.2,<0.4.0)
27
27
  Requires-Dist: avro (>=1.11.2,<1.13.0) ; extra == "file-based"
28
28
  Requires-Dist: backoff
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
  from dataclasses import asdict, dataclass, field
7
- from typing import Any, Dict, List, Mapping
7
+ from typing import Any, List, Mapping
8
8
 
9
9
  from airbyte_cdk.connector_builder.test_reader import TestReader
10
10
  from airbyte_cdk.models import (
@@ -27,34 +27,30 @@ from airbyte_cdk.utils.traced_exception import AirbyteTracedException
27
27
  DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE = 5
28
28
  DEFAULT_MAXIMUM_NUMBER_OF_SLICES = 5
29
29
  DEFAULT_MAXIMUM_RECORDS = 100
30
- DEFAULT_MAXIMUM_STREAMS = 100
31
30
 
32
31
  MAX_PAGES_PER_SLICE_KEY = "max_pages_per_slice"
33
32
  MAX_SLICES_KEY = "max_slices"
34
33
  MAX_RECORDS_KEY = "max_records"
35
- MAX_STREAMS_KEY = "max_streams"
36
34
 
37
35
 
38
36
  @dataclass
39
- class TestLimits:
37
+ class TestReadLimits:
40
38
  max_records: int = field(default=DEFAULT_MAXIMUM_RECORDS)
41
39
  max_pages_per_slice: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
42
40
  max_slices: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
43
- max_streams: int = field(default=DEFAULT_MAXIMUM_STREAMS)
44
41
 
45
42
 
46
- def get_limits(config: Mapping[str, Any]) -> TestLimits:
43
+ def get_limits(config: Mapping[str, Any]) -> TestReadLimits:
47
44
  command_config = config.get("__test_read_config", {})
48
45
  max_pages_per_slice = (
49
46
  command_config.get(MAX_PAGES_PER_SLICE_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE
50
47
  )
51
48
  max_slices = command_config.get(MAX_SLICES_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_SLICES
52
49
  max_records = command_config.get(MAX_RECORDS_KEY) or DEFAULT_MAXIMUM_RECORDS
53
- max_streams = command_config.get(MAX_STREAMS_KEY) or DEFAULT_MAXIMUM_STREAMS
54
- return TestLimits(max_records, max_pages_per_slice, max_slices, max_streams)
50
+ return TestReadLimits(max_records, max_pages_per_slice, max_slices)
55
51
 
56
52
 
57
- def create_source(config: Mapping[str, Any], limits: TestLimits) -> ManifestDeclarativeSource:
53
+ def create_source(config: Mapping[str, Any], limits: TestReadLimits) -> ManifestDeclarativeSource:
58
54
  manifest = config["__injected_declarative_manifest"]
59
55
  return ManifestDeclarativeSource(
60
56
  config=config,
@@ -75,7 +71,7 @@ def read_stream(
75
71
  config: Mapping[str, Any],
76
72
  configured_catalog: ConfiguredAirbyteCatalog,
77
73
  state: List[AirbyteStateMessage],
78
- limits: TestLimits,
74
+ limits: TestReadLimits,
79
75
  ) -> AirbyteMessage:
80
76
  try:
81
77
  test_read_handler = TestReader(
@@ -121,40 +117,5 @@ def resolve_manifest(source: ManifestDeclarativeSource) -> AirbyteMessage:
121
117
  return error.as_airbyte_message()
122
118
 
123
119
 
124
- def full_resolve_manifest(source: ManifestDeclarativeSource, limits: TestLimits) -> AirbyteMessage:
125
- try:
126
- manifest = {**source.resolved_manifest}
127
- streams = manifest.get("streams", [])
128
- for stream in streams:
129
- stream["dynamic_stream_name"] = None
130
-
131
- mapped_streams: Dict[str, List[Dict[str, Any]]] = {}
132
- for stream in source.dynamic_streams:
133
- generated_streams = mapped_streams.setdefault(stream["dynamic_stream_name"], [])
134
-
135
- if len(generated_streams) < limits.max_streams:
136
- generated_streams += [stream]
137
-
138
- for generated_streams_list in mapped_streams.values():
139
- streams.extend(generated_streams_list)
140
-
141
- manifest["streams"] = streams
142
- return AirbyteMessage(
143
- type=Type.RECORD,
144
- record=AirbyteRecordMessage(
145
- data={"manifest": manifest},
146
- emitted_at=_emitted_at(),
147
- stream="full_resolve_manifest",
148
- ),
149
- )
150
- except AirbyteTracedException as exc:
151
- return exc.as_airbyte_message()
152
- except Exception as exc:
153
- error = AirbyteTracedException.from_exception(
154
- exc, message=f"Error full resolving manifest: {str(exc)}"
155
- )
156
- return error.as_airbyte_message()
157
-
158
-
159
120
  def _emitted_at() -> int:
160
121
  return ab_datetime_now().to_epoch_millis()
@@ -10,9 +10,8 @@ import orjson
10
10
 
11
11
  from airbyte_cdk.connector import BaseConnector
12
12
  from airbyte_cdk.connector_builder.connector_builder_handler import (
13
- TestLimits,
13
+ TestReadLimits,
14
14
  create_source,
15
- full_resolve_manifest,
16
15
  get_limits,
17
16
  read_stream,
18
17
  resolve_manifest,
@@ -73,7 +72,7 @@ def handle_connector_builder_request(
73
72
  config: Mapping[str, Any],
74
73
  catalog: Optional[ConfiguredAirbyteCatalog],
75
74
  state: List[AirbyteStateMessage],
76
- limits: TestLimits,
75
+ limits: TestReadLimits,
77
76
  ) -> AirbyteMessage:
78
77
  if command == "resolve_manifest":
79
78
  return resolve_manifest(source)
@@ -82,8 +81,6 @@ def handle_connector_builder_request(
82
81
  catalog is not None
83
82
  ), "`test_read` requires a valid `ConfiguredAirbyteCatalog`, got None."
84
83
  return read_stream(source, config, catalog, state, limits)
85
- elif command == "full_resolve_manifest":
86
- return full_resolve_manifest(source, limits)
87
84
  else:
88
85
  raise ValueError(f"Unrecognized command {command}.")
89
86
 
@@ -19,6 +19,7 @@ from .airbyte_protocol import (
19
19
  AirbyteMessage,
20
20
  AirbyteProtocol,
21
21
  AirbyteRecordMessage,
22
+ AirbyteRecordMessageFileReference,
22
23
  AirbyteStateBlob,
23
24
  AirbyteStateMessage,
24
25
  AirbyteStateStats,
@@ -8,8 +8,6 @@ from typing import Annotated, Any, Dict, List, Mapping, Optional, Union
8
8
  from airbyte_protocol_dataclasses.models import * # noqa: F403 # Allow '*'
9
9
  from serpyco_rs.metadata import Alias
10
10
 
11
- from airbyte_cdk.models.file_transfer_record_message import AirbyteFileTransferRecordMessage
12
-
13
11
  # ruff: noqa: F405 # ignore fuzzy import issues with 'import *'
14
12
 
15
13
 
@@ -84,7 +82,7 @@ class AirbyteMessage:
84
82
  spec: Optional[ConnectorSpecification] = None # type: ignore [name-defined]
85
83
  connectionStatus: Optional[AirbyteConnectionStatus] = None # type: ignore [name-defined]
86
84
  catalog: Optional[AirbyteCatalog] = None # type: ignore [name-defined]
87
- record: Optional[Union[AirbyteFileTransferRecordMessage, AirbyteRecordMessage]] = None # type: ignore [name-defined]
85
+ record: Optional[AirbyteRecordMessage] = None # type: ignore [name-defined]
88
86
  state: Optional[AirbyteStateMessage] = None
89
87
  trace: Optional[AirbyteTraceMessage] = None # type: ignore [name-defined]
90
88
  control: Optional[AirbyteControlMessage] = None # type: ignore [name-defined]
@@ -149,7 +149,7 @@ class ConcurrentReadProcessor:
149
149
  message = stream_data_to_airbyte_message(
150
150
  stream_name=record.stream_name,
151
151
  data_or_message=record.data,
152
- is_file_transfer_message=record.is_file_transfer_message,
152
+ file_reference=record.file_reference,
153
153
  )
154
154
  stream = self._stream_name_to_instance[record.stream_name]
155
155
 
@@ -34,12 +34,6 @@ class AsyncJob:
34
34
 
35
35
  def status(self) -> AsyncJobStatus:
36
36
  if self._timer.has_timed_out():
37
- # TODO: we should account the fact that,
38
- # certain APIs could send the `Timeout` status,
39
- # thus we should not return `Timeout` in that case,
40
- # but act based on the scenario.
41
-
42
- # the default behavior is to return `Timeout` status and retry.
43
37
  return AsyncJobStatus.TIMED_OUT
44
38
  return self._status
45
39
 
@@ -44,21 +44,16 @@ class AsyncPartition:
44
44
  This bucket of api_jobs is a bit useless for this iteration but should become interesting when we will be able to split jobs
45
45
  """
46
46
 
47
- _DEFAULT_MAX_JOB_RETRY = 3
47
+ _MAX_NUMBER_OF_ATTEMPTS = 3
48
48
 
49
- def __init__(
50
- self, jobs: List[AsyncJob], stream_slice: StreamSlice, job_max_retry: Optional[int] = None
51
- ) -> None:
49
+ def __init__(self, jobs: List[AsyncJob], stream_slice: StreamSlice) -> None:
52
50
  self._attempts_per_job = {job: 1 for job in jobs}
53
51
  self._stream_slice = stream_slice
54
- self._job_max_retry = (
55
- job_max_retry if job_max_retry is not None else self._DEFAULT_MAX_JOB_RETRY
56
- )
57
52
 
58
53
  def has_reached_max_attempt(self) -> bool:
59
54
  return any(
60
55
  map(
61
- lambda attempt_count: attempt_count >= self._job_max_retry,
56
+ lambda attempt_count: attempt_count >= self._MAX_NUMBER_OF_ATTEMPTS,
62
57
  self._attempts_per_job.values(),
63
58
  )
64
59
  )
@@ -67,7 +62,7 @@ class AsyncPartition:
67
62
  current_attempt_count = self._attempts_per_job.pop(job_to_replace, None)
68
63
  if current_attempt_count is None:
69
64
  raise ValueError("Could not find job to replace")
70
- elif current_attempt_count >= self._job_max_retry:
65
+ elif current_attempt_count >= self._MAX_NUMBER_OF_ATTEMPTS:
71
66
  raise ValueError(f"Max attempt reached for job in partition {self._stream_slice}")
72
67
 
73
68
  new_attempt_count = current_attempt_count + 1
@@ -160,7 +155,6 @@ class AsyncJobOrchestrator:
160
155
  message_repository: MessageRepository,
161
156
  exceptions_to_break_on: Iterable[Type[Exception]] = tuple(),
162
157
  has_bulk_parent: bool = False,
163
- job_max_retry: Optional[int] = None,
164
158
  ) -> None:
165
159
  """
166
160
  If the stream slices provided as a parameters relies on a async job streams that relies on the same JobTracker, `has_bulk_parent`
@@ -181,12 +175,11 @@ class AsyncJobOrchestrator:
181
175
  self._message_repository = message_repository
182
176
  self._exceptions_to_break_on: Tuple[Type[Exception], ...] = tuple(exceptions_to_break_on)
183
177
  self._has_bulk_parent = has_bulk_parent
184
- self._job_max_retry = job_max_retry
185
178
 
186
179
  self._non_breaking_exceptions: List[Exception] = []
187
180
 
188
181
  def _replace_failed_jobs(self, partition: AsyncPartition) -> None:
189
- failed_status_jobs = (AsyncJobStatus.FAILED, AsyncJobStatus.TIMED_OUT)
182
+ failed_status_jobs = (AsyncJobStatus.FAILED,)
190
183
  jobs_to_replace = [job for job in partition.jobs if job.status() in failed_status_jobs]
191
184
  for job in jobs_to_replace:
192
185
  new_job = self._start_job(job.job_parameters(), job.api_job_id())
@@ -221,7 +214,7 @@ class AsyncJobOrchestrator:
221
214
  for _slice in self._slice_iterator:
222
215
  at_least_one_slice_consumed_from_slice_iterator_during_current_iteration = True
223
216
  job = self._start_job(_slice)
224
- self._running_partitions.append(AsyncPartition([job], _slice, self._job_max_retry))
217
+ self._running_partitions.append(AsyncPartition([job], _slice))
225
218
  if self._has_bulk_parent and self._slice_iterator.has_next():
226
219
  break
227
220
  except ConcurrentJobLimitReached:
@@ -370,7 +363,7 @@ class AsyncJobOrchestrator:
370
363
  self._reallocate_partition(current_running_partitions, partition)
371
364
 
372
365
  # We only remove completed / timeout jobs jobs as we want failed jobs to be re-allocated in priority
373
- self._remove_completed_jobs(partition)
366
+ self._remove_completed_or_timed_out_jobs(partition)
374
367
 
375
368
  # update the referenced list with running partitions
376
369
  self._running_partitions = current_running_partitions
@@ -385,7 +378,11 @@ class AsyncJobOrchestrator:
385
378
  def _stop_timed_out_jobs(self, partition: AsyncPartition) -> None:
386
379
  for job in partition.jobs:
387
380
  if job.status() == AsyncJobStatus.TIMED_OUT:
388
- self._abort_job(job, free_job_allocation=False)
381
+ self._abort_job(job, free_job_allocation=True)
382
+ raise AirbyteTracedException(
383
+ internal_message=f"Job {job.api_job_id()} has timed out. Try increasing the `polling job timeout`.",
384
+ failure_type=FailureType.config_error,
385
+ )
389
386
 
390
387
  def _abort_job(self, job: AsyncJob, free_job_allocation: bool = True) -> None:
391
388
  try:
@@ -395,7 +392,7 @@ class AsyncJobOrchestrator:
395
392
  except Exception as exception:
396
393
  LOGGER.warning(f"Could not free budget for job {job.api_job_id()}: {exception}")
397
394
 
398
- def _remove_completed_jobs(self, partition: AsyncPartition) -> None:
395
+ def _remove_completed_or_timed_out_jobs(self, partition: AsyncPartition) -> None:
399
396
  """
400
397
  Remove completed or timed out jobs from the partition.
401
398
 
@@ -403,7 +400,7 @@ class AsyncJobOrchestrator:
403
400
  partition (AsyncPartition): The partition to process.
404
401
  """
405
402
  for job in partition.jobs:
406
- if job.status() == AsyncJobStatus.COMPLETED:
403
+ if job.status() in [AsyncJobStatus.COMPLETED, AsyncJobStatus.TIMED_OUT]:
407
404
  self._job_tracker.remove_job(job.api_job_id())
408
405
 
409
406
  def _reallocate_partition(
@@ -418,7 +415,10 @@ class AsyncJobOrchestrator:
418
415
  current_running_partitions (list): The list of currently running partitions.
419
416
  partition (AsyncPartition): The partition to reallocate.
420
417
  """
421
- current_running_partitions.insert(0, partition)
418
+ for job in partition.jobs:
419
+ if job.status() != AsyncJobStatus.TIMED_OUT:
420
+ # allow the FAILED jobs to be re-allocated for partition
421
+ current_running_partitions.insert(0, partition)
422
422
 
423
423
  def _process_partitions_with_errors(self, partition: AsyncPartition) -> None:
424
424
  """
@@ -3,11 +3,9 @@
3
3
  import logging
4
4
  import threading
5
5
  import uuid
6
- from dataclasses import dataclass, field
7
- from typing import Any, Mapping, Set, Union
6
+ from typing import Set
8
7
 
9
8
  from airbyte_cdk.logger import lazy_log
10
- from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
11
9
 
12
10
  LOGGER = logging.getLogger("airbyte")
13
11
 
@@ -16,29 +14,15 @@ class ConcurrentJobLimitReached(Exception):
16
14
  pass
17
15
 
18
16
 
19
- @dataclass
20
17
  class JobTracker:
21
- limit: Union[int, str]
22
- config: Mapping[str, Any] = field(default_factory=dict)
23
-
24
- def __post_init__(self) -> None:
18
+ def __init__(self, limit: int):
25
19
  self._jobs: Set[str] = set()
26
- self._lock = threading.Lock()
27
- if isinstance(self.limit, str):
28
- try:
29
- self.limit = int(
30
- InterpolatedString(self.limit, parameters={}).eval(config=self.config)
31
- )
32
- except Exception as e:
33
- LOGGER.warning(
34
- f"Error interpolating max job count: {self.limit}. Setting to 1. {e}"
35
- )
36
- self.limit = 1
37
- if self.limit < 1:
20
+ if limit < 1:
38
21
  LOGGER.warning(
39
- f"The `max_concurrent_async_job_count` property is less than 1: {self.limit}. Setting to 1. Please update the source manifest to set a valid value."
22
+ f"The `max_concurrent_async_job_count` property is less than 1: {limit}. Setting to 1. Please update the source manifest to set a valid value."
40
23
  )
41
- self._limit = self.limit if self.limit >= 1 else 1
24
+ self._limit = 1 if limit < 1 else limit
25
+ self._lock = threading.Lock()
42
26
 
43
27
  def try_to_get_intent(self) -> str:
44
28
  lazy_log(
@@ -7,10 +7,7 @@ from typing import Mapping
7
7
  from pydantic.v1 import BaseModel
8
8
 
9
9
  from airbyte_cdk.sources.declarative.checks.check_dynamic_stream import CheckDynamicStream
10
- from airbyte_cdk.sources.declarative.checks.check_stream import (
11
- CheckStream,
12
- DynamicStreamCheckConfig,
13
- )
10
+ from airbyte_cdk.sources.declarative.checks.check_stream import CheckStream
14
11
  from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
15
12
  from airbyte_cdk.sources.declarative.models import (
16
13
  CheckDynamicStream as CheckDynamicStreamModel,
@@ -24,4 +21,4 @@ COMPONENTS_CHECKER_TYPE_MAPPING: Mapping[str, type[BaseModel]] = {
24
21
  "CheckDynamicStream": CheckDynamicStreamModel,
25
22
  }
26
23
 
27
- __all__ = ["CheckStream", "CheckDynamicStream", "ConnectionChecker", "DynamicStreamCheckConfig"]
24
+ __all__ = ["CheckStream", "CheckDynamicStream", "ConnectionChecker"]
@@ -0,0 +1,56 @@
1
+ #
2
+ # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ import logging
6
+ import traceback
7
+ from dataclasses import InitVar, dataclass
8
+ from typing import Any, List, Mapping, Tuple
9
+
10
+ from airbyte_cdk import AbstractSource
11
+ from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
12
+ from airbyte_cdk.sources.streams.http.availability_strategy import HttpAvailabilityStrategy
13
+
14
+
15
+ @dataclass
16
+ class CheckStream(ConnectionChecker):
17
+ """
18
+ Checks the connections by checking availability of one or many streams selected by the developer
19
+
20
+ Attributes:
21
+ stream_name (List[str]): names of streams to check
22
+ """
23
+
24
+ stream_names: List[str]
25
+ parameters: InitVar[Mapping[str, Any]]
26
+
27
+ def __post_init__(self, parameters: Mapping[str, Any]) -> None:
28
+ self._parameters = parameters
29
+
30
+ def check_connection(
31
+ self, source: AbstractSource, logger: logging.Logger, config: Mapping[str, Any]
32
+ ) -> Tuple[bool, Any]:
33
+ streams = source.streams(config=config)
34
+ stream_name_to_stream = {s.name: s for s in streams}
35
+ if len(streams) == 0:
36
+ return False, f"No streams to connect to from source {source}"
37
+ for stream_name in self.stream_names:
38
+ if stream_name not in stream_name_to_stream.keys():
39
+ raise ValueError(
40
+ f"{stream_name} is not part of the catalog. Expected one of {stream_name_to_stream.keys()}."
41
+ )
42
+
43
+ stream = stream_name_to_stream[stream_name]
44
+ availability_strategy = HttpAvailabilityStrategy()
45
+ try:
46
+ stream_is_available, reason = availability_strategy.check_availability(
47
+ stream, logger
48
+ )
49
+ if not stream_is_available:
50
+ return False, reason
51
+ except Exception as error:
52
+ logger.error(
53
+ f"Encountered an error trying to connect to stream {stream_name}. Error: \n {traceback.format_exc()}"
54
+ )
55
+ return False, f"Unable to connect to stream {stream_name} - {error}"
56
+ return True, None
@@ -25,6 +25,7 @@ from airbyte_cdk.sources.declarative.incremental.per_partition_with_global impor
25
25
  PerPartitionWithGlobalCursor,
26
26
  )
27
27
  from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
28
+ from airbyte_cdk.sources.declarative.models import FileUploader
28
29
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
29
30
  ConcurrencyLevel as ConcurrencyLevelModel,
30
31
  )
@@ -206,6 +207,10 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
206
207
  # these legacy Python streams the way we do low-code streams to determine if they are concurrent compatible,
207
208
  # so we need to treat them as synchronous
208
209
 
210
+ supports_file_transfer = (
211
+ "file_uploader" in name_to_stream_mapping[declarative_stream.name]
212
+ )
213
+
209
214
  if (
210
215
  isinstance(declarative_stream, DeclarativeStream)
211
216
  and name_to_stream_mapping[declarative_stream.name]["type"]
@@ -322,6 +327,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
322
327
  else None,
323
328
  logger=self.logger,
324
329
  cursor=cursor,
330
+ supports_file_transfer=supports_file_transfer,
325
331
  )
326
332
  )
327
333
  elif (
@@ -353,6 +359,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
353
359
  cursor_field=None,
354
360
  logger=self.logger,
355
361
  cursor=final_state_cursor,
362
+ supports_file_transfer=supports_file_transfer,
356
363
  )
357
364
  )
358
365
  elif (
@@ -406,6 +413,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
406
413
  cursor_field=perpartition_cursor.cursor_field.cursor_field_key,
407
414
  logger=self.logger,
408
415
  cursor=perpartition_cursor,
416
+ supports_file_transfer=supports_file_transfer,
409
417
  )
410
418
  )
411
419
  else: