airbyte-cdk 6.38.2__tar.gz → 6.38.3.dev4100__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/entrypoint.py +6 -6
  3. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/logger.py +4 -1
  4. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +13 -1
  5. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +11 -6
  6. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_based_source.py +22 -1
  7. airbyte_cdk-6.38.3.dev4100/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +109 -0
  8. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -94
  9. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/identities_stream.py +7 -5
  10. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +12 -3
  11. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/adapters.py +9 -1
  12. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/pyproject.toml +1 -1
  13. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/LICENSE.txt +0 -0
  14. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/LICENSE_SHORT +0 -0
  15. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/README.md +0 -0
  16. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/__init__.py +0 -0
  17. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/cli/__init__.py +0 -0
  18. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  19. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  20. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  21. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/config_observation.py +0 -0
  22. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector.py +0 -0
  23. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/README.md +0 -0
  24. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/__init__.py +0 -0
  25. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  26. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/main.py +0 -0
  27. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/models.py +0 -0
  28. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  29. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  30. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  31. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  32. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  33. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/__init__.py +0 -0
  34. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/destination.py +0 -0
  35. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  36. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  37. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  38. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  39. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  40. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  41. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  42. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  43. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  44. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/exception_handler.py +0 -0
  45. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/models/__init__.py +0 -0
  46. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  47. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  48. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  49. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/models/well_known_types.py +0 -0
  50. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/py.typed +0 -0
  51. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/__init__.py +0 -0
  52. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/abstract_source.py +0 -0
  53. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  54. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  55. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  56. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  57. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  58. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  59. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  60. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/config.py +0 -0
  61. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  62. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  63. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  64. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  65. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  66. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  67. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  68. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  69. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  70. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  71. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  72. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  73. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  74. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  75. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  76. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  77. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  78. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  79. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  80. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  81. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  82. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  83. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  84. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  85. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  86. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  87. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
  88. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  89. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  90. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  91. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  92. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  93. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  94. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  95. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  96. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  97. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  98. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  99. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  100. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  101. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  102. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  103. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  104. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  105. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  106. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  107. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  108. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  109. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  110. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  111. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  112. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  113. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  114. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  115. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  116. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  117. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  118. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  119. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  120. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  121. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  122. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  123. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  124. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  125. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  126. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  127. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  128. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  129. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  130. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  131. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  132. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  133. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  134. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  135. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  136. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  137. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  138. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  139. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  140. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  141. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  142. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  143. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  144. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  145. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  146. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  147. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  148. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  149. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  150. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  151. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  152. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  153. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  154. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  155. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  156. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  157. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  158. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  159. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  160. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  161. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  162. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  163. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  164. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  165. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  166. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  167. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  168. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  169. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  170. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  171. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  172. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  173. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  174. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  175. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  176. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  177. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  178. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  179. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  180. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  181. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  182. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  183. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  184. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  185. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  186. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  187. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  188. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  189. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  190. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  191. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  192. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  193. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  194. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  195. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  196. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  197. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  198. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  199. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  200. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  201. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  202. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  203. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  204. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  205. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  206. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  207. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  208. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/declarative/types.py +0 -0
  209. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/README.md +0 -0
  210. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  211. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  212. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  213. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  214. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  215. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  216. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  217. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  218. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  219. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  220. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  221. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  222. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  223. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  224. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  225. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  226. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  227. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  228. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  229. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  230. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  231. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  232. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  233. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  234. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  235. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  236. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  237. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  238. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  239. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  240. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  241. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  242. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  243. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  244. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  245. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  246. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  247. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  248. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  249. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  250. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  251. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  252. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  253. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  254. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/file_based/types.py +0 -0
  255. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/http_config.py +0 -0
  256. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/http_logger.py +0 -0
  257. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/message/__init__.py +0 -0
  258. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/message/repository.py +0 -0
  259. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/source.py +0 -0
  260. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  261. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/__init__.py +0 -0
  262. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  263. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  264. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  265. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  266. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  267. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  268. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  269. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  270. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  271. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  272. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  273. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  274. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  275. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  276. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  277. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  278. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  279. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  280. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  281. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  282. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  283. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  284. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  285. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  286. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  287. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  288. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  289. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  290. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  291. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  292. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/core.py +0 -0
  293. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  294. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  295. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  296. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  297. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  298. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  299. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  300. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  301. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  302. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  303. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  304. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  305. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/http.py +0 -0
  306. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  307. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  308. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  309. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  310. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  311. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  312. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  313. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  314. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  315. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/types.py +0 -0
  316. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/utils/__init__.py +0 -0
  317. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/utils/casing.py +0 -0
  318. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  319. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  320. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  321. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/utils/transform.py +0 -0
  322. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sources/utils/types.py +0 -0
  323. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/__init__.py +0 -0
  324. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/_util/__init__.py +0 -0
  325. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/_util/hashing.py +0 -0
  326. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  327. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/constants.py +0 -0
  328. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/exceptions.py +0 -0
  329. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/secrets.py +0 -0
  330. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/shared/__init__.py +0 -0
  331. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  332. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  333. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/sql/types.py +0 -0
  334. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/__init__.py +0 -0
  335. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/catalog_builder.py +0 -0
  336. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  337. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  338. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  339. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  340. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/mock_http/request.py +0 -0
  341. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/mock_http/response.py +0 -0
  342. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  343. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/state_builder.py +0 -0
  344. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/utils/__init__.py +0 -0
  345. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/utils/data.py +0 -0
  346. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  347. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  348. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/test/utils/reading.py +0 -0
  349. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/__init__.py +0 -0
  350. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  351. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/analytics_message.py +0 -0
  352. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/constants.py +0 -0
  353. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  354. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  355. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/event_timing.py +0 -0
  356. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  357. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  358. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/message_utils.py +0 -0
  359. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  360. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/print_buffer.py +0 -0
  361. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  362. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/slice_hasher.py +0 -0
  363. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  364. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  365. {airbyte_cdk-6.38.2 → airbyte_cdk-6.38.3.dev4100}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.38.2
