airbyte-cdk 6.45.2.dev0__tar.gz → 6.45.3__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 (373) hide show
  1. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/connector_builder_handler.py +3 -1
  3. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/test_reader/reader.py +3 -1
  4. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +26 -0
  5. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +24 -0
  6. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +14 -26
  7. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -10
  8. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +41 -2
  9. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/pyproject.toml +1 -1
  10. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/LICENSE.txt +0 -0
  11. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/LICENSE_SHORT +0 -0
  12. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/README.md +0 -0
  13. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/__init__.py +0 -0
  14. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/cli/__init__.py +0 -0
  15. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  16. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  17. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  18. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/config_observation.py +0 -0
  19. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector.py +0 -0
  20. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/README.md +0 -0
  21. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/__init__.py +0 -0
  22. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/main.py +0 -0
  23. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/models.py +0 -0
  24. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  25. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  26. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  27. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  28. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/__init__.py +0 -0
  29. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/destination.py +0 -0
  30. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  31. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  32. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  33. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  34. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  35. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  36. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  37. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  38. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  39. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/entrypoint.py +0 -0
  40. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/exception_handler.py +0 -0
  41. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/logger.py +0 -0
  42. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/models/__init__.py +0 -0
  43. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  44. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  45. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  46. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/models/well_known_types.py +0 -0
  47. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/py.typed +0 -0
  48. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/__init__.py +0 -0
  49. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/abstract_source.py +0 -0
  50. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  51. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  52. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  53. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  54. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  55. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  56. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  57. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/config.py +0 -0
  58. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  59. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  60. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  61. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  62. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  63. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  64. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  65. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  66. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  67. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  68. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  69. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  70. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  71. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  72. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  73. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  74. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  75. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  76. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  77. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  78. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  79. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  80. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  81. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  82. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  83. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  84. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  85. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  86. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  87. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  88. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  89. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  90. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  91. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  92. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  93. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  94. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  95. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  96. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  97. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  98. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  99. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  100. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  101. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  102. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  103. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  104. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  105. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  106. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  107. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  108. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  109. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  110. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  111. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  112. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  113. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  114. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  115. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  116. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  117. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  118. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  119. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  120. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  121. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  122. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  123. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  124. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  125. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  126. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  127. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  128. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  129. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  130. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  131. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  132. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  133. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  134. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  135. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  136. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  137. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  138. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  139. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  140. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  141. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  142. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  143. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  144. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  145. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  146. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  147. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  148. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  149. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  150. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  151. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  152. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  153. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  154. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  155. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  156. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  157. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  158. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  159. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  160. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  161. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  162. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  163. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  164. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  165. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  166. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  167. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  168. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  169. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  170. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  171. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  172. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  173. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  174. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  175. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  176. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  177. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  178. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  179. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  180. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  181. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  182. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  183. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  184. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  185. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  186. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  187. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  188. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  189. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  190. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  191. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  192. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  193. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  194. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  195. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  196. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  197. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  198. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  199. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  200. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  201. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  202. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  203. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  204. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  205. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  206. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  207. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  208. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  209. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/types.py +0 -0
  210. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  211. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/README.md +0 -0
  212. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  213. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  214. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  215. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  216. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  217. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  218. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  219. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  220. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  221. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  222. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  223. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  224. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  225. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  226. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  227. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  228. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  229. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  230. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  231. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  232. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  233. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  234. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  235. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  236. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  237. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  238. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  239. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  240. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  241. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  242. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  243. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  244. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  245. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  246. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  247. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  248. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  249. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  250. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  251. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  252. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  253. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  254. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  255. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  256. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  257. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  258. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  259. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  260. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  261. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/file_based/types.py +0 -0
  262. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/http_config.py +0 -0
  263. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/http_logger.py +0 -0
  264. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/message/__init__.py +0 -0
  265. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/message/repository.py +0 -0
  266. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/source.py +0 -0
  267. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  268. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/__init__.py +0 -0
  269. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  270. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  271. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  272. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  273. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  274. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  275. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  276. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  277. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  278. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  279. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  280. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  281. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  282. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  283. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  284. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  285. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  286. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  287. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  288. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  289. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  290. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  291. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  292. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  293. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  294. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  295. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  296. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  297. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  298. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  299. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  300. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/core.py +0 -0
  301. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  302. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  303. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  304. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  305. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  306. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  307. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  308. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  309. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  310. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  311. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  312. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  313. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/http.py +0 -0
  314. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  315. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  316. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  317. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  318. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  319. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  320. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  321. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  322. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  323. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/types.py +0 -0
  324. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/utils/__init__.py +0 -0
  325. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/utils/casing.py +0 -0
  326. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  327. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  328. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  329. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/utils/transform.py +0 -0
  330. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sources/utils/types.py +0 -0
  331. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/__init__.py +0 -0
  332. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/_util/__init__.py +0 -0
  333. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/_util/hashing.py +0 -0
  334. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  335. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/constants.py +0 -0
  336. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/exceptions.py +0 -0
  337. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/secrets.py +0 -0
  338. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/shared/__init__.py +0 -0
  339. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  340. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  341. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/sql/types.py +0 -0
  342. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/__init__.py +0 -0
  343. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/catalog_builder.py +0 -0
  344. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  345. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  346. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  347. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  348. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/mock_http/request.py +0 -0
  349. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/mock_http/response.py +0 -0
  350. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  351. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/state_builder.py +0 -0
  352. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/utils/__init__.py +0 -0
  353. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/utils/data.py +0 -0
  354. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  355. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  356. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/test/utils/reading.py +0 -0
  357. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/__init__.py +0 -0
  358. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  359. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/analytics_message.py +0 -0
  360. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/constants.py +0 -0
  361. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  362. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  363. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/event_timing.py +0 -0
  364. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  365. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  366. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/message_utils.py +0 -0
  367. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  368. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/print_buffer.py +0 -0
  369. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  370. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/slice_hasher.py +0 -0
  371. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  372. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  373. {airbyte_cdk-6.45.2.dev0 → airbyte_cdk-6.45.3}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.45.2.dev0
