airbyte-cdk 6.45.1.post47.dev14456468218__tar.gz → 6.45.2.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 (376) hide show
  1. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/PKG-INFO +2 -2
  2. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/models/__init__.py +0 -1
  3. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/models/airbyte_protocol.py +3 -1
  4. airbyte_cdk-6.45.2.dev0/airbyte_cdk/models/file_transfer_record_message.py +13 -0
  5. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +1 -1
  6. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -8
  7. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -36
  8. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +1 -6
  9. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -31
  10. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +27 -41
  11. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +10 -0
  12. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +1 -1
  13. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +4 -9
  14. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +16 -38
  15. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +15 -8
  16. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/schema_helpers.py +1 -10
  17. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +12 -3
  18. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +38 -15
  19. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +3 -1
  20. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -3
  21. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/types.py +2 -11
  22. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/record_helper.py +8 -8
  23. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/response_builder.py +0 -8
  24. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/pyproject.toml +2 -3
  25. airbyte_cdk-6.45.1.post47.dev14456468218/airbyte_cdk/sources/declarative/retrievers/file_uploader.py +0 -89
  26. airbyte_cdk-6.45.1.post47.dev14456468218/airbyte_cdk/sources/file_based/file_record_data.py +0 -22
  27. airbyte_cdk-6.45.1.post47.dev14456468218/airbyte_cdk/sources/utils/files_directory.py +0 -15
  28. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/LICENSE.txt +0 -0
  29. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/LICENSE_SHORT +0 -0
  30. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/README.md +0 -0
  31. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/__init__.py +0 -0
  32. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/cli/__init__.py +0 -0
  33. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  34. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  35. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  36. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/config_observation.py +0 -0
  37. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector.py +0 -0
  38. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/README.md +0 -0
  39. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/__init__.py +0 -0
  40. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  41. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/main.py +0 -0
  42. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/models.py +0 -0
  43. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  44. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  45. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  46. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  47. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  48. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/__init__.py +0 -0
  49. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/destination.py +0 -0
  50. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  51. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  52. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  53. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  54. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  55. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  56. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  57. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  58. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  59. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/entrypoint.py +0 -0
  60. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/exception_handler.py +0 -0
  61. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/logger.py +0 -0
  62. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  63. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/models/well_known_types.py +0 -0
  64. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/py.typed +0 -0
  65. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/__init__.py +0 -0
  66. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/abstract_source.py +0 -0
  67. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  68. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  69. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  70. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  71. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  72. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  73. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/config.py +0 -0
  74. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  75. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  76. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  77. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  78. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  79. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  80. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  81. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  82. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  83. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  84. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  85. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  86. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  87. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  88. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  89. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  90. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  91. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  92. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  93. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  94. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  95. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  96. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  97. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  98. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  99. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  100. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  101. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  102. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  103. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  104. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  105. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  106. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  107. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  108. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  109. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  110. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  111. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  112. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  113. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  114. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  115. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  116. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  117. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  118. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  119. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  120. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  121. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  122. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  123. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  124. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  125. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  126. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  127. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  128. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  129. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  130. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  131. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  132. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  133. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  134. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  135. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  136. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  137. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  138. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  139. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  140. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  141. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  142. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  143. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  144. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  145. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  146. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  147. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  148. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  149. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  150. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  151. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  152. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  153. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  154. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  155. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  156. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  157. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  158. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  159. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  160. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  161. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  162. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  163. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  164. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  165. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  166. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  167. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  168. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  169. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  170. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  171. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  172. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  173. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  174. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  175. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  176. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  177. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  178. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  179. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  180. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  181. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  182. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  183. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  184. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  185. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  186. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  187. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  188. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  189. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  190. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  191. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  192. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  193. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  194. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  195. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  196. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  197. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  198. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  199. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  200. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  201. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  202. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  203. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  204. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  205. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  206. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  207. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  208. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  209. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  210. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  211. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  212. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  213. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  214. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  215. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  216. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  217. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  218. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  219. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  220. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  221. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  222. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/types.py +0 -0
  223. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  224. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/README.md +0 -0
  225. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  226. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  227. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  228. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  229. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  230. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  231. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  232. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  233. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  234. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  235. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  236. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  237. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  238. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  239. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  240. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  241. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  242. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  243. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  244. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  245. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  246. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  247. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  248. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  249. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  250. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  251. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  252. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  253. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  254. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  255. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  256. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  257. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  258. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  259. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  260. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  261. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  262. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  263. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  264. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  265. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  266. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  267. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  268. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/file_based/types.py +0 -0
  269. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/http_config.py +0 -0
  270. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/http_logger.py +0 -0
  271. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/message/__init__.py +0 -0
  272. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/message/repository.py +0 -0
  273. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/source.py +0 -0
  274. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  275. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/__init__.py +0 -0
  276. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  277. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  278. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  279. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  280. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  281. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  282. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  283. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  284. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  285. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  286. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  287. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  288. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  289. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  290. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  291. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  292. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  293. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  294. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  295. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  296. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  297. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  298. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  299. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  300. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  301. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  302. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  303. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  304. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  305. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  306. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/core.py +0 -0
  307. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  308. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  309. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  310. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  311. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  312. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  313. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  314. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  315. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  316. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  317. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  318. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  319. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/http.py +0 -0
  320. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  321. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  322. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  323. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  324. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  325. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  326. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  327. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  328. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  329. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/__init__.py +0 -0
  330. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/casing.py +0 -0
  331. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  332. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  333. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/transform.py +0 -0
  334. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sources/utils/types.py +0 -0
  335. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/__init__.py +0 -0
  336. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/_util/__init__.py +0 -0
  337. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/_util/hashing.py +0 -0
  338. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  339. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/constants.py +0 -0
  340. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/exceptions.py +0 -0
  341. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/secrets.py +0 -0
  342. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/shared/__init__.py +0 -0
  343. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  344. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  345. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/sql/types.py +0 -0
  346. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/__init__.py +0 -0
  347. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/catalog_builder.py +0 -0
  348. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  349. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  350. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  351. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  352. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/request.py +0 -0
  353. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/mock_http/response.py +0 -0
  354. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/state_builder.py +0 -0
  355. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/__init__.py +0 -0
  356. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/data.py +0 -0
  357. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  358. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  359. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/test/utils/reading.py +0 -0
  360. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/__init__.py +0 -0
  361. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  362. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/analytics_message.py +0 -0
  363. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/constants.py +0 -0
  364. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  365. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  366. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/event_timing.py +0 -0
  367. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  368. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  369. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/message_utils.py +0 -0
  370. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  371. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/print_buffer.py +0 -0
  372. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  373. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/slice_hasher.py +0 -0
  374. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  375. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  376. {airbyte_cdk-6.45.1.post47.dev14456468218 → airbyte_cdk-6.45.2.dev0}/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.45.1.post47.dev14456468218
