airbyte-cdk 6.26.0.dev4105__tar.gz → 6.26.1__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 (358) hide show
  1. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +14 -0
  3. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +39 -13
  4. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +7 -1
  5. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +24 -3
  6. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +46 -16
  7. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/schema/__init__.py +2 -0
  8. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +43 -5
  9. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -10
  10. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_based_source.py +1 -44
  11. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -33
  12. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -25
  13. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/__init__.py +1 -2
  14. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -29
  15. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/pyproject.toml +1 -1
  16. airbyte_cdk-6.26.0.dev4105/airbyte_cdk/sources/file_based/config/permissions.py +0 -34
  17. airbyte_cdk-6.26.0.dev4105/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -96
  18. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/LICENSE.txt +0 -0
  19. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/README.md +0 -0
  20. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/__init__.py +0 -0
  21. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/cli/__init__.py +0 -0
  22. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  23. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  24. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  25. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/config_observation.py +0 -0
  26. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/connector.py +0 -0
  27. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/connector_builder/README.md +0 -0
  28. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/connector_builder/__init__.py +0 -0
  29. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  30. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/connector_builder/main.py +0 -0
  31. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  32. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/connector_builder/models.py +0 -0
  33. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/__init__.py +0 -0
  34. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/destination.py +0 -0
  35. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  36. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  37. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  38. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  39. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  40. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  41. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  42. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  43. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  44. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/entrypoint.py +0 -0
  45. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/exception_handler.py +0 -0
  46. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/logger.py +0 -0
  47. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/models/__init__.py +0 -0
  48. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  49. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  50. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  51. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/models/well_known_types.py +0 -0
  52. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/py.typed +0 -0
  53. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/__init__.py +0 -0
  54. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/abstract_source.py +0 -0
  55. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  56. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  57. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  58. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  59. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  60. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  61. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  62. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/config.py +0 -0
  63. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  64. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  65. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  66. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  67. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  68. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  69. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  70. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  71. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  72. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  73. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  74. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  75. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  76. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  77. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  78. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  79. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  80. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  81. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  82. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  83. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  84. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  85. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  86. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  87. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  88. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  89. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  90. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  91. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  92. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  93. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  94. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  95. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  96. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  97. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  98. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  99. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  100. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  101. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  102. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  103. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  104. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  105. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  106. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  107. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  108. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  109. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  110. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  111. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  112. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  113. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  114. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  115. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  116. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  117. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  118. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  119. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  120. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  121. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  122. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  123. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  124. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  125. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  126. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  127. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  128. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  129. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  130. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  131. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  132. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  133. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  134. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  135. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  136. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  137. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  138. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  139. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  140. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  141. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  142. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  143. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  144. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  145. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  146. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  147. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  148. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  149. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  150. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  151. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  152. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  153. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  154. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  155. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  156. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  157. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  158. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  159. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  160. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  161. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  162. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  163. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  164. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  165. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  166. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  167. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  168. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  169. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  170. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  171. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  172. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  173. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  174. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  175. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  176. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  177. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  178. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  179. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  180. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  181. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  182. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  183. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  184. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  185. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  186. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  187. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  188. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  189. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  190. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  191. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  192. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  193. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  194. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  195. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  196. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  197. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  198. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  199. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  200. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  201. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  202. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  203. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/types.py +0 -0
  204. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  205. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  206. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  207. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  208. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/embedded/runner.py +0 -0
  209. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/embedded/tools.py +0 -0
  210. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/README.md +0 -0
  211. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  212. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  213. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  214. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  215. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  216. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  217. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  218. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  219. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  220. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  221. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  222. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  223. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  224. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  225. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  226. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  227. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  228. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  229. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  230. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  231. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  232. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  233. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  234. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  235. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  236. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  237. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  238. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  239. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  240. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  241. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  242. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  243. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  244. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  245. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  246. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  247. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  248. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  249. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  250. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/file_based/types.py +0 -0
  251. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/http_config.py +0 -0
  252. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/http_logger.py +0 -0
  253. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/message/__init__.py +0 -0
  254. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/message/repository.py +0 -0
  255. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/source.py +0 -0
  256. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/__init__.py +0 -0
  257. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  258. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  259. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  260. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  261. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  262. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  263. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  264. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  265. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  266. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  267. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  268. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  269. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  270. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  271. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  272. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  273. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  274. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  275. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  276. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  277. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  278. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  279. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  280. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  281. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  282. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  283. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  284. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  285. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  286. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  287. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/core.py +0 -0
  288. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  289. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  290. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  291. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  292. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  293. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  294. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  295. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  296. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  297. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  298. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  299. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  300. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/http.py +0 -0
  301. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  302. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  303. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  304. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  305. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  306. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  307. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  308. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  309. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/types.py +0 -0
  310. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/utils/__init__.py +0 -0
  311. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/utils/casing.py +0 -0
  312. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  313. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  314. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  315. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/utils/transform.py +0 -0
  316. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sources/utils/types.py +0 -0
  317. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/__init__.py +0 -0
  318. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/_util/__init__.py +0 -0
  319. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/_util/hashing.py +0 -0
  320. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  321. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/constants.py +0 -0
  322. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/exceptions.py +0 -0
  323. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/secrets.py +0 -0
  324. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/shared/__init__.py +0 -0
  325. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  326. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  327. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/sql/types.py +0 -0
  328. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/__init__.py +0 -0
  329. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/catalog_builder.py +0 -0
  330. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  331. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  332. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  333. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  334. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/mock_http/request.py +0 -0
  335. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/mock_http/response.py +0 -0
  336. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  337. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/state_builder.py +0 -0
  338. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/utils/__init__.py +0 -0
  339. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/utils/data.py +0 -0
  340. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  341. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  342. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/test/utils/reading.py +0 -0
  343. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/__init__.py +0 -0
  344. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  345. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/analytics_message.py +0 -0
  346. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/constants.py +0 -0
  347. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  348. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/event_timing.py +0 -0
  349. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  350. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  351. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/message_utils.py +0 -0
  352. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  353. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/print_buffer.py +0 -0
  354. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  355. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/slice_hasher.py +0 -0
  356. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  357. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  358. {airbyte_cdk-6.26.0.dev4105 → airbyte_cdk-6.26.1}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: airbyte-cdk
