airbyte-cdk 6.38.4__tar.gz → 6.38.5__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.4 → airbyte_cdk-6.38.5}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +9 -9
  3. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_based_source.py +24 -1
  4. airbyte_cdk-6.38.5/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +123 -0
  5. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -94
  6. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/identities_stream.py +7 -5
  7. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +12 -3
  8. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/pyproject.toml +1 -1
  9. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/LICENSE.txt +0 -0
  10. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/LICENSE_SHORT +0 -0
  11. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/README.md +0 -0
  12. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/__init__.py +0 -0
  13. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/cli/__init__.py +0 -0
  14. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  15. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  16. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  17. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/config_observation.py +0 -0
  18. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector.py +0 -0
  19. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/README.md +0 -0
  20. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/__init__.py +0 -0
  21. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  22. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/main.py +0 -0
  23. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/models.py +0 -0
  24. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  25. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  26. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  27. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  28. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  29. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/__init__.py +0 -0
  30. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/destination.py +0 -0
  31. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  32. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  33. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  34. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  35. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  36. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  37. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  38. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  39. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  40. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/entrypoint.py +0 -0
  41. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/exception_handler.py +0 -0
  42. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/logger.py +0 -0
  43. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/models/__init__.py +0 -0
  44. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  45. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  46. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  47. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/models/well_known_types.py +0 -0
  48. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/py.typed +0 -0
  49. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/__init__.py +0 -0
  50. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/abstract_source.py +0 -0
  51. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  52. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  53. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  54. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  55. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  56. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  57. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  58. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/config.py +0 -0
  59. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  60. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  61. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  62. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  63. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  64. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  65. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  66. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  67. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  68. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  69. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  70. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  71. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  72. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  73. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  74. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  75. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  76. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  77. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  78. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  79. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  80. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  81. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  82. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  83. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  84. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  85. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  86. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  87. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  88. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  89. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  90. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  91. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  92. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  93. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  94. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  95. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  96. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  97. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  98. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  99. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  100. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  101. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  102. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  103. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  104. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  105. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  106. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  107. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  108. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  109. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  110. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  111. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  112. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  113. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  114. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  115. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  116. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  117. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  118. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  119. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  120. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  121. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  122. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  123. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  124. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  125. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  126. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  127. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  128. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  129. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  130. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  131. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  132. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  133. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
  134. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  135. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  136. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  137. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  138. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  139. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  140. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  141. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  142. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  143. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  144. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  145. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  146. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  147. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  148. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  149. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  150. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  151. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  152. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  153. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  154. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  155. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  156. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  157. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  158. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  159. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  160. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  161. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  162. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  163. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  164. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  165. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  166. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  167. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  168. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  169. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  170. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  171. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  172. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  173. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  174. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  175. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  176. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  177. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  178. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  179. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  180. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  181. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  182. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  183. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  184. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  185. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  186. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  187. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  188. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  189. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  190. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  191. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  192. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  193. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  194. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  195. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  196. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  197. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  198. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  199. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  200. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  201. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  202. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  203. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  204. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  205. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  206. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/types.py +0 -0
  207. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  208. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/README.md +0 -0
  209. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  210. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  211. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  212. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  213. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  214. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  215. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  216. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  217. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  218. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  219. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  220. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  221. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  222. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  223. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  224. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  225. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  226. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  227. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  228. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  229. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  230. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  231. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  232. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  233. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  234. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  235. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  236. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  237. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  238. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  239. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  240. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  241. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  242. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  243. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  244. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  245. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  246. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  247. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  248. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  249. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  250. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  251. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  252. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  253. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/file_based/types.py +0 -0
  254. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/http_config.py +0 -0
  255. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/http_logger.py +0 -0
  256. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/message/__init__.py +0 -0
  257. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/message/repository.py +0 -0
  258. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/source.py +0 -0
  259. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  260. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/__init__.py +0 -0
  261. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  262. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  263. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  264. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  265. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  266. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  267. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  268. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  269. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  270. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  271. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  272. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  273. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  274. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  275. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  276. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  277. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  278. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  279. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  280. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  281. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  282. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  283. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  284. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  285. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  286. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  287. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  288. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  289. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  290. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  291. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  292. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/core.py +0 -0
  293. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  294. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  295. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  296. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  297. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  298. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  299. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  300. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  301. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  302. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  303. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  304. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  305. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/http.py +0 -0
  306. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  307. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  308. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  309. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  310. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  311. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  312. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  313. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  314. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  315. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/types.py +0 -0
  316. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/utils/__init__.py +0 -0
  317. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/utils/casing.py +0 -0
  318. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  319. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  320. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  321. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/utils/transform.py +0 -0
  322. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sources/utils/types.py +0 -0
  323. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/__init__.py +0 -0
  324. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/_util/__init__.py +0 -0
  325. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/_util/hashing.py +0 -0
  326. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  327. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/constants.py +0 -0
  328. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/exceptions.py +0 -0
  329. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/secrets.py +0 -0
  330. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/shared/__init__.py +0 -0
  331. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  332. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  333. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/sql/types.py +0 -0
  334. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/__init__.py +0 -0
  335. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/catalog_builder.py +0 -0
  336. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  337. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  338. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  339. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  340. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/mock_http/request.py +0 -0
  341. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/mock_http/response.py +0 -0
  342. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  343. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/state_builder.py +0 -0
  344. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/utils/__init__.py +0 -0
  345. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/utils/data.py +0 -0
  346. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  347. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  348. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/test/utils/reading.py +0 -0
  349. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/__init__.py +0 -0
  350. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  351. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/analytics_message.py +0 -0
  352. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/constants.py +0 -0
  353. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  354. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  355. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/event_timing.py +0 -0
  356. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  357. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  358. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/message_utils.py +0 -0
  359. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  360. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/print_buffer.py +0 -0
  361. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  362. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/slice_hasher.py +0 -0
  363. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  364. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  365. {airbyte_cdk-6.38.4 → airbyte_cdk-6.38.5}/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.4