3
+ Version: 6.45.2.dev0
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.15,<0.16)
25
+ Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
26
26
  Requires-Dist: anyascii (>=0.3.2,<0.4.0)
27
27
  Requires-Dist: avro (>=1.11.2,<1.13.0) ; extra == "file-based"
28
28
  Requires-Dist: backoff
@@ -19,7 +19,6 @@ from .airbyte_protocol import (
19
19
  AirbyteMessage,
20
20
  AirbyteProtocol,
21
21
  AirbyteRecordMessage,
22
- AirbyteRecordMessageFileReference,
23
22
  AirbyteStateBlob,
24
23
  AirbyteStateMessage,
25
24
  AirbyteStateStats,
@@ -8,6 +8,8 @@ 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
+
11
13
  # ruff: noqa: F405 # ignore fuzzy import issues with 'import *'
12
14
 
13
15
 
@@ -82,7 +84,7 @@ class AirbyteMessage:
82
84
  spec: Optional[ConnectorSpecification] = None # type: ignore [name-defined]
83
85
  connectionStatus: Optional[AirbyteConnectionStatus] = None # type: ignore [name-defined]
84
86
  catalog: Optional[AirbyteCatalog] = None # type: ignore [name-defined]
85
- record: Optional[AirbyteRecordMessage] = None # type: ignore [name-defined]
87
+ record: Optional[Union[AirbyteFileTransferRecordMessage, AirbyteRecordMessage]] = None # type: ignore [name-defined]
86
88
  state: Optional[AirbyteStateMessage] = None
87
89
  trace: Optional[AirbyteTraceMessage] = None # type: ignore [name-defined]
88
90
  control: Optional[AirbyteControlMessage] = None # type: ignore [name-defined]
@@ -0,0 +1,13 @@
1
+ # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
2
+
3
+ from dataclasses import dataclass
4
+ from typing import Any, Dict, Optional
5
+
6
+
7
+ @dataclass
8
+ class AirbyteFileTransferRecordMessage:
9
+ stream: str
10
+ file: Dict[str, Any]
11
+ emitted_at: int
12
+ namespace: Optional[str] = None
13
+ data: Optional[Dict[str, Any]] = None
@@ -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
- file_reference=record.file_reference,
152
+ is_file_transfer_message=record.is_file_transfer_message,
153
153
  )
154
154
  stream = self._stream_name_to_instance[record.stream_name]
155
155
 