3
- Version: 6.26.0.dev4105
3
+ Version: 6.26.1
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  License: MIT
6
6
  Keywords: airbyte,connector-development-kit,cdk
@@ -1800,6 +1800,19 @@ definitions:
1800
1800
  $parameters:
1801
1801
  type: object
1802
1802
  additionalProperties: true
1803
+ ComplexFieldType:
1804
+ title: Schema Field Type
1805
+ description: (This component is experimental. Use at your own risk.) Represents a complex field type.
1806
+ type: object
1807
+ required:
1808
+ - field_type
1809
+ properties:
1810
+ field_type:
1811
+ type: string
1812
+ items:
1813
+ anyOf:
1814
+ - type: string
1815
+ - "$ref": "#/definitions/ComplexFieldType"
1803
1816
  TypesMap:
1804
1817
  title: Types Map
1805
1818
  description: (This component is experimental. Use at your own risk.) Represents a mapping between a current type and its corresponding target type.
@@ -1814,6 +1827,7 @@ definitions:
1814
1827
  - type: array
1815
1828
  items:
1816
1829
  type: string
1830
+ - "$ref": "#/definitions/ComplexFieldType"
1817
1831
  current_type:
1818
1832
  anyOf:
1819
1833
  - type: string
@@ -147,7 +147,7 @@ class ConcurrentPerPartitionCursor(Cursor):
147
147
  < cursor.state[self.cursor_field.cursor_field_key]
148
148
  ):
149
149
  self._new_global_cursor = copy.deepcopy(cursor.state)
150
- self._emit_state_message()
150
+ self._emit_state_message()
151
151
 
152
152
  def ensure_at_least_one_state_emitted(self) -> None:
153
153
  """
@@ -192,7 +192,8 @@ class ConcurrentPerPartitionCursor(Cursor):
192
192
  self._global_cursor,
193
193
  self._lookback_window if self._global_cursor else 0,
194
194
  )
195
- self._cursor_per_partition[self._to_partition_key(partition.partition)] = cursor
195
+ with self._lock:
196
+ self._cursor_per_partition[self._to_partition_key(partition.partition)] = cursor
196
197
  self._semaphore_per_partition[self._to_partition_key(partition.partition)] = (
197
198
  threading.Semaphore(0)
198
199
  )
@@ -210,16 +211,38 @@ class ConcurrentPerPartitionCursor(Cursor):
210
211
 
211
212
  def _ensure_partition_limit(self) -> None:
212
213
  """