3
+ Version: 6.38.3.dev4100
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -22,7 +22,7 @@ from requests import PreparedRequest, Response, Session
22
22
 
23
23
  from airbyte_cdk.connector import TConfig
24
24
  from airbyte_cdk.exception_handler import init_uncaught_exception_handler
25
- from airbyte_cdk.logger import init_logger
25
+ from airbyte_cdk.logger import PRINT_BUFFER, init_logger
26
26
  from airbyte_cdk.models import (
27
27
  AirbyteConnectionStatus,
28
28
  AirbyteMessage,
@@ -337,11 +337,11 @@ def launch(source: Source, args: List[str]) -> None:
337
337
  parsed_args = source_entrypoint.parse_args(args)
338
338
  # temporarily removes the PrintBuffer because we're seeing weird print behavior for concurrent syncs
339
339
  # Refer to: https://github.com/airbytehq/oncall/issues/6235
340
- # with PrintBuffer():
341
- for message in source_entrypoint.run(parsed_args):
342
- # simply printing is creating issues for concurrent CDK as Python uses different two instructions to print: one for the message and
343
- # the other for the break line. Adding `\n` to the message ensure that both are printed at the same time
344
- print(f"{message}\n", end="", flush=True)
340
+ with PRINT_BUFFER:
341
+ for message in source_entrypoint.run(parsed_args):
342
+ # simply printing is creating issues for concurrent CDK as Python uses different two instructions to print: one for the message and
343
+ # the other for the break line. Adding `\n` to the message ensure that both are printed at the same time
344
+ print(f"{message}\n", end="")
345
345
 
346
346
 
347
347
  def _init_internal_request_filter() -> None:
@@ -16,8 +16,11 @@ from airbyte_cdk.models import (
16
16
  Level,
17
17
  Type,
18
18
  )
19
+ from airbyte_cdk.utils import PrintBuffer
19
20
  from airbyte_cdk.utils.airbyte_secrets_utils import filter_secrets
20
21
 
22
+ PRINT_BUFFER = PrintBuffer(flush_interval=0.1)
23
+
21
24
  LOGGING_CONFIG = {
22
25
  "version": 1,
23
26
  "disable_existing_loggers": False,
@@ -27,7 +30,7 @@ LOGGING_CONFIG = {
27
30
  "handlers": {
28
31
  "console": {
29
32
  "class": "logging.StreamHandler",
30
- "stream": "ext://sys.stdout",
33
+ "stream": PRINT_BUFFER,
31
34
  "formatter": "airbyte",
32
35
  },
33
36
  },
@@ -1476,7 +1476,19 @@ class ModelToComponentFactory:
1476
1476
  try:
1477
1477
  module_ref = importlib.import_module(module_name_full)
1478
1478
  except ModuleNotFoundError as e:
1479
- raise ValueError(f"Could not load module `{module_name_full}`.") from e
1479
+ if split[0] == "source_declarative_manifest":
1480
+ # During testing, the modules containing the custom components are not moved to source_declarative_manifest. In order to run the test, add the source folder to your PYTHONPATH or add it runtime using sys.path.append
1481
+ try:
1482
+ import os
1483
+
1484
+ module_name_with_source_declarative_manifest = ".".join(split[1:-1])
1485
+ module_ref = importlib.import_module(
1486
+ module_name_with_source_declarative_manifest
1487
+ )
1488
+ except ModuleNotFoundError:
1489
+ raise ValueError(f"Could not load module `{module_name_full}`.") from e
1490
+ else:
1491
+ raise ValueError(f"Could not load module `{module_name_full}`.") from e
1480
1492
 
1481
1493
  try:
1482
1494
  return getattr(module_ref, class_name)
@@ -39,13 +39,18 @@ class YamlDeclarativeSource(ConcurrentDeclarativeSource[List[AirbyteStateMessage
39
39
  )
40
40
 
41
41
  def _read_and_parse_yaml_file(self, path_to_yaml_file: str) -> ConnectionDefinition:
42
- package = self.__class__.__module__.split(".")[0]
42
+ try:
43
+ # For testing purposes, we want to allow to just pass a file
44
+ with open(path_to_yaml_file, "r") as f:
45
+ return yaml.safe_load(f) # type: ignore # we assume the yaml represents a ConnectionDefinition
46
+ except FileNotFoundError:
47
+ # Running inside the container, the working directory during an operation is not structured the same as the static files
48
+ package = self.__class__.__module__.split(".")[0]
43
49
 
44
- yaml_config = pkgutil.get_data(package, path_to_yaml_file)
45
- if yaml_config:
46
- decoded_yaml = yaml_config.decode()
47
- return self._parse(decoded_yaml)
48
- else:
50
+ yaml_config = pkgutil.get_data(package, path_to_yaml_file)
51
+ if yaml_config:
52
+ decoded_yaml = yaml_config.decode()
53
+ return self._parse(decoded_yaml)
49
54
  return {}
50
55
 
51
56
  def _emit_manifest_debug_message(self, extra_args: dict[str, Any]) -> None:
@@ -48,6 +48,9 @@ from airbyte_cdk.sources.file_based.exceptions import (
48
48
  FileBasedErrorsCollector,
49
49
  FileBasedSourceError,
50
50
  )
51
+ from airbyte_cdk.sources.file_based.file_based_stream_permissions_reader import (
52
+ AbstractFileBasedStreamPermissionsReader,
53
+ )
51
54
  from airbyte_cdk.sources.file_based.file_based_stream_reader import AbstractFileBasedStreamReader
52
55
  from airbyte_cdk.sources.file_based.file_types import default_parsers
53
56
  from airbyte_cdk.sources.file_based.file_types.file_type_parser import FileTypeParser
@@ -100,8 +103,10 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
100
103
  cursor_cls: Type[
101
104
  Union[AbstractConcurrentFileBasedCursor, AbstractFileBasedCursor]
102
105
  ] = FileBasedConcurrentCursor,
106
+ stream_permissions_reader: Optional[AbstractFileBasedStreamPermissionsReader] = None,
103
107
  ):
104
108
  self.stream_reader = stream_reader
109
+ self.stream_permissions_reader = stream_permissions_reader
105
110
  self.spec_class = spec_class
106
111
  self.config = config
107
112
  self.catalog = catalog
@@ -337,9 +342,23 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
337
342
  preserve_directory_structure=preserve_directory_structure(parsed_config),
338
343
  )
339
344
 
345
+ def _ensure_permissions_reader_available(self) -> None:
346
+ """
347
+ Validates that a stream permissions reader is available.
348
+ Raises a ValueError if the reader is not provided.
349
+ """
350
+ if not self.stream_permissions_reader:
351
+ raise ValueError(
352
+ "Stream permissions reader is required for streams that use permissions transfer mode."
353
+ )
354
+
340
355
  def _make_permissions_stream(
341
356
  self, stream_config: FileBasedStreamConfig, cursor: Optional[AbstractFileBasedCursor]
342
357
  ) -> AbstractFileBasedStream:
358
+ """
359
+ Creates a stream that reads permissions from files.
360
+ """
361
+ self._ensure_permissions_reader_available()
343
362
  return PermissionsFileBasedStream(
344
363
  config=stream_config,
345
364
  catalog_schema=self.stream_schemas.get(stream_config.name),
@@ -350,6 +369,7 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
350
369
  validation_policy=self._validate_and_get_validation_policy(stream_config),
351
370
  errors_collector=self.errors_collector,
352
371
  cursor=cursor,
372
+ stream_permissions_reader=self.stream_permissions_reader, # type: ignore
353
373
  )
354
374
 
355
375
  def _make_file_based_stream(
@@ -370,9 +390,10 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
370
390
  def _make_identities_stream(
371
391
  self,
372
392
  ) -> Stream:
393
+ self._ensure_permissions_reader_available()
373
394
  return FileIdentitiesStream(
374
395
  catalog_schema=self.stream_schemas.get(FileIdentitiesStream.IDENTITIES_STREAM_NAME),
375
- stream_reader=self.stream_reader,
396
+ stream_permissions_reader=self.stream_permissions_reader, # type: ignore
376
397
  discovery_policy=self.discovery_policy,
377
398
  errors_collector=self.errors_collector,
378
399
  )
@@ -0,0 +1,109 @@
1
+ #
2
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ import logging
6
+ from abc import ABC, abstractmethod
7
+ from typing import Any, Dict, Iterable
8
+
9
+ from airbyte_cdk.sources.file_based.remote_file import RemoteFile
10
+
11
+
12
+ class AbstractFileBasedStreamPermissionsReader(ABC):
13
+ """
14
+ This class is responsible for reading file permissions and Identities from a source.
15
+ """
16
+
17
+ @abstractmethod
18
+ def get_file_acl_permissions(self, file: RemoteFile, logger: logging.Logger) -> Dict[str, Any]:
19
+ """
20
+ This function should return the allow list for a given file, i.e. the list of all identities and their permission levels associated with it
21
+
22
+ e.g.
23
+ def get_file_acl_permissions(self, file: RemoteFile, logger: logging.Logger):
24
+ api_conn = some_api.conn(credentials=SOME_CREDENTIALS)
25
+ result = api_conn.get_file_permissions_info(file.id)
26
+ return MyPermissionsModel(
27
+ id=result["id"],
28
+ access_control_list = result["access_control_list"],
29
+ is_public = result["is_public"],
30
+ ).dict()
31
+ """
32
+ raise NotImplementedError(
33
+ f"{self.__class__.__name__} does not implement get_file_acl_permissions(). To support ACL permissions, implement this method and update file_permissions_schema."
34
+ )
35
+
36
+ @abstractmethod
37
+ def load_identity_groups(self, logger: logging.Logger) -> Iterable[Dict[str, Any]]:
38
+ """
39
+ This function should return the Identities in a determined "space" or "domain" where the file metadata (ACLs) are fetched and ACLs items (Identities) exists.
40
+
41
+ e.g.
42
+ def load_identity_groups(self, logger: logging.Logger) -> Dict[str, Any]:
43
+ api_conn = some_api.conn(credentials=SOME_CREDENTIALS)
44
+ users_api = api_conn.users()
45
+ groups_api = api_conn.groups()
46
+ members_api = self.google_directory_service.members()
47
+ for user in users_api.list():
48
+ yield my_identity_model(id=user.id, name=user.name, email_address=user.email, type="user").dict()
49
+ for group in groups_api.list():
50
+ group_obj = my_identity_model(id=group.id, name=groups.name, email_address=user.email, type="group").dict()
51
+ for member in members_api.list(group=group):
52
+ group_obj.member_email_addresses = group_obj.member_email_addresses or []
53
+ group_obj.member_email_addresses.append(member.email)
54
+ yield group_obj.dict()
55
+ """
56
+ raise NotImplementedError(
57
+ f"{self.__class__.__name__} does not implement load_identity_groups(). To support identities, implement this method and update identities_schema."
58
+ )
59
+
60
+ @property
61
+ @abstractmethod
62
+ def file_permissions_schema(self) -> Dict[str, Any]:
63
+ """
64
+ This function should return the permissions schema for file permissions stream.
65
+
66
+ e.g.
67
+ def file_permissions_schema(self) -> Dict[str, Any]:
68
+ # you can also follow the patter we have for python connectors and have a json file and read from there e.g. schemas/identities.json
69
+ return {
70
+ "type": "object",
71
+ "properties": {
72
+ "id": { "type": "string" },
73
+ "file_path": { "type": "string" },
74
+ "access_control_list": {
75
+ "type": "array",
76
+ "items": { "type": "string" }
77
+ },
78
+ "publicly_accessible": { "type": "boolean" }
79
+ }
80
+ }
81
+ """
82
+ raise NotImplementedError(
83
+ f"{self.__class__.__name__} does not implement file_permissions_schema, please return json schema for your permissions streams."
84
+ )
85
+
86
+ @property
87
+ @abstractmethod
88
+ def identities_schema(self) -> Dict[str, Any]:
89
+ """
90
+ This function should return the identities schema for file identity stream.
91
+
92
+ e.g.
93
+ def identities_schema(self) -> Dict[str, Any]:
94
+ # you can also follow the patter we have for python connectors and have a json file and read from there e.g. schemas/identities.json
95
+ return {
96
+ "type": "object",
97
+ "properties": {
98
+ "id": { "type": "string" },
99
+ "remote_id": { "type": "string" },
100
+ "name": { "type": ["null", "string"] },
101
+ "email_address": { "type": ["null", "string"] },
102
+ "member_email_addresses": { "type": ["null", "array"] },
103
+ "type": { "type": "string" },
104
+ }
105
+ }
106
+ """
107
+ raise NotImplementedError(
108
+ f"{self.__class__.__name__} does not implement identities_schema, please return json schema for your identities stream."
109
+ )
@@ -184,97 +184,3 @@ class AbstractFileBasedStreamReader(ABC):
184
184
  makedirs(path.dirname(local_file_path), exist_ok=True)
185
185
  absolute_file_path = path.abspath(local_file_path)
186
186
  return [file_relative_path, local_file_path, absolute_file_path]
187
-
188
- @abstractmethod
189
- def get_file_acl_permissions(self, file: RemoteFile, logger: logging.Logger) -> Dict[str, Any]:
190
- """
191
- This function should return the allow list for a given file, i.e. the list of all identities and their permission levels associated with it
192
-
193
- e.g.
194
- def get_file_acl_permissions(self, file: RemoteFile, logger: logging.Logger):
195
- api_conn = some_api.conn(credentials=SOME_CREDENTIALS)
196
- result = api_conn.get_file_permissions_info(file.id)
197
- return MyPermissionsModel(
198
- id=result["id"],
199
- access_control_list = result["access_control_list"],
200
- is_public = result["is_public"],
201
- ).dict()
202
- """
203
- raise NotImplementedError(
204
- f"{self.__class__.__name__} does not implement get_file_acl_permissions(). To support ACL permissions, implement this method and update file_permissions_schema."
205
- )
206
-
207
- @abstractmethod
208
- def load_identity_groups(self, logger: logging.Logger) -> Iterable[Dict[str, Any]]:
209
- """
210
- This function should return the Identities in a determined "space" or "domain" where the file metadata (ACLs) are fetched and ACLs items (Identities) exists.
211
-
212
- e.g.
213
- def load_identity_groups(self, logger: logging.Logger) -> Dict[str, Any]:
214
- api_conn = some_api.conn(credentials=SOME_CREDENTIALS)
215
- users_api = api_conn.users()
216
- groups_api = api_conn.groups()
217
- members_api = self.google_directory_service.members()
218
- for user in users_api.list():
219
- yield my_identity_model(id=user.id, name=user.name, email_address=user.email, type="user").dict()
220
- for group in groups_api.list():
221
- group_obj = my_identity_model(id=group.id, name=groups.name, email_address=user.email, type="group").dict()
222
- for member in members_api.list(group=group):
223
- group_obj.member_email_addresses = group_obj.member_email_addresses or []
224
- group_obj.member_email_addresses.append(member.email)
225
- yield group_obj.dict()
226
- """
227
- raise NotImplementedError(
228
- f"{self.__class__.__name__} does not implement load_identity_groups(). To support identities, implement this method and update identities_schema."
229
- )
230
-
231
- @property
232
- @abstractmethod
233
- def file_permissions_schema(self) -> Dict[str, Any]:
234
- """
235
- This function should return the permissions schema for file permissions stream.
236
-
237
- e.g.
238
- def file_permissions_schema(self) -> Dict[str, Any]:
239
- # you can also follow the patter we have for python connectors and have a json file and read from there e.g. schemas/identities.json
240
- return {
241
- "type": "object",
242
- "properties": {
243
- "id": { "type": "string" },
244
- "file_path": { "type": "string" },
245
- "access_control_list": {
246
- "type": "array",
247
- "items": { "type": "string" }
248
- },
249
- "publicly_accessible": { "type": "boolean" }
250
- }
251
- }
252
- """
253
- raise NotImplementedError(
254
- f"{self.__class__.__name__} does not implement file_permissions_schema, please return json schema for your permissions streams."
255
- )
256
-
257
- @property
258
- @abstractmethod
259
- def identities_schema(self) -> Dict[str, Any]:
260
- """
261
- This function should return the identities schema for file identity stream.
262
-
263
- e.g.
264
- def identities_schema(self) -> Dict[str, Any]:
265
- # you can also follow the patter we have for python connectors and have a json file and read from there e.g. schemas/identities.json
266
- return {
267
- "type": "object",
268
- "properties": {
269
- "id": { "type": "string" },
270
- "remote_id": { "type": "string" },
271
- "name": { "type": ["null", "string"] },
272
- "email_address": { "type": ["null", "string"] },
273
- "member_email_addresses": { "type": ["null", "array"] },
274
- "type": { "type": "string" },
275
- }
276
- }
277
- """
278
- raise NotImplementedError(
279
- f"{self.__class__.__name__} does not implement identities_schema, please return json schema for your identities stream."
280
- )
@@ -8,7 +8,9 @@ from typing import Any, Dict, Iterable, Mapping, MutableMapping, Optional
8
8
  from airbyte_cdk.sources.file_based.config.file_based_stream_config import PrimaryKeyType
9
9
  from airbyte_cdk.sources.file_based.discovery_policy import AbstractDiscoveryPolicy
10
10
  from airbyte_cdk.sources.file_based.exceptions import FileBasedErrorsCollector
11
- from airbyte_cdk.sources.file_based.file_based_stream_reader import AbstractFileBasedStreamReader
11
+ from airbyte_cdk.sources.file_based.file_based_stream_permissions_reader import (
12
+ AbstractFileBasedStreamPermissionsReader,
13
+ )
12
14
  from airbyte_cdk.sources.streams.core import JsonSchema
13
15
  from airbyte_cdk.sources.streams.permissions.identities_stream import IdentitiesStream
14
16
 
@@ -24,13 +26,13 @@ class FileIdentitiesStream(IdentitiesStream):
24
26
  def __init__(
25
27
  self,
26
28
  catalog_schema: Optional[Mapping[str, Any]],
27
- stream_reader: AbstractFileBasedStreamReader,
29
+ stream_permissions_reader: AbstractFileBasedStreamPermissionsReader,
28
30
  discovery_policy: AbstractDiscoveryPolicy,
29
31
  errors_collector: FileBasedErrorsCollector,
30
32
  ) -> None:
31
33
  super().__init__()
32
34
  self.catalog_schema = catalog_schema
33
- self.stream_reader = stream_reader
35
+ self.stream_permissions_reader = stream_permissions_reader
34
36
  self._discovery_policy = discovery_policy
35
37
  self.errors_collector = errors_collector
36
38
  self._cursor: MutableMapping[str, Any] = {}
@@ -40,8 +42,8 @@ class FileIdentitiesStream(IdentitiesStream):
40
42
  return None
41
43
 
42
44
  def load_identity_groups(self) -> Iterable[Dict[str, Any]]:
43
- return self.stream_reader.load_identity_groups(logger=self.logger)
45
+ return self.stream_permissions_reader.load_identity_groups(logger=self.logger)
44
46
 
45
47
  @cache
46
48
  def get_json_schema(self) -> JsonSchema:
47
- return self.stream_reader.identities_schema
49
+ return self.stream_permissions_reader.identities_schema
@@ -7,6 +7,9 @@ from typing import Any, Dict, Iterable
7
7
 
8
8
  from airbyte_cdk.models import AirbyteLogMessage, AirbyteMessage, Level
9
9
  from airbyte_cdk.models import Type as MessageType
10
+ from airbyte_cdk.sources.file_based.file_based_stream_permissions_reader import (
11
+ AbstractFileBasedStreamPermissionsReader,
12
+ )
10
13
  from airbyte_cdk.sources.file_based.stream import DefaultFileBasedStream
11
14
  from airbyte_cdk.sources.file_based.types import StreamSlice
12
15
  from airbyte_cdk.sources.streams.core import JsonSchema
@@ -26,10 +29,16 @@ class PermissionsFileBasedStream(DefaultFileBasedStream):
26
29
  and schema definition, while this class handles the streaming interface.
27
30
  """
28
31
 
32
+ def __init__(
33
+ self, stream_permissions_reader: AbstractFileBasedStreamPermissionsReader, **kwargs: Any
34
+ ):
35
+ super().__init__(**kwargs)
36
+ self.stream_permissions_reader = stream_permissions_reader
37
+
29
38
  def _filter_schema_invalid_properties(
30
39
  self, configured_catalog_json_schema: Dict[str, Any]
31
40
  ) -> Dict[str, Any]:
32
- return self.stream_reader.file_permissions_schema
41
+ return self.stream_permissions_reader.file_permissions_schema
33
42
 
34
43
  def read_records_from_slice(self, stream_slice: StreamSlice) -> Iterable[AirbyteMessage]:
35
44
  """
@@ -40,7 +49,7 @@ class PermissionsFileBasedStream(DefaultFileBasedStream):
40
49
  no_permissions = False
41
50
  file_datetime_string = file.last_modified.strftime(self.DATE_TIME_FORMAT)
42
51
  try:
43
- permissions_record = self.stream_reader.get_file_acl_permissions(
52
+ permissions_record = self.stream_permissions_reader.get_file_acl_permissions(
44
53
  file, logger=self.logger
45
54
  )
46
55
  if not permissions_record:
@@ -82,4 +91,4 @@ class PermissionsFileBasedStream(DefaultFileBasedStream):
82
91
  Returns:
83
92
  The file permissions schema that defines the structure of permission records
84
93
  """
85
- return self.stream_reader.file_permissions_schema
94
+ return self.stream_permissions_reader.file_permissions_schema
@@ -276,7 +276,7 @@ class StreamPartition(Partition):
276
276
  def read(self) -> Iterable[Record]:
277
277
  """
278
278
  Read messages from the stream.
279
- If the StreamData is a Mapping, it will be converted to a Record.
279
+ If the StreamData is a Mapping or an AirbyteMessage of type RECORD, it will be converted to a Record.
280
280
  Otherwise, the message will be emitted on the message repository.
281
281
  """
282
282
  try:
@@ -292,6 +292,8 @@ class StreamPartition(Partition):
292
292
  stream_slice=copy.deepcopy(self._slice),
293
293
  stream_state=self._state,
294
294
  ):
295
+ # Noting we'll also need to support FileTransferRecordMessage if we want to support file-based connectors in this facade
296
+ # For now, file-based connectors have their own stream facade
295
297
  if isinstance(record_data, Mapping):
296
298
  data_to_return = dict(record_data)
297
299
  self._stream.transformer.transform(
@@ -302,6 +304,12 @@ class StreamPartition(Partition):
302
304
  stream_name=self.stream_name(),
303
305
  associated_slice=self._slice, # type: ignore [arg-type]
304
306
  )
307
+ elif isinstance(record_data, AirbyteMessage) and record_data.record is not None:
308
+ yield Record(
309
+ data=record_data.record.data or {},
310
+ stream_name=self.stream_name(),
311
+ associated_slice=self._slice, # type: ignore [arg-type]
312
+ )
305
313
  else:
306
314
  self._message_repository.emit_message(record_data)
307
315
  except Exception as e:
@@ -23,7 +23,7 @@ classifiers = [
23
23
  keywords = ["airbyte", "connector-development-kit", "cdk"]
24
24
 
25
25
  # Python CDK uses dynamic versioning: https://github.com/mtkennerly/poetry-dynamic-versioning
26
- version = "6.38.2" # Version will be calculated dynamically.
26
+ version = "6.38.3.dev04100" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false