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