213
- Ensure the maximum number of partitions is not exceeded. If so, the oldest added partition will be dropped.
214
+ Ensure the maximum number of partitions does not exceed the predefined limit.
215
+
216
+ Steps:
217
+ 1. Attempt to remove partitions that are marked as finished in `_finished_partitions`.
218
+ These partitions are considered processed and safe to delete.
219
+ 2. If the limit is still exceeded and no finished partitions are available for removal,
220
+ remove the oldest partition unconditionally. We expect failed partitions to be removed.
221
+
222
+ Logging:
223
+ - Logs a warning each time a partition is removed, indicating whether it was finished
224
+ or removed due to being the oldest.
214
225
  """
215
- while len(self._cursor_per_partition) > self.DEFAULT_MAX_PARTITIONS_NUMBER - 1:
216
- self._over_limit += 1
217
- oldest_partition = self._cursor_per_partition.popitem(last=False)[
218
- 0
219
- ] # Remove the oldest partition
220
- logger.warning(
221
- f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self._over_limit}."
222
- )
226
+ with self._lock:
227
+ while len(self._cursor_per_partition) > self.DEFAULT_MAX_PARTITIONS_NUMBER - 1:
228
+ # Try removing finished partitions first
229
+ for partition_key in list(self._cursor_per_partition.keys()):
230
+ if partition_key in self._finished_partitions:
231
+ oldest_partition = self._cursor_per_partition.pop(
232
+ partition_key
233
+ ) # Remove the oldest partition
234
+ logger.warning(
235
+ f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self._over_limit}."
236
+ )
237
+ break
238
+ else:
239
+ # If no finished partitions can be removed, fall back to removing the oldest partition
240
+ oldest_partition = self._cursor_per_partition.popitem(last=False)[
241
+ 1
242
+ ] # Remove the oldest partition
243
+ logger.warning(
244
+ f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self._over_limit}."
245
+ )
223
246
 
224
247
  def _set_initial_state(self, stream_state: StreamState) -> None:
225
248
  """
@@ -264,7 +287,10 @@ class ConcurrentPerPartitionCursor(Cursor):
264
287
  if not stream_state:
265
288
  return
266
289
 
267
- if self._PERPARTITION_STATE_KEY not in stream_state:
290
+ if (
291
+ self._PERPARTITION_STATE_KEY not in stream_state
292
+ and self._GLOBAL_STATE_KEY not in stream_state
293
+ ):
268
294
  # We assume that `stream_state` is in a global format that can be applied to all partitions.
269
295
  # Example: {"global_state_format_key": "global_state_format_value"}
270
296
  self._global_cursor = deepcopy(stream_state)
@@ -273,7 +299,7 @@ class ConcurrentPerPartitionCursor(Cursor):
273
299
  else:
274
300
  self._lookback_window = int(stream_state.get("lookback_window", 0))
275
301
 
276
- for state in stream_state[self._PERPARTITION_STATE_KEY]:
302
+ for state in stream_state.get(self._PERPARTITION_STATE_KEY, []):
277
303
  self._cursor_per_partition[self._to_partition_key(state["partition"])] = (
278
304
  self._create_cursor(state["cursor"])
279
305
  )
@@ -736,8 +736,13 @@ class HttpResponseFilter(BaseModel):
736
736
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
737
737
 
738
738
 
739
+ class ComplexFieldType(BaseModel):
740
+ field_type: str
741
+ items: Optional[Union[str, ComplexFieldType]] = None
742
+
743
+
739
744
  class TypesMap(BaseModel):
740
- target_type: Union[str, List[str]]
745
+ target_type: Union[str, List[str], ComplexFieldType]
741
746
  current_type: Union[str, List[str]]
742
747
  condition: Optional[str] = None
743
748
 
@@ -2260,6 +2265,7 @@ class DynamicDeclarativeStream(BaseModel):
2260
2265
  )
2261
2266
 
2262
2267
 
2268
+ ComplexFieldType.update_forward_refs()
2263
2269
  CompositeErrorHandler.update_forward_refs()
2264
2270
  DeclarativeSource1.update_forward_refs()