3
+ Version: 6.38.5
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -109,7 +109,7 @@ definitions:
109
109
  description: List of transformations (path and corresponding value) that will be added to the record.
110
110
  type: array
111
111
  items:
112
- - "$ref": "#/definitions/AddedFieldDefinition"
112
+ "$ref": "#/definitions/AddedFieldDefinition"
113
113
  $parameters:
114
114
  type: object
115
115
  additionalProperties: true
@@ -1657,7 +1657,7 @@ definitions:
1657
1657
  description: List of potentially nested fields describing the full path of the field to extract. Use "*" to extract all values from an array. See more info in the [docs](https://docs.airbyte.com/connector-development/config-based/understanding-the-yaml-file/record-selector).
1658
1658
  type: array
1659
1659
  items:
1660
- - type: string
1660
+ type: string
1661
1661
  interpolation_context:
1662
1662
  - config
1663
1663
  examples:
@@ -2073,7 +2073,7 @@ definitions:
2073
2073
  type: array
2074
2074
  default: []
2075
2075
  items:
2076
- - type: string
2076
+ type: string
2077
2077
  interpolation_context:
2078
2078
  - config
2079
2079
  key_pointer:
@@ -2081,7 +2081,7 @@ definitions:
2081
2081
  description: List of potentially nested fields describing the full path of the field key to extract.
2082
2082
  type: array
2083
2083
  items:
2084
- - type: string
2084
+ type: string
2085
2085
  interpolation_context:
2086
2086
  - config
2087
2087
  type_pointer:
@@ -2089,13 +2089,13 @@ definitions:
2089
2089
  description: List of potentially nested fields describing the full path of the field type to extract.
2090
2090
  type: array
2091
2091
  items:
2092
- - type: string
2092
+ type: string
2093
2093
  interpolation_context:
2094
2094
  - config
2095
2095
  types_mapping:
2096
2096
  type: array
2097
2097
  items:
2098
- - "$ref": "#/definitions/TypesMap"
2098
+ "$ref": "#/definitions/TypesMap"
2099
2099
  $parameters:
2100
2100
  type: object
2101
2101
  additionalProperties: true
@@ -2251,7 +2251,7 @@ definitions:
2251
2251
  description: A path to field that needs to be flattened.
2252
2252
  type: array
2253
2253
  items:
2254
- - type: string
2254
+ type: string
2255
2255
  examples:
2256
2256
  - ["data"]
2257
2257
  - ["data", "*", "field"]
@@ -3526,7 +3526,7 @@ definitions:
3526
3526
  description: A list of potentially nested fields indicating the full path where value will be added or updated.
3527
3527
  type: array
3528
3528
  items:
3529
- - type: string
3529
+ type: string
3530
3530
  interpolation_context:
3531
3531
  - config
3532
3532
  - components_values
@@ -3602,7 +3602,7 @@ definitions:
3602
3602
  description: A list of potentially nested fields indicating the full path in source config file where streams configs located.
3603
3603
  type: array
3604
3604
  items:
3605
- - type: string
3605
+ type: string
3606
3606
  interpolation_context:
3607
3607
  - parameters
3608
3608
  examples:
@@ -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
@@ -234,6 +239,8 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
234
239
  try:
235
240
  parsed_config = self._get_parsed_config(config)
236
241
  self.stream_reader.config = parsed_config
242
+ if self.stream_permissions_reader:
243
+ self.stream_permissions_reader.config = parsed_config
237
244
  streams: List[Stream] = []
238
245
  for stream_config in parsed_config.streams:
239
246
  # Like state_manager, `catalog_stream` may be None during `check`
@@ -337,9 +344,23 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
337
344
  preserve_directory_structure=preserve_directory_structure(parsed_config),
338
345
  )