@@ -25,7 +25,6 @@ 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
29
28
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
30
29
  ConcurrencyLevel as ConcurrencyLevelModel,
31
30
  )
@@ -207,10 +206,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
207
206
  # these legacy Python streams the way we do low-code streams to determine if they are concurrent compatible,
208
207
  # so we need to treat them as synchronous
209
208
 
210
- supports_file_transfer = (
211
- "file_uploader" in name_to_stream_mapping[declarative_stream.name]
212
- )
213
-
214
209
  if (
215
210
  isinstance(declarative_stream, DeclarativeStream)
216
211
  and name_to_stream_mapping[declarative_stream.name]["type"]
@@ -327,7 +322,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
327
322
  else None,
328
323
  logger=self.logger,
329
324
  cursor=cursor,
330
- supports_file_transfer=supports_file_transfer,
331
325
  )
332
326
  )
333
327
  elif (
@@ -359,7 +353,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
359
353
  cursor_field=None,
360
354
  logger=self.logger,
361
355
  cursor=final_state_cursor,
362
- supports_file_transfer=supports_file_transfer,
363
356
  )
364
357
  )
365
358
  elif (
@@ -413,7 +406,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
413
406
  cursor_field=perpartition_cursor.cursor_field.cursor_field_key,
414
407
  logger=self.logger,
415
408
  cursor=perpartition_cursor,
416
- supports_file_transfer=supports_file_transfer,
417
409
  )
418
410
  )
419
411
  else:
@@ -1448,42 +1448,6 @@ definitions:
1448
1448
  - "$ref": "#/definitions/LegacyToPerPartitionStateMigration"
1449
1449
  - "$ref": "#/definitions/CustomStateMigration"
1450
1450
  default: []
1451
- file_uploader:
1452
- title: File Uploader
1453
- description: (experimental) Describes how to fetch a file
1454
- type: object
1455
- required:
1456
- - type
1457
- - requester
1458
- - download_target_extractor
1459
- properties:
1460
- type:
1461
- type: string
1462
- enum: [ FileUploader ]
1463
- requester:
1464
- description: Requester component that describes how to prepare HTTP requests to send to the source API.
1465
- anyOf:
1466
- - "$ref": "#/definitions/CustomRequester"
1467
- - "$ref": "#/definitions/HttpRequester"
1468
- download_target_extractor:
1469
- description: Responsible for fetching the url where the file is located. This is applied on each records and not on the HTTP response
1470
- anyOf:
1471
- - "$ref": "#/definitions/CustomRecordExtractor"
1472
- - "$ref": "#/definitions/DpathExtractor"
1473
- file_extractor:
1474
- description: Responsible for fetching the content of the file. If not defined, the assumption is that the whole response body is the file content
1475
- anyOf:
1476
- - "$ref": "#/definitions/CustomRecordExtractor"
1477
- - "$ref": "#/definitions/DpathExtractor"
1478
- filename_extractor:
1479
- description: Defines the name to store the file. Stream name is automatically added to the file path. File unique ID can be used to avoid overwriting files. Random UUID will be used if the extractor is not provided.
1480
- type: string
1481
- interpolation_context:
1482
- - config
1483
- - record
1484
- examples:
1485
- - "{{ record.id }}/{{ record.file_name }}/"
1486
- - "{{ record.id }}_{{ record.file_name }}/"
1487
1451
  $parameters:
1488
1452
  type: object
1489
1453
  additional_properties: true
@@ -15,7 +15,6 @@ from airbyte_cdk.sources.declarative.extractors.type_transformer import (
15
15
  )
16
16
  from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
17
17
  from airbyte_cdk.sources.declarative.models import SchemaNormalization
18
- from airbyte_cdk.sources.declarative.retrievers.file_uploader import FileUploader
19
18
  from airbyte_cdk.sources.declarative.transformations import RecordTransformation
20
19
  from airbyte_cdk.sources.types import Config, Record, StreamSlice, StreamState
21
20
  from airbyte_cdk.sources.utils.transform import TypeTransformer
@@ -43,7 +42,6 @@ class RecordSelector(HttpSelector):
43
42
  record_filter: Optional[RecordFilter] = None
44
43
  transformations: List[RecordTransformation] = field(default_factory=lambda: [])
45
44
  transform_before_filtering: bool = False
46
- file_uploader: Optional[FileUploader] = None
47
45
 
48
46
  def __post_init__(self, parameters: Mapping[str, Any]) -> None:
49
47
  self._parameters = parameters
@@ -119,10 +117,7 @@ class RecordSelector(HttpSelector):
119
117
  transformed_filtered_data, schema=records_schema
120
118
  )
121
119
  for data in normalized_data:
122
- record = Record(data=data, stream_name=self.name, associated_slice=stream_slice)
123
- if self.file_uploader:
124
- self.file_uploader.upload(record)
125
- yield record
120
+ yield Record(data=data, stream_name=self.name, associated_slice=stream_slice)
126
121
 
127
122
  def _normalize_by_schema(
128
123
  self, records: Iterable[Mapping[str, Any]], schema: Optional[Mapping[str, Any]]
@@ -2042,31 +2042,6 @@ class SelectiveAuthenticator(BaseModel):
2042
2042
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
2043
2043
 
2044
2044
 
2045
- class FileUploader(BaseModel):
2046
- type: Literal["FileUploader"]
2047
- requester: Union[CustomRequester, HttpRequester] = Field(
2048
- ...,
2049
- description="Requester component that describes how to prepare HTTP requests to send to the source API.",
2050
- )
2051
- download_target_extractor: Union[CustomRecordExtractor, DpathExtractor] = Field(
2052
- ...,
2053
- description="Responsible for fetching the url where the file is located. This is applied on each records and not on the HTTP response",
2054
- )
2055
- file_extractor: Optional[Union[CustomRecordExtractor, DpathExtractor]] = Field(
2056
- None,
2057
- description="Responsible for fetching the content of the file. If not defined, the assumption is that the whole response body is the file content",
2058
- )
2059
- filename_extractor: Optional[str] = Field(
2060
- None,
2061
- description="Defines the name to store the file. Stream name is automatically added to the file path. File unique ID can be used to avoid overwriting files. Random UUID will be used if the extractor is not provided.",
2062
- examples=[
2063
- "{{ record.id }}/{{ record.file_name }}/",
2064
- "{{ record.id }}_{{ record.file_name }}/",
2065
- ],
2066
- )
2067
- parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
2068
-
2069
-
2070
2045
  class DeclarativeStream(BaseModel):
2071
2046
  class Config:
2072
2047
  extra = Extra.allow
@@ -2125,11 +2100,6 @@ class DeclarativeStream(BaseModel):
2125
2100
  description="Array of state migrations to be applied on the input state",
2126
2101
  title="State Migrations",
2127
2102
  )
2128
- file_uploader: Optional[FileUploader] = Field(
2129
- None,
2130
- description="(experimental) Describes how to fetch a file",
2131
- title="File Uploader",
2132
- )
2133
2103
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
2134
2104
 
2135
2105
 
@@ -2623,7 +2593,6 @@ CompositeErrorHandler.update_forward_refs()
2623
2593
  DeclarativeSource1.update_forward_refs()
2624
2594
  DeclarativeSource2.update_forward_refs()
2625
2595
  SelectiveAuthenticator.update_forward_refs()
2626
- FileUploader.update_forward_refs()
2627
2596
  DeclarativeStream.update_forward_refs()
2628
2597
  SessionTokenAuthenticator.update_forward_refs()
2629
2598
  DynamicSchemaLoader.update_forward_refs()
@@ -106,6 +106,7 @@ from airbyte_cdk.sources.declarative.migrations.legacy_to_per_partition_state_mi
106
106
  )
107
107
  from airbyte_cdk.sources.declarative.models import (
108
108
  CustomStateMigration,
109
+ GzipDecoder,
109
110
  )
110
111
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
111
112
  AddedFieldDefinition as AddedFieldDefinitionModel,
@@ -227,9 +228,6 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
227
228
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
228
229
  ExponentialBackoffStrategy as ExponentialBackoffStrategyModel,
229
230
  )
230
- from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
231
- FileUploader as FileUploaderModel,
232
- )
233
231
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
234
232
  FixedWindowCallRatePolicy as FixedWindowCallRatePolicyModel,
235
233
  )
@@ -481,7 +479,6 @@ from airbyte_cdk.sources.declarative.retrievers import (
481
479
  SimpleRetriever,
482
480
  SimpleRetrieverTestReadDecorator,
483
481
  )