2265
2271
  DeclarativeSource2.update_forward_refs()
@@ -133,6 +133,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
133
133
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
134
134
  CheckStream as CheckStreamModel,
135
135
  )
136
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
137
+ ComplexFieldType as ComplexFieldTypeModel,
138
+ )
136
139
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
137
140
  ComponentMappingDefinition as ComponentMappingDefinitionModel,
138
141
  )
@@ -429,6 +432,7 @@ from airbyte_cdk.sources.declarative.retrievers import (
429
432
  SimpleRetrieverTestReadDecorator,
430
433
  )
431
434
  from airbyte_cdk.sources.declarative.schema import (
435
+ ComplexFieldType,
432
436
  DefaultSchemaLoader,
433
437
  DynamicSchemaLoader,
434
438
  InlineSchemaLoader,
@@ -572,6 +576,7 @@ class ModelToComponentFactory:
572
576
  DynamicSchemaLoaderModel: self.create_dynamic_schema_loader,
573
577
  SchemaTypeIdentifierModel: self.create_schema_type_identifier,
574
578
  TypesMapModel: self.create_types_map,
579
+ ComplexFieldTypeModel: self.create_complex_field_type,
575
580
  JwtAuthenticatorModel: self.create_jwt_authenticator,
576
581
  LegacyToPerPartitionStateMigrationModel: self.create_legacy_to_per_partition_state_migration,
577
582
  ListPartitionRouterModel: self.create_list_partition_router,
@@ -1894,10 +1899,26 @@ class ModelToComponentFactory:
1894
1899
  ) -> InlineSchemaLoader:
1895
1900
  return InlineSchemaLoader(schema=model.schema_ or {}, parameters={})
1896
1901
 
1897
- @staticmethod
1898
- def create_types_map(model: TypesMapModel, **kwargs: Any) -> TypesMap:
1902
+ def create_complex_field_type(
1903
+ self, model: ComplexFieldTypeModel, config: Config, **kwargs: Any
1904
+ ) -> ComplexFieldType:
1905
+ items = (
1906
+ self._create_component_from_model(model=model.items, config=config)
1907
+ if isinstance(model.items, ComplexFieldTypeModel)
1908
+ else model.items
1909
+ )
1910
+
1911
+ return ComplexFieldType(field_type=model.field_type, items=items)
1912
+
1913
+ def create_types_map(self, model: TypesMapModel, config: Config, **kwargs: Any) -> TypesMap:
1914
+ target_type = (
1915
+ self._create_component_from_model(model=model.target_type, config=config)
1916
+ if isinstance(model.target_type, ComplexFieldTypeModel)
1917
+ else model.target_type
1918
+ )
1919
+
1899
1920
  return TypesMap(
1900
- target_type=model.target_type,
1921
+ target_type=target_type,
1901
1922
  current_type=model.current_type,
1902
1923
  condition=model.condition if model.condition is not None else "True",
1903
1924
  )
@@ -295,28 +295,58 @@ class SubstreamPartitionRouter(PartitionRouter):
295
295
  return
296
296
 
297
297
  if not parent_state and incremental_dependency:
298
- # Attempt to retrieve child state
299
- substream_state_values = list(stream_state.values())
300
- substream_state = substream_state_values[0] if substream_state_values else {}
301
- # Filter out per partition state. Because we pass the state to the parent stream in the format {cursor_field: substream_state}
302
- if isinstance(substream_state, (list, dict)):
303
- substream_state = {}
304
-
305
- parent_state = {}
306
-
307
- # Copy child state to parent streams with incremental dependencies
308
- if substream_state:
309
- for parent_config in self.parent_stream_configs:
310
- if parent_config.incremental_dependency:
311
- parent_state[parent_config.stream.name] = {
312
- parent_config.stream.cursor_field: substream_state
313
- }
298
+ # Migrate child state to parent state format
299
+ parent_state = self._migrate_child_state_to_parent_state(stream_state)
314
300
 
315
301
  # Set state for each parent stream with an incremental dependency
316
302
  for parent_config in self.parent_stream_configs:
317
303
  if parent_config.incremental_dependency:
318
304
  parent_config.stream.state = parent_state.get(parent_config.stream.name, {})
319
305
 