339
346
 
347
+ def _ensure_permissions_reader_available(self) -> None:
348
+ """
349
+ Validates that a stream permissions reader is available.
350
+ Raises a ValueError if the reader is not provided.
351
+ """
352
+ if not self.stream_permissions_reader:
353
+ raise ValueError(
354
+ "Stream permissions reader is required for streams that use permissions transfer mode."
355
+ )
356
+
340
357
  def _make_permissions_stream(
341
358
  self, stream_config: FileBasedStreamConfig, cursor: Optional[AbstractFileBasedCursor]
342
359
  ) -> AbstractFileBasedStream:
360
+ """
361
+ Creates a stream that reads permissions from files.
362
+ """
363
+ self._ensure_permissions_reader_available()
343
364
  return PermissionsFileBasedStream(
344
365
  config=stream_config,
345
366
  catalog_schema=self.stream_schemas.get(stream_config.name),
@@ -350,6 +371,7 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
350
371
  validation_policy=self._validate_and_get_validation_policy(stream_config),
351
372
  errors_collector=self.errors_collector,
352
373
  cursor=cursor,
374
+ stream_permissions_reader=self.stream_permissions_reader, # type: ignore
353
375
  )
354
376
 
355
377
  def _make_file_based_stream(
@@ -370,9 +392,10 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
370
392
  def _make_identities_stream(
371
393
  self,
372
394
  ) -> Stream:
395
+ self._ensure_permissions_reader_available()
373
396
  return FileIdentitiesStream(
374
397
  catalog_schema=self.stream_schemas.get(FileIdentitiesStream.IDENTITIES_STREAM_NAME),
375
- stream_reader=self.stream_reader,
398
+ stream_permissions_reader=self.stream_permissions_reader, # type: ignore
376
399
  discovery_policy=self.discovery_policy,
377
400
  errors_collector=self.errors_collector,
378
401
  )
@@ -0,0 +1,123 @@
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, Optional
8
+
9
+ from airbyte_cdk.sources.file_based import AbstractFileBasedSpec
10
+ from airbyte_cdk.sources.file_based.remote_file import RemoteFile
11
+
12
+
13
+ class AbstractFileBasedStreamPermissionsReader(ABC):
14
+ """
15
+ This class is responsible for reading file permissions and Identities from a source.
16
+ """
17
+
18
+ def __init__(self) -> None:
19
+ self._config = None
20
+
21
+ @property
22
+ def config(self) -> Optional[AbstractFileBasedSpec]:
23
+ return self._config
24
+
25
+ @config.setter
26
+ @abstractmethod
27
+ def config(self, value: AbstractFileBasedSpec) -> None:
28
+ """
29
+ FileBasedSource reads the config from disk and parses it, and once parsed, the source sets the config on its StreamReader.
30
+
31
+ Note: FileBasedSource only requires the keys defined in the abstract config, whereas concrete implementations of StreamReader
32
+ will require keys that (for example) allow it to authenticate with the 3rd party.
33
+
34
+ Therefore, concrete implementations of AbstractFileBasedStreamPermissionsReader's's config setter should assert that `value` is of the correct
35
+ config type for that type of StreamReader.
36
+ """
37
+ ...
38
+
39
+ @abstractmethod
40
+ def get_file_acl_permissions(self, file: RemoteFile, logger: logging.Logger) -> Dict[str, Any]:
41
+ """
42
+ 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
43
+
44
+ e.g.
45
+ def get_file_acl_permissions(self, file: RemoteFile, logger: logging.Logger):
46
+ api_conn = some_api.conn(credentials=SOME_CREDENTIALS)
47
+ result = api_conn.get_file_permissions_info(file.id)
48
+ return MyPermissionsModel(
49
+ id=result["id"],
50
+ access_control_list = result["access_control_list"],
51
+ is_public = result["is_public"],
52
+ ).dict()
53
+ """
54
+ ...
55
+
56
+ @abstractmethod
57
+ def load_identity_groups(self, logger: logging.Logger) -> Iterable[Dict[str, Any]]:
58
+ """
59
+ This function should return the Identities in a determined "space" or "domain" where the file metadata (ACLs) are fetched and ACLs items (Identities) exists.
60
+
61
+ e.g.
62
+ def load_identity_groups(self, logger: logging.Logger) -> Iterable[Dict[str, Any]]:
63
+ api_conn = some_api.conn(credentials=SOME_CREDENTIALS)
64
+ users_api = api_conn.users()
65
+ groups_api = api_conn.groups()
66
+ members_api = self.google_directory_service.members()
67
+ for user in users_api.list():
68
+ yield my_identity_model(id=user.id, name=user.name, email_address=user.email, type="user").dict()
69
+ for group in groups_api.list():
70
+ group_obj = my_identity_model(id=group.id, name=groups.name, email_address=user.email, type="group").dict()
71
+ for member in members_api.list(group=group):
72
+ group_obj.member_email_addresses = group_obj.member_email_addresses or []
73
+ group_obj.member_email_addresses.append(member.email)
74
+ yield group_obj.dict()
75
+ """
76
+ ...
77
+
78
+ @property
79
+ @abstractmethod
80
+ def file_permissions_schema(self) -> Dict[str, Any]:
81
+ """
82
+ This function should return the permissions schema for file permissions stream.
83
+
84
+ e.g.
85
+ def file_permissions_schema(self) -> Dict[str, Any]:
86
+ # you can also follow the pattern we have for python connectors and have a json file and read from there e.g. schemas/identities.json
87
+ return {
88
+ "type": "object",
89
+ "properties": {
90
+ "id": { "type": "string" },
91
+ "file_path": { "type": "string" },
92
+ "access_control_list": {
93
+ "type": "array",
94
+ "items": { "type": "string" }
95
+ },
96
+ "publicly_accessible": { "type": "boolean" }
97
+ }
98
+ }
99
+ """
100
+ ...
101
+
102
+ @property
103
+ @abstractmethod
104
+ def identities_schema(self) -> Dict[str, Any]:
105
+ """
106
+ This function should return the identities schema for file identity stream.
107
+
108
+ e.g.
109
+ def identities_schema(self) -> Dict[str, Any]:
110
+ # you can also follow the pattern we have for python connectors and have a json file and read from there e.g. schemas/identities.json
111
+ return {
112
+ "type": "object",
113
+ "properties": {
114
+ "id": { "type": "string" },
115
+ "remote_id": { "type": "string" },
116
+ "name": { "type": ["null", "string"] },
117
+ "email_address": { "type": ["null", "string"] },
118
+ "member_email_addresses": { "type": ["null", "array"] },
119
+ "type": { "type": "string" },
120
+ }
121
+ }
122
+ """
123
+ ...
@@ -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
@@ -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.4" # Version will be calculated dynamically.
26
+ version = "6.38.5" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false
File without changes
File without changes
File without changes