484
- from airbyte_cdk.sources.declarative.retrievers.file_uploader import FileUploader
485
482
  from airbyte_cdk.sources.declarative.schema import (
486
483
  ComplexFieldType,
487
484
  DefaultSchemaLoader,
@@ -678,7 +675,6 @@ class ModelToComponentFactory:
678
675
  ComponentMappingDefinitionModel: self.create_components_mapping_definition,
679
676
  ZipfileDecoderModel: self.create_zipfile_decoder,
680
677
  HTTPAPIBudgetModel: self.create_http_api_budget,
681
- FileUploaderModel: self.create_file_uploader,
682
678
  FixedWindowCallRatePolicyModel: self.create_fixed_window_call_rate_policy,
683
679
  MovingWindowCallRatePolicyModel: self.create_moving_window_call_rate_policy,
684
680
  UnlimitedCallRatePolicyModel: self.create_unlimited_call_rate_policy,
@@ -1830,11 +1826,6 @@ class ModelToComponentFactory:
1830
1826
  transformations.append(
1831
1827
  self._create_component_from_model(model=transformation_model, config=config)
1832
1828
  )
1833
- file_uploader = None
1834
- if model.file_uploader:
1835
- file_uploader = self._create_component_from_model(
1836
- model=model.file_uploader, config=config
1837
- )
1838
1829
 
1839
1830
  retriever = self._create_component_from_model(
1840
1831
  model=model.retriever,
@@ -1846,7 +1837,6 @@ class ModelToComponentFactory:
1846
1837
  stop_condition_on_cursor=stop_condition_on_cursor,
1847
1838
  client_side_incremental_sync=client_side_incremental_sync,
1848
1839
  transformations=transformations,
1849
- file_uploader=file_uploader,
1850
1840
  incremental_sync=model.incremental_sync,
1851
1841
  )
1852
1842
  cursor_field = model.incremental_sync.cursor_field if model.incremental_sync else None
@@ -2064,6 +2054,7 @@ class ModelToComponentFactory:
2064
2054
  config: Config,
2065
2055
  *,
2066
2056
  url_base: str,
2057
+ extractor_model: Optional[Union[CustomRecordExtractorModel, DpathExtractorModel]] = None,
2067
2058
  decoder: Optional[Decoder] = None,
2068
2059
  cursor_used_for_stop_condition: Optional[DeclarativeCursor] = None,
2069
2060
  ) -> Union[DefaultPaginator, PaginatorTestReadDecorator]:
@@ -2085,7 +2076,10 @@ class ModelToComponentFactory:
2085
2076
  else None
2086
2077
  )
2087
2078
  pagination_strategy = self._create_component_from_model(
2088
- model=model.pagination_strategy, config=config, decoder=decoder_to_use
2079
+ model=model.pagination_strategy,
2080
+ config=config,
2081
+ decoder=decoder_to_use,
2082
+ extractor_model=extractor_model,
2089
2083
  )
2090
2084
  if cursor_used_for_stop_condition:
2091
2085
  pagination_strategy = StopConditionPaginationStrategyDecorator(
@@ -2582,7 +2576,12 @@ class ModelToComponentFactory:
2582
2576
  )
2583
2577
 
2584
2578
  def create_offset_increment(
2585
- self, model: OffsetIncrementModel, config: Config, decoder: Decoder, **kwargs: Any
2579
+ self,
2580
+ model: OffsetIncrementModel,
2581
+ config: Config,
2582
+ decoder: Decoder,
2583
+ extractor_model: Optional[Union[CustomRecordExtractorModel, DpathExtractorModel]] = None,
2584
+ **kwargs: Any,
2586
2585
  ) -> OffsetIncrement:
2587
2586
  if isinstance(decoder, PaginationDecoderDecorator):
2588
2587
  inner_decoder = decoder.decoder
@@ -2597,10 +2596,24 @@ class ModelToComponentFactory:
2597
2596
  self._UNSUPPORTED_DECODER_ERROR.format(decoder_type=type(inner_decoder))
2598
2597
  )
2599
2598
 
2599
+ # Ideally we would instantiate the runtime extractor from highest most level (in this case the SimpleRetriever)
2600
+ # so that it can be shared by OffSetIncrement and RecordSelector. However, due to how we instantiate the
2601
+ # decoder with various decorators here, but not in create_record_selector, it is simpler to retain existing
2602
+ # behavior by having two separate extractors with identical behavior since they use the same extractor model.
2603
+ # When we have more time to investigate we can look into reusing the same component.
2604
+ extractor = (
2605
+ self._create_component_from_model(
2606
+ model=extractor_model, config=config, decoder=decoder_to_use
2607
+ )
2608
+ if extractor_model
2609
+ else None
2610
+ )
2611
+
2600
2612
  return OffsetIncrement(
2601
2613
  page_size=model.page_size,
2602
2614
  config=config,
2603
2615
  decoder=decoder_to_use,
2616
+ extractor=extractor,
2604
2617
  inject_on_first_request=model.inject_on_first_request or False,
2605
2618
  parameters=model.parameters or {},
2606
2619
  )
@@ -2769,7 +2782,6 @@ class ModelToComponentFactory:
2769
2782
  transformations: List[RecordTransformation] | None = None,
2770
2783
  decoder: Decoder | None = None,
2771
2784
  client_side_incremental_sync: Dict[str, Any] | None = None,
2772
- file_uploader: Optional[FileUploader] = None,
2773
2785
  **kwargs: Any,