306
+ def _migrate_child_state_to_parent_state(self, stream_state: StreamState) -> StreamState:
307
+ """
308
+ Migrate the child stream state to the parent stream's state format.
309
+
310
+ This method converts the global or child state into a format compatible with parent
311
+ streams. The migration occurs only for parent streams with incremental dependencies.
312
+ The method filters out per-partition states and retains only the global state in the
313
+ format `{cursor_field: cursor_value}`.
314
+
315
+ Args:
316
+ stream_state (StreamState): The state to migrate. Expected formats include:
317
+ - {"updated_at": "2023-05-27T00:00:00Z"}
318
+ - {"states": [...] } (ignored during migration)
319
+
320
+ Returns:
321
+ StreamState: A migrated state for parent streams in the format:
322
+ {
323
+ "parent_stream_name": {"parent_stream_cursor": "2023-05-27T00:00:00Z"}
324
+ }
325
+
326
+ Example:
327
+ Input: {"updated_at": "2023-05-27T00:00:00Z"}
328
+ Output: {
329
+ "parent_stream_name": {"parent_stream_cursor": "2023-05-27T00:00:00Z"}
330
+ }
331
+ """
332
+ substream_state_values = list(stream_state.values())
333
+ substream_state = substream_state_values[0] if substream_state_values else {}
334
+
335
+ # Ignore per-partition states or invalid formats
336
+ if isinstance(substream_state, (list, dict)) or len(substream_state_values) != 1:
337
+ return {}
338
+
339
+ # Copy child state to parent streams with incremental dependencies
340
+ parent_state = {}
341
+ if substream_state:
342
+ for parent_config in self.parent_stream_configs:
343
+ if parent_config.incremental_dependency:
344
+ parent_state[parent_config.stream.name] = {
345
+ parent_config.stream.cursor_field: substream_state
346
+ }
347
+
348
+ return parent_state
349
+
320
350
  def get_stream_state(self) -> Optional[Mapping[str, StreamState]]:
321
351
  """
322
352
  Get the state of the parent streams.
@@ -4,6 +4,7 @@
4
4
 
5
5
  from airbyte_cdk.sources.declarative.schema.default_schema_loader import DefaultSchemaLoader
6
6
  from airbyte_cdk.sources.declarative.schema.dynamic_schema_loader import (
7
+ ComplexFieldType,
7
8
  DynamicSchemaLoader,
8
9
  SchemaTypeIdentifier,
9
10
  TypesMap,
@@ -18,6 +19,7 @@ __all__ = [
18
19
  "SchemaLoader",
19
20
  "InlineSchemaLoader",
20
21
  "DynamicSchemaLoader",
22
+ "ComplexFieldType",
21
23
  "TypesMap",
22
24
  "SchemaTypeIdentifier",
23
25
  ]
@@ -18,7 +18,7 @@ from airbyte_cdk.sources.declarative.transformations import RecordTransformation
18
18
  from airbyte_cdk.sources.source import ExperimentalClassWarning
19
19
  from airbyte_cdk.sources.types import Config, StreamSlice, StreamState
20
20
 
21
- AIRBYTE_DATA_TYPES: Mapping[str, Mapping[str, Any]] = {
21
+ AIRBYTE_DATA_TYPES: Mapping[str, MutableMapping[str, Any]] = {
22
22
  "string": {"type": ["null", "string"]},
23
23
  "boolean": {"type": ["null", "boolean"]},
24
24
  "date": {"type": ["null", "string"], "format": "date"},
@@ -45,6 +45,25 @@ AIRBYTE_DATA_TYPES: Mapping[str, Mapping[str, Any]] = {
45
45
  }
46
46
 
47
47
 
48
+ @deprecated("This class is experimental. Use at your own risk.", category=ExperimentalClassWarning)
49
+ @dataclass(frozen=True)
50
+ class ComplexFieldType:
51
+ """
52
+ Identifies complex field type
53
+ """
54
+
55
+ field_type: str
56
+ items: Optional[Union[str, "ComplexFieldType"]] = None
57
+
58
+ def __post_init__(self) -> None:
59
+ """
60
+ Enforces that `items` is only used when `field_type` is a array
61
+ """
62
+ # `items_type` is valid only for array target types
63
+ if self.items and self.field_type != "array":
64
+ raise ValueError("'items' can only be used when 'field_type' is an array.")
65
+
66
+
48
67
  @deprecated("This class is experimental. Use at your own risk.", category=ExperimentalClassWarning)
49
68
  @dataclass(frozen=True)
50
69
  class TypesMap:
@@ -52,7 +71,7 @@ class TypesMap:
52
71
  Represents a mapping between a current type and its corresponding target type.
53
72
  """