3
+ Version: 6.45.3
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
  from dataclasses import asdict, dataclass, field
7
- from typing import Any, Dict, List, Mapping
7
+ from typing import Any, ClassVar, Dict, List, Mapping
8
8
 
9
9
  from airbyte_cdk.connector_builder.test_reader import TestReader
10
10
  from airbyte_cdk.models import (
@@ -37,6 +37,8 @@ MAX_STREAMS_KEY = "max_streams"
37
37
 
38
38
  @dataclass
39
39
  class TestLimits:
40
+ __test__: ClassVar[bool] = False # Tell Pytest this is not a Pytest class, despite its name
41
+
40
42
  max_records: int = field(default=DEFAULT_MAXIMUM_RECORDS)
41
43
  max_pages_per_slice: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
42
44
  max_slices: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
  import logging
7
- from typing import Any, Dict, Iterator, List, Mapping, Optional, Union
7
+ from typing import Any, ClassVar, Dict, Iterator, List, Mapping, Optional, Union
8
8
 
9
9
  from airbyte_cdk.connector_builder.models import (
10
10
  AuxiliaryRequest,
@@ -66,6 +66,8 @@ class TestReader:
66
66
 
67
67
  """
68
68
 
69
+ __test__: ClassVar[bool] = False # Tell Pytest this is not a Pytest class, despite its name
70
+
69
71
  logger = logging.getLogger("airbyte.connector-builder")
70
72
 
71
73
  def __init__(
@@ -2307,6 +2307,27 @@ definitions:
2307
2307
  $parameters:
2308
2308
  type: object
2309
2309
  additionalProperties: true
2310
+ KeyTransformation:
2311
+ title: Transformation to apply for extracted object keys by Dpath Flatten Fields
2312
+ type: object
2313
+ required:
2314
+ - type
2315
+ properties:
2316
+ type:
2317
+ type: string
2318
+ enum: [ KeyTransformation ]
2319
+ prefix:
2320
+ title: Key Prefix
2321
+ description: Prefix to add for object keys. If not provided original keys remain unchanged.
2322
+ type: string
2323
+ examples:
2324
+ - flattened_
2325
+ suffix:
2326
+ title: Key Suffix
2327
+ description: Suffix to add for object keys. If not provided original keys remain unchanged.
2328
+ type: string
2329
+ examples:
2330
+ - _flattened
2310
2331
  DpathFlattenFields:
2311
2332
  title: Dpath Flatten Fields
2312
2333
  description: A transformation that flatten field values to the to top of the record.
@@ -2335,6 +2356,11 @@ definitions:
2335
2356
  title: Replace Origin Record
2336
2357
  description: Whether to replace the origin record or not. Default is False.
2337
2358
  type: boolean
2359
+ key_transformation:
2360
+ title: Key transformation
2361
+ description: Transformation for object keys. If not provided, original key will be used.
2362
+ type: object
2363
+ "$ref": "#/definitions/KeyTransformation"
2338
2364
  $parameters:
2339
2365
  type: object
2340
2366
  additionalProperties: true
@@ -879,6 +879,25 @@ class FlattenFields(BaseModel):
879
879
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
880
880
 
881
881
 
882
+ class KeyTransformation(BaseModel):
883
+ prefix: Optional[Union[str, None]] = Field(
884
+ None,
885
+ description="Prefix to add for object keys. If not provided original keys remain unchanged.",
886
+ examples=[
887
+ "flattened_",
888
+ ],
889
+ title="Key Prefix",
890
+ )
891
+ suffix: Optional[Union[str, None]] = Field(
892
+ None,
893
+ description="Suffix to add for object keys. If not provided original keys remain unchanged.",
894
+ examples=[
895
+ "_flattened",
896
+ ],
897
+ title="Key Suffix",
898
+ )
899
+
900
+
882
901
  class DpathFlattenFields(BaseModel):
883
902
  type: Literal["DpathFlattenFields"]
884
903
  field_path: List[str] = Field(
@@ -897,6 +916,11 @@ class DpathFlattenFields(BaseModel):
897
916
  description="Whether to replace the origin record or not. Default is False.",
898
917
  title="Replace Origin Record",
899
918
  )
919
+ key_transformation: Optional[Union[KeyTransformation, None]] = Field(
920
+ None,
921
+ description="Transformation for object keys. If not provided, original key will be used.",
922
+ title="Key transformation",
923
+ )
900
924
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
901
925
 
902
926
 
@@ -498,6 +498,7 @@ from airbyte_cdk.sources.declarative.transformations import (
498
498
  from airbyte_cdk.sources.declarative.transformations.add_fields import AddedFieldDefinition
499
499
  from airbyte_cdk.sources.declarative.transformations.dpath_flatten_fields import (
500
500
  DpathFlattenFields,
501
+ KeyTransformation,
501
502
  )
502
503
  from airbyte_cdk.sources.declarative.transformations.flatten_fields import (
503
504
  FlattenFields,
@@ -790,6 +791,16 @@ class ModelToComponentFactory:
790
791
  self, model: DpathFlattenFieldsModel, config: Config, **kwargs: Any
791
792
  ) -> DpathFlattenFields:
792
793
  model_field_path: List[Union[InterpolatedString, str]] = [x for x in model.field_path]
794
+ key_transformation = (
795
+ KeyTransformation(
796
+ config=config,
797
+ prefix=model.key_transformation.prefix,
798
+ suffix=model.key_transformation.suffix,
799
+ parameters=model.parameters or {},
800
+ )
801
+ if model.key_transformation is not None
802
+ else None
803
+ )
793
804
  return DpathFlattenFields(
794
805
  config=config,
795
806
  field_path=model_field_path,
@@ -797,6 +808,7 @@ class ModelToComponentFactory:
797
808
  if model.delete_origin_value is not None
798
809
  else False,
799
810
  replace_record=model.replace_record if model.replace_record is not None else False,
811
+ key_transformation=key_transformation,
800
812
  parameters=model.parameters or {},
801
813
  )
802
814
 
@@ -2054,7 +2066,6 @@ class ModelToComponentFactory:
2054
2066
  config: Config,
2055
2067
  *,
2056
2068
  url_base: str,
2057
- extractor_model: Optional[Union[CustomRecordExtractorModel, DpathExtractorModel]] = None,
2058
2069
  decoder: Optional[Decoder] = None,
2059
2070
  cursor_used_for_stop_condition: Optional[DeclarativeCursor] = None,
2060
2071
  ) -> Union[DefaultPaginator, PaginatorTestReadDecorator]:
@@ -2076,10 +2087,7 @@ class ModelToComponentFactory:
2076
2087
  else None
2077
2088
  )
2078
2089
  pagination_strategy = self._create_component_from_model(
2079
- model=model.pagination_strategy,
2080
- config=config,
2081
- decoder=decoder_to_use,
2082
- extractor_model=extractor_model,
2090
+ model=model.pagination_strategy, config=config, decoder=decoder_to_use
2083
2091
  )
2084
2092
  if cursor_used_for_stop_condition:
2085
2093
  pagination_strategy = StopConditionPaginationStrategyDecorator(
@@ -2576,12 +2584,7 @@ class ModelToComponentFactory:
2576
2584
  )
2577
2585
 
2578
2586
  def create_offset_increment(
2579
- self,
2580
- model: OffsetIncrementModel,
2581
- config: Config,
2582
- decoder: Decoder,
2583
- extractor_model: Optional[Union[CustomRecordExtractorModel, DpathExtractorModel]] = None,
2584
- **kwargs: Any,
2587
+ self, model: OffsetIncrementModel, config: Config, decoder: Decoder, **kwargs: Any
2585
2588
  ) -> OffsetIncrement:
2586
2589
  if isinstance(decoder, PaginationDecoderDecorator):
2587
2590
  inner_decoder = decoder.decoder
@@ -2596,24 +2599,10 @@ class ModelToComponentFactory:
2596
2599
  self._UNSUPPORTED_DECODER_ERROR.format(decoder_type=type(inner_decoder))
2597
2600
  )
2598
2601
 
2599
- # Ideally we would instantiate the runtime extractor from highest most level (in this case the SimpleRetriever)
2600
- # so that it can be shared by OffSetIncrement and RecordSelector. However, due to how we instantiate the
2601
- # decoder with various decorators here, but not in create_record_selector, it is simpler to retain existing
2602
- # behavior by having two separate extractors with identical behavior since they use the same extractor model.
2603
- # When we have more time to investigate we can look into reusing the same component.
2604
- extractor = (
2605
- self._create_component_from_model(
2606
- model=extractor_model, config=config, decoder=decoder_to_use
2607
- )
2608
- if extractor_model
2609
- else None
2610
- )
2611
-
2612
2602
  return OffsetIncrement(
2613
2603
  page_size=model.page_size,
2614
2604
  config=config,
2615
2605
  decoder=decoder_to_use,
2616
- extractor=extractor,
2617
2606
  inject_on_first_request=model.inject_on_first_request or False,
2618
2607
  parameters=model.parameters or {},
2619
2608
  )
@@ -2977,7 +2966,6 @@ class ModelToComponentFactory:
2977
2966
  model=model.paginator,
2978
2967
  config=config,
2979
2968
  url_base=url_base,
2980
- extractor_model=model.record_selector.extractor,
2981
2969
  decoder=decoder,
2982
2970
  cursor_used_for_stop_condition=cursor_used_for_stop_condition,
2983
2971
  )
@@ -12,7 +12,6 @@ from airbyte_cdk.sources.declarative.decoders import (
12
12
  JsonDecoder,
13
13
  PaginationDecoderDecorator,
14
14
  )
15
- from airbyte_cdk.sources.declarative.extractors.dpath_extractor import RecordExtractor
16
15
  from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
17
16
  from airbyte_cdk.sources.declarative.requesters.paginators.strategies.pagination_strategy import (
18
17
  PaginationStrategy,
@@ -47,7 +46,6 @@ class OffsetIncrement(PaginationStrategy):
47
46
  config: Config
48
47
  page_size: Optional[Union[str, int]]
49
48
  parameters: InitVar[Mapping[str, Any]]
50
- extractor: Optional[RecordExtractor]
51
49
  decoder: Decoder = field(
52
50
  default_factory=lambda: PaginationDecoderDecorator(decoder=JsonDecoder(parameters={}))
53
51
  )
@@ -77,14 +75,6 @@ class OffsetIncrement(PaginationStrategy):
77
75
  ) -> Optional[Any]:
78
76
  decoded_response = next(self.decoder.decode(response))
79
77
 
80
- if self.extractor:
81
- page_size_from_response = len(list(self.extractor.extract_records(response=response)))
82
- # The extractor could return 0 records which is valid, but evaluates to False. Our fallback in other
83
- # cases as the best effort option is to use the incoming last_page_size
84
- last_page_size = (
85
- page_size_from_response if page_size_from_response is not None else last_page_size
86
- )
87
-
88
78
  # Stop paginating when there are fewer records than the page size or the current page has no records
89
79
  if (
90
80
  self._page_size
@@ -8,6 +8,24 @@ from airbyte_cdk.sources.declarative.transformations import RecordTransformation
8
8
  from airbyte_cdk.sources.types import Config, StreamSlice, StreamState
9
9
 
10
10
 
11
+ @dataclass
12
+ class KeyTransformation:
13
+ config: Config
14
+ parameters: InitVar[Mapping[str, Any]]
15
+ prefix: Optional[str] = None
16
+ suffix: Optional[str] = None
17
+
18
+ def __post_init__(self, parameters: Mapping[str, Any]) -> None:
19
+ if self.prefix is not None:
20
+ self.prefix = InterpolatedString.create(self.prefix, parameters=parameters).eval(
21
+ self.config
22
+ )
23
+ if self.suffix is not None:
24
+ self.suffix = InterpolatedString.create(self.suffix, parameters=parameters).eval(
25
+ self.config
26
+ )
27
+
28
+
11
29
  @dataclass
12
30
  class DpathFlattenFields(RecordTransformation):
13
31
  """
@@ -16,6 +34,7 @@ class DpathFlattenFields(RecordTransformation):
16
34
  field_path: List[Union[InterpolatedString, str]] path to the field to flatten.
17
35
  delete_origin_value: bool = False whether to delete origin field or keep it. Default is False.
18
36
  replace_record: bool = False whether to replace origin record or not. Default is False.
37
+ key_transformation: KeyTransformation = None how to transform extracted object keys
19
38
 
20
39
  """
21
40
 
@@ -24,17 +43,35 @@ class DpathFlattenFields(RecordTransformation):
24
43
  parameters: InitVar[Mapping[str, Any]]
25
44
  delete_origin_value: bool = False
26
45
  replace_record: bool = False
46
+ key_transformation: Optional[KeyTransformation] = None
27
47
 
28
48
  def __post_init__(self, parameters: Mapping[str, Any]) -> None:
49
+ self._parameters = parameters
29
50
  self._field_path = [
30
- InterpolatedString.create(path, parameters=parameters) for path in self.field_path
51
+ InterpolatedString.create(path, parameters=self._parameters) for path in self.field_path
31
52
  ]
32
53
  for path_index in range(len(self.field_path)):
33
54
  if isinstance(self.field_path[path_index], str):
34
55
  self._field_path[path_index] = InterpolatedString.create(
35
- self.field_path[path_index], parameters=parameters
56
+ self.field_path[path_index], parameters=self._parameters
36
57
  )
37
58
 
59
+ def _apply_key_transformation(self, extracted: Mapping[str, Any]) -> Mapping[str, Any]:
60
+ if self.key_transformation:
61
+ if self.key_transformation.prefix:
62
+ extracted = {
63
+ f"{self.key_transformation.prefix}{key}": value
64
+ for key, value in extracted.items()
65
+ }
66
+
67
+ if self.key_transformation.suffix:
68
+ extracted = {
69
+ f"{key}{self.key_transformation.suffix}": value
70
+ for key, value in extracted.items()
71
+ }
72
+
73
+ return extracted
74
+
38
75
  def transform(
39
76
  self,
40
77
  record: Dict[str, Any],
@@ -50,6 +87,8 @@ class DpathFlattenFields(RecordTransformation):
50
87
  extracted = dpath.get(record, path, default=[])
51
88
 
52
89
  if isinstance(extracted, dict):
90
+ extracted = self._apply_key_transformation(extracted)
91
+
53
92
  if self.replace_record and extracted:
54
93
  dpath.delete(record, "**")
55
94
  record.update(extracted)
@@ -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.45.2dev0" # Version will be calculated dynamically.
26
+ version = "6.45.3" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false