2774
2786
  ) -> RecordSelector:
2775
2787
  extractor = self._create_component_from_model(
@@ -2807,7 +2819,6 @@ class ModelToComponentFactory:
2807
2819
  config=config,
2808
2820
  record_filter=record_filter,
2809
2821
  transformations=transformations or [],
2810
- file_uploader=file_uploader,
2811
2822
  schema_normalization=schema_normalization,
2812
2823
  parameters=model.parameters or {},
2813
2824
  transform_before_filtering=transform_before_filtering,
@@ -2865,7 +2876,6 @@ class ModelToComponentFactory:
2865
2876
  stop_condition_on_cursor: bool = False,
2866
2877
  client_side_incremental_sync: Optional[Dict[str, Any]] = None,
2867
2878
  transformations: List[RecordTransformation],
2868
- file_uploader: Optional[FileUploader] = None,
2869
2879
  incremental_sync: Optional[
2870
2880
  Union[
2871
2881
  IncrementingCountCursorModel, DatetimeBasedCursorModel, CustomIncrementalSyncModel
@@ -2886,7 +2896,6 @@ class ModelToComponentFactory:
2886
2896
  decoder=decoder,
2887
2897
  transformations=transformations,
2888
2898
  client_side_incremental_sync=client_side_incremental_sync,
2889
- file_uploader=file_uploader,
2890
2899
  )
2891
2900
 
2892
2901
  query_properties: Optional[QueryProperties] = None
@@ -2968,6 +2977,7 @@ class ModelToComponentFactory:
2968
2977
  model=model.paginator,
2969
2978
  config=config,
2970
2979
  url_base=url_base,
2980
+ extractor_model=model.record_selector.extractor,
2971
2981
  decoder=decoder,
2972
2982
  cursor_used_for_stop_condition=cursor_used_for_stop_condition,
2973
2983
  )
@@ -3552,30 +3562,6 @@ class ModelToComponentFactory:
3552
3562
  matchers=matchers,
3553
3563
  )
3554
3564
 
3555
- def create_file_uploader(
3556
- self, model: FileUploaderModel, config: Config, **kwargs: Any
3557
- ) -> FileUploader:
3558
- name = "File Uploader"
3559
- requester = self._create_component_from_model(
3560
- model=model.requester,
3561
- config=config,
3562
- name=name,
3563
- **kwargs,
3564
- )
3565
- download_target_extractor = self._create_component_from_model(
3566
- model=model.download_target_extractor,
3567
- config=config,
3568
- name=name,
3569
- **kwargs,
3570
- )
3571
- return FileUploader(
3572
- requester=requester,
3573
- download_target_extractor=download_target_extractor,
3574
- config=config,
3575
- parameters=model.parameters or {},
3576
- filename_extractor=model.filename_extractor if model.filename_extractor else None,
3577
- )
3578
-
3579
3565
  def create_moving_window_call_rate_policy(
3580
3566
  self, model: MovingWindowCallRatePolicyModel, config: Config, **kwargs: Any
3581
3567
  ) -> MovingWindowCallRatePolicy:
@@ -12,6 +12,7 @@ from airbyte_cdk.sources.declarative.decoders import (
12
12
  JsonDecoder,
13
13
  PaginationDecoderDecorator,
14
14
  )
15
+ from airbyte_cdk.sources.declarative.extractors.dpath_extractor import RecordExtractor
15
16
  from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
16
17
  from airbyte_cdk.sources.declarative.requesters.paginators.strategies.pagination_strategy import (
17
18
  PaginationStrategy,
@@ -46,6 +47,7 @@ class OffsetIncrement(PaginationStrategy):
46
47
  config: Config
47
48
  page_size: Optional[Union[str, int]]
48
49
  parameters: InitVar[Mapping[str, Any]]
50
+ extractor: Optional[RecordExtractor]
49
51
  decoder: Decoder = field(
50
52
  default_factory=lambda: PaginationDecoderDecorator(decoder=JsonDecoder(parameters={}))
51
53
  )
@@ -75,6 +77,14 @@ class OffsetIncrement(PaginationStrategy):
75
77
  ) -> Optional[Any]:
76
78
  decoded_response = next(self.decoder.decode(response))
77
79
 
80
+ if self.extractor:
81
+ page_size_from_response = len(list(self.extractor.extract_records(response=response)))
82
+ # The extractor could return 0 records which is valid, but evaluates to False. Our fallback in other
83
+ # cases as the best effort option is to use the incoming last_page_size
84
+ last_page_size = (
85
+ page_size_from_response if page_size_from_response is not None else last_page_size
86
+ )
87
+
78
88
  # Stop paginating when there are fewer records than the page size or the current page has no records