54
73
 
55
- target_type: Union[List[str], str]
74
+ target_type: Union[List[str], str, ComplexFieldType]
56
75
  current_type: Union[List[str], str]
57
76
  condition: Optional[str]
58
77
 
@@ -135,8 +154,9 @@ class DynamicSchemaLoader(SchemaLoader):
135
154
  transformed_properties = self._transform(properties, {})
136
155
 
137
156
  return {
138
- "$schema": "http://json-schema.org/draft-07/schema#",
157
+ "$schema": "https://json-schema.org/draft-07/schema#",
139
158
  "type": "object",
159
+ "additionalProperties": True,
140
160
  "properties": transformed_properties,
141
161
  }
142
162
 
@@ -188,18 +208,36 @@ class DynamicSchemaLoader(SchemaLoader):
188
208
  first_type = self._get_airbyte_type(mapped_field_type[0])
189
209
  second_type = self._get_airbyte_type(mapped_field_type[1])
190
210
  return {"oneOf": [first_type, second_type]}
211
+
191
212
  elif isinstance(mapped_field_type, str):
192
213
  return self._get_airbyte_type(mapped_field_type)
214
+
215
+ elif isinstance(mapped_field_type, ComplexFieldType):
216
+ return self._resolve_complex_type(mapped_field_type)
217
+
193
218
  else:
194
219
  raise ValueError(
195
220
  f"Invalid data type. Available string or two items list of string. Got {mapped_field_type}."
196
221
  )
197
222
 
223
+ def _resolve_complex_type(self, complex_type: ComplexFieldType) -> Mapping[str, Any]:
224
+ if not complex_type.items:
225
+ return self._get_airbyte_type(complex_type.field_type)
226
+
227
+ field_type = self._get_airbyte_type(complex_type.field_type)
228
+ field_type["items"] = (
229
+ self._get_airbyte_type(complex_type.items)
230
+ if isinstance(complex_type.items, str)
231
+ else self._resolve_complex_type(complex_type.items)
232
+ )
233
+
234
+ return field_type
235
+
198
236
  def _replace_type_if_not_valid(
199
237
  self,
200
238
  field_type: Union[List[str], str],
201
239
  raw_schema: MutableMapping[str, Any],
202
- ) -> Union[List[str], str]:
240
+ ) -> Union[List[str], str, ComplexFieldType]:
203
241
  """
204
242
  Replaces a field type if it matches a type mapping in `types_map`.
205
243
  """
@@ -216,7 +254,7 @@ class DynamicSchemaLoader(SchemaLoader):
216
254
  return field_type
217
255
 
218
256
  @staticmethod
219
- def _get_airbyte_type(field_type: str) -> Mapping[str, Any]:
257
+ def _get_airbyte_type(field_type: str) -> MutableMapping[str, Any]:
220
258
  """
221
259
  Maps a field type to its corresponding Airbyte type definition.
222
260
  """
@@ -22,16 +22,6 @@ class DeliverRecords(BaseModel):
22
22
 
23
23
  delivery_type: Literal["use_records_transfer"] = Field("use_records_transfer", const=True)
24
24
 
25
- sync_acl_permissions: bool = Field(
26
- title="Include ACL Permissions",
27
- description="Joins Document allowlists to each stream.",
28
- default=False,
29
- airbyte_hidden=True,
30
- )
31
- domain: Optional[str] = Field(
32
- title="Domain", description="The domain of the identities.", airbyte_hidden=True
33
- )
34
-
35
25
 
36
26
  class DeliverRawFiles(BaseModel):
37
27
  class Config(OneOfOptionConfig):
@@ -49,11 +49,7 @@ from airbyte_cdk.sources.file_based.schema_validation_policies import (
49
49
  DEFAULT_SCHEMA_VALIDATION_POLICIES,
50
50
  AbstractSchemaValidationPolicy,
51
51
  )
52
- from airbyte_cdk.sources.file_based.stream import (
53
- AbstractFileBasedStream,
54
- DefaultFileBasedStream,
55
- IdentitiesStream,
56
- )
52
+ from airbyte_cdk.sources.file_based.stream import AbstractFileBasedStream, DefaultFileBasedStream
57
53
  from airbyte_cdk.sources.file_based.stream.concurrent.adapters import FileBasedStreamFacade
58
54
  from airbyte_cdk.sources.file_based.stream.concurrent.cursor import (
59
55
  AbstractConcurrentFileBasedCursor,
@@ -61,7 +57,6 @@ from airbyte_cdk.sources.file_based.stream.concurrent.cursor import (
61
57
  FileBasedFinalStateCursor,
62
58
  )
63
59
  from airbyte_cdk.sources.file_based.stream.cursor import AbstractFileBasedCursor
64
- from airbyte_cdk.sources.file_based.stream.identities_stream import IDENTITIES_STREAM_NAME
65
60
  from airbyte_cdk.sources.message.repository import InMemoryMessageRepository, MessageRepository
66
61
  from airbyte_cdk.sources.streams import Stream
67
62
  from airbyte_cdk.sources.streams.concurrent.cursor import CursorField
@@ -71,7 +66,6 @@ from airbyte_cdk.utils.traced_exception import AirbyteTracedException
71
66
  DEFAULT_CONCURRENCY = 100
72
67
  MAX_CONCURRENCY = 100
73
68
  INITIAL_N_PARTITIONS = MAX_CONCURRENCY // 2
74
- IDENTITIES_STREAM = "identities"
75
69
 
76
70
 
77
71
  class FileBasedSource(ConcurrentSourceAdapter, ABC):
@@ -163,9 +157,6 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
163
157
  errors = []
164
158
  tracebacks = []
165
159
  for stream in streams:
166
- if isinstance(stream, IdentitiesStream):
167
- # Probably need to check identities endpoint/api access but will skip for now.
168
- continue
169
160
  if not isinstance(stream, AbstractFileBasedStream):
170
161
  raise ValueError(f"Stream {stream} is not a file-based stream.")
171
162
  try:
@@ -173,7 +164,6 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
173
164
  availability_method = (
174
165
  stream.availability_strategy.check_availability
175
166
  if self._use_file_transfer(parsed_config)
176
- or self._sync_acl_permissions(parsed_config)
177
167
  else stream.availability_strategy.check_availability_and_parsability
178
168
  )
179
169
  (
@@ -299,10 +289,6 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
299
289
  )
300
290
 
301
291
  streams.append(stream)
302
-
303
- if self._sync_acl_permissions(parsed_config):
304
- identities_stream = self._make_identities_stream()
305
- streams.append(identities_stream)
306
292
  return streams
307
293
 
308
294
  except ValidationError as exc:
@@ -326,17 +312,6 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
326
312
  cursor=cursor,
327
313
  use_file_transfer=self._use_file_transfer(parsed_config),
328
314
  preserve_directory_structure=self._preserve_directory_structure(parsed_config),
329
- sync_acl_permissions=self._sync_acl_permissions(parsed_config),
330
- )
331
-
332
- def _make_identities_stream(
333
- self,
334
- ) -> Stream:
335
- return IdentitiesStream(
336
- catalog_schema=self.stream_schemas.get(IDENTITIES_STREAM_NAME),
337
- stream_reader=self.stream_reader,
338
- discovery_policy=self.discovery_policy,
339
- errors_collector=self.errors_collector,
340
315
  )
341
316
 
342
317
  def _get_stream_from_catalog(
@@ -412,14 +387,6 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
412
387
  )
413
388
  return use_file_transfer
414
389
 
415
- @staticmethod
416
- def _use_records_transfer(parsed_config: AbstractFileBasedSpec) -> bool:
417
- use_records_transfer = (
418
- hasattr(parsed_config.delivery_method, "delivery_type")
419
- and parsed_config.delivery_method.delivery_type == "use_records_transfer"
420
- )
421
- return use_records_transfer
422
-
423
390
  @staticmethod
424
391
  def _preserve_directory_structure(parsed_config: AbstractFileBasedSpec) -> bool:
425
392
  """
@@ -441,13 +408,3 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
441
408
  ):
442
409
  return parsed_config.delivery_method.preserve_directory_structure
443
410
  return True
444
-
445
- @staticmethod
446
- def _sync_acl_permissions(parsed_config: AbstractFileBasedSpec) -> bool:
447
- if (
448
- FileBasedSource._use_records_transfer(parsed_config)
449
- and hasattr(parsed_config.delivery_method, "sync_acl_permissions")
450
- and parsed_config.delivery_method.sync_acl_permissions is not None
451
- ):
452
- return parsed_config.delivery_method.sync_acl_permissions
453
- return False
@@ -135,15 +135,6 @@ class AbstractFileBasedStreamReader(ABC):
135
135
  return use_file_transfer
136
136
  return False
137
137
 
138
- def use_records_transfer(self) -> bool:
139
- if self.config:
140
- use_records_transfer = (
141
- hasattr(self.config.delivery_method, "delivery_type")
142
- and self.config.delivery_method.delivery_type == "use_records_transfer"
143
- )
144
- return use_records_transfer
145
- return False
146
-
147
138
  def preserve_directory_structure(self) -> bool:
148
139
  # fall back to preserve subdirectories if config is not present or incomplete
149
140
  if (
@@ -155,16 +146,6 @@ class AbstractFileBasedStreamReader(ABC):
155
146
  return self.config.delivery_method.preserve_directory_structure
156
147
  return True
157
148
 
158
- def sync_acl_permissions(self) -> bool:
159
- if (
160
- self.config
161
- and self.use_records_transfer()
162
- and hasattr(self.config.delivery_method, "sync_acl_permissions")
163
- and self.config.delivery_method.sync_acl_permissions is not None
164
- ):
165
- return self.config.delivery_method.sync_acl_permissions
166
- return False
167
-
168
149
  @abstractmethod
169
150
  def get_file(
170
151
  self, file: RemoteFile, local_directory: str, logger: logging.Logger
@@ -202,17 +183,3 @@ class AbstractFileBasedStreamReader(ABC):
202
183
  makedirs(path.dirname(local_file_path), exist_ok=True)
203
184
  absolute_file_path = path.abspath(local_file_path)
204
185
  return [file_relative_path, local_file_path, absolute_file_path]
205
-
206
- def get_file_acl_permissions(self, file: RemoteFile, logger: logging.Logger) -> Dict[str, Any]:
207
- """
208
- This is required for connectors that will support syncing
209
- ACL Permissions from files.
210
- """
211
- return {}
212
-
213
- def load_identity_groups(self, logger: logging.Logger) -> Iterable[Dict[str, Any]]:
214
- """
215
- This is required for connectors that will support syncing
216
- identities.
217
- """
218
- yield {}
@@ -23,31 +23,6 @@ file_transfer_schema = {
23
23
  "properties": {"data": {"type": "object"}, "file": {"type": "object"}},
24
24
  }
25
25
 
26
- remote_file_permissions_schema = {
27
- "type": "object",
28
- "properties": {
29
- "id": {"type": "string"},
30
- "file_path": {"type": "string"},
31
- "allowed_identity_remote_ids": {"type": "array", "items": {"type": "string"}},
32
- "publicly_accessible": {"type": "boolean"},
33
- },
34
- }
35
-
36
- remote_file_identity_schema = {
37
- "type": "object",
38
- "properties": {
39
- "id": {"type": "string"},
40
- "remote_id": {"type": "string"},
41
- "parent_id": {"type": ["null", "string"]},
42
- "name": {"type": ["null", "string"]},
43
- "description": {"type": ["null", "string"]},
44
- "email_address": {"type": ["null", "string"]},
45
- "member_email_addresses": {"type": ["null", "array"]},
46
- "type": {"type": "string"},
47
- "modified_at": {"type": "string"},
48
- },
49
- }
50
-
51
26
 
52
27
  @total_ordering
53
28
  class ComparableType(Enum):
@@ -1,5 +1,4 @@
1
1
  from airbyte_cdk.sources.file_based.stream.abstract_file_based_stream import AbstractFileBasedStream
2
2
  from airbyte_cdk.sources.file_based.stream.default_file_based_stream import DefaultFileBasedStream
3
- from airbyte_cdk.sources.file_based.stream.identities_stream import IdentitiesStream
4
3
 
5
- __all__ = ["AbstractFileBasedStream", "DefaultFileBasedStream", "IdentitiesStream"]
4
+ __all__ = ["AbstractFileBasedStream", "DefaultFileBasedStream"]