79
89
  if (
80
90
  self._page_size
@@ -364,7 +364,7 @@ class SimpleRetriever(Retriever):
364
364
  pagination_complete = False
365
365
  initial_token = self._paginator.get_initial_token()
366
366
  next_page_token: Optional[Mapping[str, Any]] = (
367
- {"next_page_token": initial_token} if initial_token else None
367
+ {"next_page_token": initial_token} if initial_token is not None else None
368
368
  )
369
369
  while not pagination_complete:
370
370
  response = self._fetch_next_page(stream_state, stream_slice, next_page_token)
@@ -58,16 +58,11 @@ class DeclarativePartition(Partition):
58
58
  def read(self) -> Iterable[Record]:
59
59
  for stream_data in self._retriever.read_records(self._json_schema, self._stream_slice):
60
60
  if isinstance(stream_data, Mapping):
61
- record = (
62
- stream_data
63
- if isinstance(stream_data, Record)
64
- else Record(
65
- data=stream_data,
66
- stream_name=self.stream_name(),
67
- associated_slice=self._stream_slice,
68
- )
61
+ yield Record(
62
+ data=stream_data,
63
+ stream_name=self.stream_name(),
64
+ associated_slice=self._stream_slice,
69
65
  )
70
- yield record
71
66
  else:
72
67
  self._message_repository.emit_message(stream_data)
73
68
 
@@ -8,18 +8,16 @@ from datetime import datetime
8
8
  from enum import Enum
9
9
  from io import IOBase
10
10
  from os import makedirs, path
11
- from typing import Any, Callable, Iterable, List, MutableMapping, Optional, Set, Tuple
11
+ from typing import Any, Dict, Iterable, List, Optional, Set
12
12
 
13
13
  from wcmatch.glob import GLOBSTAR, globmatch
14
14
 
15
- from airbyte_cdk.models import AirbyteRecordMessageFileReference
16
15
  from airbyte_cdk.sources.file_based.config.abstract_file_based_spec import AbstractFileBasedSpec
17
16
  from airbyte_cdk.sources.file_based.config.validate_config_transfer_modes import (
18
17
  include_identities_stream,
19
18
  preserve_directory_structure,
20
19
  use_file_transfer,
21
20
  )
22
- from airbyte_cdk.sources.file_based.file_record_data import FileRecordData
23
21
  from airbyte_cdk.sources.file_based.remote_file import RemoteFile
24
22
 
25
23
 
@@ -30,10 +28,6 @@ class FileReadMode(Enum):
30
28
 
31
29
  class AbstractFileBasedStreamReader(ABC):
32
30
  DATE_TIME_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
33
- FILE_RELATIVE_PATH = "file_relative_path"
34
- FILE_NAME = "file_name"
35
- LOCAL_FILE_PATH = "local_file_path"
36
- FILE_FOLDER = "file_folder"
37
31
 
38
32
  def __init__(self) -> None:
39
33
  self._config = None
@@ -154,9 +148,9 @@ class AbstractFileBasedStreamReader(ABC):
154
148
  return False
155
149
 
156
150
  @abstractmethod
157
- def upload(
151
+ def get_file(
158
152
  self, file: RemoteFile, local_directory: str, logger: logging.Logger
159
- ) -> Tuple[FileRecordData, AirbyteRecordMessageFileReference]:
153
+ ) -> Dict[str, Any]:
160
154
  """
161
155
  This is required for connectors that will support writing to
162
156
  files. It will handle the logic to download,get,read,acquire or
@@ -168,41 +162,25 @@ class AbstractFileBasedStreamReader(ABC):
168
162
  logger (logging.Logger): Logger for logging information and errors.
169
163
 
170
164
  Returns:
171
- AirbyteRecordMessageFileReference: A file reference object containing:
172
- - staging_file_url (str): The absolute path to the referenced file in the staging area.
173
- - file_size_bytes (int): The size of the referenced file in bytes.
174
- - source_file_relative_path (str): The relative path to the referenced file in source.
165
+ dict: A dictionary containing the following:
166
+ - "file_url" (str): The absolute path of the downloaded file.
167
+ - "bytes" (int): The file size in bytes.
168
+ - "file_relative_path" (str): The relative path of the file for local storage. Is relative to local_directory as
169
+ this a mounted volume in the pod container.
170
+
175
171
  """
176
172
  ...
177
173
 
178
- def _get_file_transfer_paths(
179
- self, source_file_relative_path: str, staging_directory: str
180
- ) -> MutableMapping[str, Any]:
181
- """
182
- This method is used to get the file transfer paths for a given source file relative path and local directory.
183
- It returns a dictionary with the following keys:
184
- - FILE_RELATIVE_PATH: The relative path to file in reference to the staging directory.
185
- - LOCAL_FILE_PATH: The absolute path to the file.
186
- - FILE_NAME: The name of the referenced file.
187
- - FILE_FOLDER: The folder of the referenced file.
188
- """
174
+ def _get_file_transfer_paths(self, file: RemoteFile, local_directory: str) -> List[str]:
189
175
  preserve_directory_structure = self.preserve_directory_structure()
190
-
191
- file_name = path.basename(source_file_relative_path)
192
- file_folder = path.dirname(source_file_relative_path)
193
176
  if preserve_directory_structure:
194
177
  # Remove left slashes from source path format to make relative path for writing locally
195
- file_relative_path = source_file_relative_path.lstrip("/")
178
+ file_relative_path = file.uri.lstrip("/")
196
179
  else:
197
- file_relative_path = file_name
198
- local_file_path = path.join(staging_directory, file_relative_path)
180
+ file_relative_path = path.basename(file.uri)
181
+ local_file_path = path.join(local_directory, file_relative_path)
182
+
199
183
  # Ensure the local directory exists
200
184
  makedirs(path.dirname(local_file_path), exist_ok=True)
201
-
202
- file_paths = {
203
- self.FILE_RELATIVE_PATH: file_relative_path,
204
- self.LOCAL_FILE_PATH: local_file_path,
205
- self.FILE_NAME: file_name,
206
- self.FILE_FOLDER: file_folder,
207
- }
208
- return file_paths
185
+ absolute_file_path = path.abspath(local_file_path)
186
+ return [file_relative_path, local_file_path, absolute_file_path]
@@ -2,27 +2,34 @@
2
2
  # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
3
3
  #
4
4
  import logging
5
- from typing import Iterable, Tuple
5
+ import os
6
+ from typing import Any, Dict, Iterable
6
7
 
7
- from airbyte_cdk.models import AirbyteRecordMessageFileReference
8
+ from airbyte_cdk.sources.file_based.config.file_based_stream_config import FileBasedStreamConfig
8
9
  from airbyte_cdk.sources.file_based.file_based_stream_reader import AbstractFileBasedStreamReader
9
- from airbyte_cdk.sources.file_based.file_record_data import FileRecordData
10
10
  from airbyte_cdk.sources.file_based.remote_file import RemoteFile
11
- from airbyte_cdk.sources.utils.files_directory import get_files_directory
11
+
12
+ AIRBYTE_STAGING_DIRECTORY = os.getenv("AIRBYTE_STAGING_DIRECTORY", "/staging/files")
13
+ DEFAULT_LOCAL_DIRECTORY = "/tmp/airbyte-file-transfer"
12
14
 
13
15
 
14
16
  class FileTransfer:
15
17
  def __init__(self) -> None:
16
- self._local_directory = get_files_directory()
18
+ self._local_directory = (
19
+ AIRBYTE_STAGING_DIRECTORY
20
+ if os.path.exists(AIRBYTE_STAGING_DIRECTORY)
21
+ else DEFAULT_LOCAL_DIRECTORY
22
+ )
17
23
 
18
- def upload(
24
+ def get_file(
19
25
  self,
26
+ config: FileBasedStreamConfig,
20
27
  file: RemoteFile,
21
28
  stream_reader: AbstractFileBasedStreamReader,
22
29
  logger: logging.Logger,
23
- ) -> Iterable[Tuple[FileRecordData, AirbyteRecordMessageFileReference]]:
30
+ ) -> Iterable[Dict[str, Any]]:
24
31
  try:
25
- yield stream_reader.upload(
32
+ yield stream_reader.get_file(
26
33
  file=file, local_directory=self._local_directory, logger=logger
27
34
  )
28
35
  except Exception as ex:
@@ -18,18 +18,9 @@ JsonSchemaSupportedType = Union[List[str], Literal["string"], str]
18
18
  SchemaType = Mapping[str, Mapping[str, JsonSchemaSupportedType]]
19
19
 
20
20
  schemaless_schema = {"type": "object", "properties": {"data": {"type": "object"}}}
21
-
22
21
  file_transfer_schema = {
23
22
  "type": "object",
24
- "properties": {
25
- "folder": {"type": "string"},
26
- "file_name": {"type": "string"},
27
- "source_uri": {"type": "string"},
28
- "bytes": {"type": "integer"},
29
- "id": {"type": ["null", "string"]},
30
- "updated_at": {"type": ["null", "string"]},
31
- "mime_type": {"type": ["null", "string"]},
32
- },
23
+ "properties": {"data": {"type": "object"}, "file": {"type": "object"}},
33
24
  }
34
25
 
35
26