airbyte-cdk 6.17.1.dev0__tar.gz → 6.18.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (350) hide show
  1. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -69
  3. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +5 -0
  4. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +5 -3
  5. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -6
  6. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -14
  7. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +26 -12
  8. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +26 -79
  9. airbyte_cdk-6.18.0/airbyte_cdk/sources/declarative/requesters/README.md +57 -0
  10. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +33 -4
  11. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +1 -1
  12. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/types.py +3 -0
  13. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/pyproject.toml +1 -1
  14. airbyte_cdk-6.17.1.dev0/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -346
  15. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/LICENSE.txt +0 -0
  16. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/README.md +0 -0
  17. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/__init__.py +0 -0
  18. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/cli/__init__.py +0 -0
  19. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  20. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  21. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  22. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/config_observation.py +0 -0
  23. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/connector.py +0 -0
  24. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/connector_builder/README.md +0 -0
  25. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/connector_builder/__init__.py +0 -0
  26. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  27. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/connector_builder/main.py +0 -0
  28. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  29. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/connector_builder/models.py +0 -0
  30. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/__init__.py +0 -0
  31. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/destination.py +0 -0
  32. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  33. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  34. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  35. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  36. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  37. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  38. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  39. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  40. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  41. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/entrypoint.py +0 -0
  42. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/exception_handler.py +0 -0
  43. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/logger.py +0 -0
  44. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/models/__init__.py +0 -0
  45. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  46. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  47. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  48. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/models/well_known_types.py +0 -0
  49. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/py.typed +0 -0
  50. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/__init__.py +0 -0
  51. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/abstract_source.py +0 -0
  52. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  53. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  54. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  55. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  56. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  57. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  58. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  59. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/config.py +0 -0
  60. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  61. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  62. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  63. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  64. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  65. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  66. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  67. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  68. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  69. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  70. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  71. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  72. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  73. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  74. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  75. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  76. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  77. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  78. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  79. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  80. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  81. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  82. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  83. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  84. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  85. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  86. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  87. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  88. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  89. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  90. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  91. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  92. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  93. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  94. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  95. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  96. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  97. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  98. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  99. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  100. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  101. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  102. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  103. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  104. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  105. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  106. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  107. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  108. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  109. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  110. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  111. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  112. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  113. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  114. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  115. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  116. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  117. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  118. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  119. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  120. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  121. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  122. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  123. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  124. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  125. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  126. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  127. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  128. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  129. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  130. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  131. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  132. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  133. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  134. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  135. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  136. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  137. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  138. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  139. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  140. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  141. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  142. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  143. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  144. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  145. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  146. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  147. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  148. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  149. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  150. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  151. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  152. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  153. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  154. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  155. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  156. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  157. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  158. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  159. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  160. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  161. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  162. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  163. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  164. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  165. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  166. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  167. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  168. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  169. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  170. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  171. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  172. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  173. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  174. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  175. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  176. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  177. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  178. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  179. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  180. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  181. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  182. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  183. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  184. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  185. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  186. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  187. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  188. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  189. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  190. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  191. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  192. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/types.py +0 -0
  193. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  194. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  195. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  196. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  197. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/embedded/runner.py +0 -0
  198. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/embedded/tools.py +0 -0
  199. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/README.md +0 -0
  200. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  201. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  202. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  203. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  204. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  205. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  206. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  207. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  208. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  209. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  210. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  211. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  212. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  213. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  214. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  215. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  216. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  217. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  218. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  219. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  220. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  221. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  222. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  223. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  224. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  225. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  226. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  227. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  228. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  229. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  230. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  231. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  232. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  233. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  234. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  235. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  236. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  237. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  238. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  239. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  240. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  241. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  242. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  243. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  244. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  245. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/file_based/types.py +0 -0
  246. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/http_config.py +0 -0
  247. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/http_logger.py +0 -0
  248. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/message/__init__.py +0 -0
  249. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/message/repository.py +0 -0
  250. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/source.py +0 -0
  251. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/__init__.py +0 -0
  252. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  253. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  254. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  255. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  256. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  257. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  258. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  259. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  260. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  261. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  262. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  263. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  264. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  265. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  266. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  267. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  268. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  269. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  270. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  271. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  272. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  273. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  274. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  275. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  276. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  277. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  278. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  279. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  280. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/core.py +0 -0
  281. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  282. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  283. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  284. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  285. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  286. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  287. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  288. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  289. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  290. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  291. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  292. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  293. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/http.py +0 -0
  294. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  295. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  296. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  297. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  298. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  299. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  300. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  301. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  302. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/utils/__init__.py +0 -0
  303. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/utils/casing.py +0 -0
  304. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  305. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  306. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  307. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/utils/transform.py +0 -0
  308. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sources/utils/types.py +0 -0
  309. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/__init__.py +0 -0
  310. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/_util/__init__.py +0 -0
  311. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/_util/hashing.py +0 -0
  312. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  313. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/constants.py +0 -0
  314. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/exceptions.py +0 -0
  315. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/secrets.py +0 -0
  316. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/shared/__init__.py +0 -0
  317. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  318. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  319. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/sql/types.py +0 -0
  320. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/__init__.py +0 -0
  321. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/catalog_builder.py +0 -0
  322. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  323. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  324. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  325. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  326. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/mock_http/request.py +0 -0
  327. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/mock_http/response.py +0 -0
  328. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  329. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/state_builder.py +0 -0
  330. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/utils/__init__.py +0 -0
  331. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/utils/data.py +0 -0
  332. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  333. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  334. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/test/utils/reading.py +0 -0
  335. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/__init__.py +0 -0
  336. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  337. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/analytics_message.py +0 -0
  338. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/constants.py +0 -0
  339. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  340. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/event_timing.py +0 -0
  341. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  342. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  343. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/message_utils.py +0 -0
  344. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  345. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/print_buffer.py +0 -0
  346. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  347. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/slice_hasher.py +0 -0
  348. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  349. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  350. {airbyte_cdk-6.17.1.dev0 → airbyte_cdk-6.18.0}/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.17.1.dev0
3
+ Version: 6.18.0
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  License: MIT
6
6
  Keywords: airbyte,connector-development-kit,cdk
@@ -20,9 +20,6 @@ from airbyte_cdk.sources.declarative.extractors.record_filter import (
20
20
  ClientSideIncrementalRecordFilterDecorator,
21
21
  )
22
22
  from airbyte_cdk.sources.declarative.incremental.datetime_based_cursor import DatetimeBasedCursor
23
- from airbyte_cdk.sources.declarative.incremental.per_partition_with_global import (
24
- PerPartitionWithGlobalCursor,
25
- )
26
23
  from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
27
24
  from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
28
25
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
@@ -307,72 +304,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
307
304
  cursor=final_state_cursor,
308
305
  )
309
306
  )
310
- elif (
311
- incremental_sync_component_definition
312
- and incremental_sync_component_definition.get("type", "")
313
- == DatetimeBasedCursorModel.__name__
314
- and self._stream_supports_concurrent_partition_processing(
315
- declarative_stream=declarative_stream
316
- )
317
- and hasattr(declarative_stream.retriever, "stream_slicer")
318
- and isinstance(
319
- declarative_stream.retriever.stream_slicer, PerPartitionWithGlobalCursor
320
- )
321
- ):
322
- stream_state = state_manager.get_stream_state(
323
- stream_name=declarative_stream.name, namespace=declarative_stream.namespace
324
- )
325
- partition_router = declarative_stream.retriever.stream_slicer._partition_router
326
-
327
- cursor = self._constructor.create_concurrent_cursor_from_perpartition_cursor(
328
- state_manager=state_manager,
329
- model_type=DatetimeBasedCursorModel,
330
- component_definition=incremental_sync_component_definition,
331
- stream_name=declarative_stream.name,
332
- stream_namespace=declarative_stream.namespace,
333
- config=config or {},
334
- stream_state=stream_state,
335
- partition_router=partition_router,
336
- )
337
-
338
- retriever = declarative_stream.retriever
339
-
340
- # This is an optimization so that we don't invoke any cursor or state management flows within the
341
- # low-code framework because state management is handled through the ConcurrentCursor.
342
- if declarative_stream and isinstance(retriever, SimpleRetriever):
343
- # Also a temporary hack. In the legacy Stream implementation, as part of the read,
344
- # set_initial_state() is called to instantiate incoming state on the cursor. Although we no
345
- # longer rely on the legacy low-code cursor for concurrent checkpointing, low-code components
346
- # like StopConditionPaginationStrategyDecorator and ClientSideIncrementalRecordFilterDecorator
347
- # still rely on a DatetimeBasedCursor that is properly initialized with state.
348
- if retriever.cursor:
349
- retriever.cursor.set_initial_state(stream_state=stream_state)
350
- # We zero it out here, but since this is a cursor reference, the state is still properly
351
- # instantiated for the other components that reference it
352
- retriever.cursor = None
353
-
354
- partition_generator = StreamSlicerPartitionGenerator(
355
- DeclarativePartitionFactory(
356
- declarative_stream.name,
357
- declarative_stream.get_json_schema(),
358
- retriever,
359
- self.message_repository,
360
- ),
361
- cursor,
362
- )
363
-
364
- concurrent_streams.append(
365
- DefaultStream(
366
- partition_generator=partition_generator,
367
- name=declarative_stream.name,
368
- json_schema=declarative_stream.get_json_schema(),
369
- availability_strategy=AlwaysAvailableAvailabilityStrategy(),
370
- primary_key=get_primary_key_from_stream(declarative_stream.primary_key),
371
- cursor_field=cursor.cursor_field.cursor_field_key,
372
- logger=self.logger,
373
- cursor=cursor,
374
- )
375
- )
376
307
  else:
377
308
  synchronous_streams.append(declarative_stream)
378
309
  else:
@@ -2977,6 +2977,11 @@ definitions:
2977
2977
  anyOf:
2978
2978
  - "$ref": "#/definitions/CustomRequester"
2979
2979
  - "$ref": "#/definitions/HttpRequester"
2980
+ url_requester:
2981
+ description: Requester component that describes how to prepare HTTP requests to send to the source API to extract the url from polling response by the completed async job.
2982
+ anyOf:
2983
+ - "$ref": "#/definitions/CustomRequester"
2984
+ - "$ref": "#/definitions/HttpRequester"
2980
2985
  download_requester:
2981
2986
  description: Requester component that describes how to prepare HTTP requests to send to the source API to download the data provided by the completed async job.
2982
2987
  anyOf:
@@ -59,11 +59,13 @@ class ClientSideIncrementalRecordFilterDecorator(RecordFilter):
59
59
 
60
60
  def __init__(
61
61
  self,
62
- cursor: Union[DatetimeBasedCursor, PerPartitionWithGlobalCursor, GlobalSubstreamCursor],
62
+ date_time_based_cursor: DatetimeBasedCursor,
63
+ substream_cursor: Optional[Union[PerPartitionWithGlobalCursor, GlobalSubstreamCursor]],
63
64
  **kwargs: Any,
64
65
  ):
65
66
  super().__init__(**kwargs)
66
- self._cursor = cursor
67
+ self._date_time_based_cursor = date_time_based_cursor
68
+ self._substream_cursor = substream_cursor
67
69
 
68
70
  def filter_records(
69
71
  self,
@@ -75,7 +77,7 @@ class ClientSideIncrementalRecordFilterDecorator(RecordFilter):
75
77
  records = (
76
78
  record
77
79
  for record in records
78
- if self._cursor.should_be_synced(
80
+ if (self._substream_cursor or self._date_time_based_cursor).should_be_synced(
79
81
  # Record is created on the fly to align with cursors interface; stream name is ignored as we don't need it here
80
82
  # Record stream name is empty cause it is not used durig the filtering
81
83
  Record(data=record, associated_slice=stream_slice, stream_name="")
@@ -2,10 +2,6 @@
2
2
  # Copyright (c) 2022 Airbyte, Inc., all rights reserved.
3
3
  #
4
4
 
5
- from airbyte_cdk.sources.declarative.incremental.concurrent_partition_cursor import (
6
- ConcurrentCursorFactory,
7
- ConcurrentPerPartitionCursor,
8
- )
9
5
  from airbyte_cdk.sources.declarative.incremental.datetime_based_cursor import DatetimeBasedCursor
10
6
  from airbyte_cdk.sources.declarative.incremental.declarative_cursor import DeclarativeCursor
11
7
  from airbyte_cdk.sources.declarative.incremental.global_substream_cursor import (
@@ -25,8 +21,6 @@ from airbyte_cdk.sources.declarative.incremental.resumable_full_refresh_cursor i
25
21
 
26
22
  __all__ = [
27
23
  "CursorFactory",
28
- "ConcurrentCursorFactory",
29
- "ConcurrentPerPartitionCursor",
30
24
  "DatetimeBasedCursor",
31
25
  "DeclarativeCursor",
32
26
  "GlobalSubstreamCursor",
@@ -303,20 +303,6 @@ class PerPartitionCursor(DeclarativeCursor):
303
303
  raise ValueError("A partition needs to be provided in order to get request body json")
304
304
 
305
305
  def should_be_synced(self, record: Record) -> bool:
306
- if (
307
- self._to_partition_key(record.associated_slice.partition)
308
- not in self._cursor_per_partition
309
- ):
310
- partition_state = (
311
- self._state_to_migrate_from
312
- if self._state_to_migrate_from
313
- else self._NO_CURSOR_STATE
314
- )
315
- cursor = self._create_cursor(partition_state)
316
-
317
- self._cursor_per_partition[
318
- self._to_partition_key(record.associated_slice.partition)
319
- ] = cursor
320
306
  return self._get_cursor(record).should_be_synced(
321
307
  self._convert_record_to_cursor_record(record)
322
308
  )
@@ -737,33 +737,43 @@ class KeysToSnakeCase(BaseModel):
737
737
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
738
738
 
739
739
 
740
+ class FlattenFields(BaseModel):
741
+ type: Literal["FlattenFields"]
742
+ flatten_lists: Optional[bool] = Field(
743
+ True,
744
+ description="Whether to flatten lists or leave it as is. Default is True.",
745
+ title="Flatten Lists",
746
+ )
747
+ parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
748
+
749
+
740
750
  class KeysReplace(BaseModel):
741
751
  type: Literal["KeysReplace"]
742
752
  old: str = Field(
743
753
  ...,
744
754
  description="Old value to replace.",
745
- examples=[" ", "{{ record.id }}", "{{ config['id'] }}", "{{ stream_slice['id'] }}"],
755
+ examples=[
756
+ " ",
757
+ "{{ record.id }}",
758
+ "{{ config['id'] }}",
759
+ "{{ stream_slice['id'] }}",
760
+ ],
746
761
  title="Old value",
747
762
  )
748
763
  new: str = Field(
749
764
  ...,
750
765
  description="New value to set.",
751
- examples=["_", "{{ record.id }}", "{{ config['id'] }}", "{{ stream_slice['id'] }}"],
766
+ examples=[
767
+ "_",
768
+ "{{ record.id }}",
769
+ "{{ config['id'] }}",
770
+ "{{ stream_slice['id'] }}",
771
+ ],
752
772
  title="New value",
753
773
  )
754
774
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
755
775
 
756
776
 
757
- class FlattenFields(BaseModel):
758
- type: Literal["FlattenFields"]
759
- flatten_lists: Optional[bool] = Field(
760
- True,
761
- description="Whether to flatten lists or leave it as is. Default is True.",
762
- title="Flatten Lists",
763
- )
764
- parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
765
-
766
-
767
777
  class IterableDecoder(BaseModel):
768
778
  type: Literal["IterableDecoder"]
769
779
 
@@ -2040,6 +2050,10 @@ class AsyncRetriever(BaseModel):
2040
2050
  ...,
2041
2051
  description="Requester component that describes how to prepare HTTP requests to send to the source API to fetch the status of the running async job.",
2042
2052
  )
2053
+ url_requester: Optional[Union[CustomRequester, HttpRequester]] = Field(
2054
+ None,
2055
+ description="Requester component that describes how to prepare HTTP requests to send to the source API to extract the url from polling response by the completed async job.",
2056
+ )
2043
2057
  download_requester: Union[CustomRequester, HttpRequester] = Field(
2044
2058
  ...,
2045
2059
  description="Requester component that describes how to prepare HTTP requests to send to the source API to download the data provided by the completed async job.",
@@ -84,8 +84,6 @@ from airbyte_cdk.sources.declarative.extractors.record_filter import (
84
84
  )
85
85
  from airbyte_cdk.sources.declarative.incremental import (
86
86
  ChildPartitionResumableFullRefreshCursor,
87
- ConcurrentCursorFactory,
88
- ConcurrentPerPartitionCursor,
89
87
  CursorFactory,
90
88
  DatetimeBasedCursor,
91
89
  DeclarativeCursor,
@@ -440,7 +438,6 @@ from airbyte_cdk.sources.message import (
440
438
  InMemoryMessageRepository,
441
439
  LogAppenderMessageRepositoryDecorator,
442
440
  MessageRepository,
443
- NoopMessageRepository,
444
441
  )
445
442
  from airbyte_cdk.sources.streams.concurrent.cursor import ConcurrentCursor, CursorField
446
443
  from airbyte_cdk.sources.streams.concurrent.state_converters.datetime_stream_state_converter import (
@@ -874,8 +871,6 @@ class ModelToComponentFactory:
874
871
  stream_namespace: Optional[str],
875
872
  config: Config,
876
873
  stream_state: MutableMapping[str, Any],
877
- message_repository: Optional[MessageRepository] = None,
878
- runtime_lookback_window: Optional[int] = None,
879
874
  **kwargs: Any,
880
875
  ) -> ConcurrentCursor:
881
876
  component_type = component_definition.get("type")
@@ -933,11 +928,6 @@ class ModelToComponentFactory:
933
928
  if evaluated_lookback_window:
934
929
  lookback_window = parse_duration(evaluated_lookback_window)
935
930
 
936
- if runtime_lookback_window and lookback_window:
937
- lookback_window = max(lookback_window, runtime_lookback_window)
938
- elif runtime_lookback_window:
939
- lookback_window = runtime_lookback_window
940
-
941
931
  connector_state_converter: DateTimeStreamStateConverter
942
932
  connector_state_converter = CustomFormatConcurrentStreamStateConverter(
943
933
  datetime_format=datetime_format,
@@ -1016,7 +1006,7 @@ class ModelToComponentFactory:
1016
1006
  stream_name=stream_name,
1017
1007
  stream_namespace=stream_namespace,
1018
1008
  stream_state=stream_state,
1019
- message_repository=message_repository or self._message_repository,
1009
+ message_repository=self._message_repository,
1020
1010
  connector_state_manager=state_manager,
1021
1011
  connector_state_converter=connector_state_converter,
1022
1012
  cursor_field=cursor_field,
@@ -1028,63 +1018,6 @@ class ModelToComponentFactory:
1028
1018
  cursor_granularity=cursor_granularity,
1029
1019
  )
1030
1020
 
1031
- def create_concurrent_cursor_from_perpartition_cursor(
1032
- self,
1033
- state_manager: ConnectorStateManager,
1034
- model_type: Type[BaseModel],
1035
- component_definition: ComponentDefinition,
1036
- stream_name: str,
1037
- stream_namespace: Optional[str],
1038
- config: Config,
1039
- stream_state: MutableMapping[str, Any],
1040
- partition_router,
1041
- **kwargs: Any,
1042
- ) -> ConcurrentPerPartitionCursor:
1043
- component_type = component_definition.get("type")
1044
- if component_definition.get("type") != model_type.__name__:
1045
- raise ValueError(
1046
- f"Expected manifest component of type {model_type.__name__}, but received {component_type} instead"
1047
- )
1048
-
1049
- datetime_based_cursor_model = model_type.parse_obj(component_definition)
1050
-
1051
- if not isinstance(datetime_based_cursor_model, DatetimeBasedCursorModel):
1052
- raise ValueError(
1053
- f"Expected {model_type.__name__} component, but received {datetime_based_cursor_model.__class__.__name__}"
1054
- )
1055
-
1056
- interpolated_cursor_field = InterpolatedString.create(
1057
- datetime_based_cursor_model.cursor_field,
1058
- parameters=datetime_based_cursor_model.parameters or {},
1059
- )
1060
- cursor_field = CursorField(interpolated_cursor_field.eval(config=config))
1061
-
1062
- # Create the cursor factory
1063
- cursor_factory = ConcurrentCursorFactory(
1064
- partial(
1065
- self.create_concurrent_cursor_from_datetime_based_cursor,
1066
- state_manager=state_manager,
1067
- model_type=model_type,
1068
- component_definition=component_definition,
1069
- stream_name=stream_name,
1070
- stream_namespace=stream_namespace,
1071
- config=config,
1072
- message_repository=NoopMessageRepository(),
1073
- )
1074
- )
1075
-
1076
- # Return the concurrent cursor and state converter
1077
- return ConcurrentPerPartitionCursor(
1078
- cursor_factory=cursor_factory,
1079
- partition_router=partition_router,
1080
- stream_name=stream_name,
1081
- stream_namespace=stream_namespace,
1082
- stream_state=stream_state,
1083
- message_repository=self._message_repository, # type: ignore
1084
- connector_state_manager=state_manager,
1085
- cursor_field=cursor_field,
1086
- )
1087
-
1088
1021
  @staticmethod
1089
1022
  def create_constant_backoff_strategy(
1090
1023
  model: ConstantBackoffStrategyModel, config: Config, **kwargs: Any
@@ -1367,15 +1300,18 @@ class ModelToComponentFactory:
1367
1300
  raise ValueError(
1368
1301
  "Unsupported Slicer is used. PerPartitionWithGlobalCursor should be used here instead"
1369
1302
  )
1370
- cursor = (
1371
- combined_slicers
1372
- if isinstance(
1373
- combined_slicers, (PerPartitionWithGlobalCursor, GlobalSubstreamCursor)
1374
- )
1375
- else self._create_component_from_model(model=model.incremental_sync, config=config)
1376
- )
1377
-
1378
- client_side_incremental_sync = {"cursor": cursor}
1303
+ client_side_incremental_sync = {
1304
+ "date_time_based_cursor": self._create_component_from_model(
1305
+ model=model.incremental_sync, config=config
1306
+ ),
1307
+ "substream_cursor": (
1308
+ combined_slicers
1309
+ if isinstance(
1310
+ combined_slicers, (PerPartitionWithGlobalCursor, GlobalSubstreamCursor)
1311
+ )
1312
+ else None
1313
+ ),
1314
+ }
1379
1315
 
1380
1316
  if model.incremental_sync and isinstance(model.incremental_sync, DatetimeBasedCursorModel):
1381
1317
  cursor_model = model.incremental_sync
@@ -2191,7 +2127,7 @@ class ModelToComponentFactory:
2191
2127
  if (
2192
2128
  not isinstance(stream_slicer, DatetimeBasedCursor)
2193
2129
  or type(stream_slicer) is not DatetimeBasedCursor
2194
- ) and not isinstance(stream_slicer, PerPartitionWithGlobalCursor):
2130
+ ):
2195
2131
  # Many of the custom component implementations of DatetimeBasedCursor override get_request_params() (or other methods).
2196
2132
  # Because we're decoupling RequestOptionsProvider from the Cursor, custom components will eventually need to reimplement
2197
2133
  # their own RequestOptionsProvider. However, right now the existing StreamSlicer/Cursor still can act as the SimpleRetriever's
@@ -2351,7 +2287,7 @@ class ModelToComponentFactory:
2351
2287
  extractor=download_extractor,
2352
2288
  name=name,
2353
2289
  record_filter=None,
2354
- transformations=[],
2290
+ transformations=transformations,
2355
2291
  schema_normalization=TypeTransformer(TransformConfig.NoTransform),
2356
2292
  config=config,
2357
2293
  parameters={},
@@ -2388,6 +2324,16 @@ class ModelToComponentFactory:
2388
2324
  if model.delete_requester
2389
2325
  else None
2390
2326
  )
2327
+ url_requester = (
2328
+ self._create_component_from_model(
2329
+ model=model.url_requester,
2330
+ decoder=decoder,
2331
+ config=config,
2332
+ name=f"job extract_url - {name}",
2333
+ )
2334
+ if model.url_requester
2335
+ else None
2336
+ )
2391
2337
  status_extractor = self._create_component_from_model(
2392
2338
  model=model.status_extractor, decoder=decoder, config=config, name=name
2393
2339
  )
@@ -2398,6 +2344,7 @@ class ModelToComponentFactory:
2398
2344
  creation_requester=creation_requester,
2399
2345
  polling_requester=polling_requester,
2400
2346
  download_retriever=download_retriever,
2347
+ url_requester=url_requester,
2401
2348
  abort_requester=abort_requester,
2402
2349
  delete_requester=delete_requester,
2403
2350
  status_extractor=status_extractor,
@@ -0,0 +1,57 @@
1
+ # AsyncHttpJobRepository sequence diagram
2
+
3
+ - Components marked as optional are not required and can be ignored.
4
+ - if `url_requester` is not provided, `urls_extractor` will get urls from the `polling_job_response`
5
+ - interpolation_context, e.g. `create_job_response` or `polling_job_response` can be obtained from stream_slice
6
+
7
+
8
+ ```mermaid
9
+ ---
10
+ title: AsyncHttpJobRepository Sequence Diagram
11
+ ---
12
+ sequenceDiagram
13
+ participant AsyncHttpJobRepository as AsyncOrchestrator
14
+ participant CreationRequester as creation_requester
15
+ participant PollingRequester as polling_requester
16
+ participant UrlRequester as url_requester (Optional)
17
+ participant DownloadRetriever as download_retriever
18
+ participant AbortRequester as abort_requester (Optional)
19
+ participant DeleteRequester as delete_requester (Optional)
20
+ participant Reporting Server as Async Reporting Server
21
+
22
+ AsyncHttpJobRepository ->> CreationRequester: Initiate job creation
23
+ CreationRequester ->> Reporting Server: Create job request
24
+ Reporting Server -->> CreationRequester: Job ID response
25
+ CreationRequester -->> AsyncHttpJobRepository: Job ID
26
+
27
+ loop Poll for job status
28
+ AsyncHttpJobRepository ->> PollingRequester: Check job status
29
+ PollingRequester ->> Reporting Server: Status request (interpolation_context: `create_job_response`)
30
+ Reporting Server -->> PollingRequester: Status response
31
+ PollingRequester -->> AsyncHttpJobRepository: Job status
32
+ end
33
+
34
+ alt Status: Ready
35
+ AsyncHttpJobRepository ->> UrlRequester: Request download URLs (if applicable)
36
+ UrlRequester ->> Reporting Server: URL request (interpolation_context: `polling_job_response`)
37
+ Reporting Server -->> UrlRequester: Download URLs
38
+ UrlRequester -->> AsyncHttpJobRepository: Download URLs
39
+
40
+ AsyncHttpJobRepository ->> DownloadRetriever: Download reports
41
+ DownloadRetriever ->> Reporting Server: Retrieve report data (interpolation_context: `url`)
42
+ Reporting Server -->> DownloadRetriever: Report data
43
+ DownloadRetriever -->> AsyncHttpJobRepository: Report data
44
+ else Status: Failed
45
+ AsyncHttpJobRepository ->> AbortRequester: Send abort request
46
+ AbortRequester ->> Reporting Server: Abort job
47
+ Reporting Server -->> AbortRequester: Abort confirmation
48
+ AbortRequester -->> AsyncHttpJobRepository: Confirmation
49
+ end
50
+
51
+ AsyncHttpJobRepository ->> DeleteRequester: Send delete job request
52
+ DeleteRequester ->> Reporting Server: Delete job
53
+ Reporting Server -->> DeleteRequester: Deletion confirmation
54
+ DeleteRequester -->> AsyncHttpJobRepository: Confirmation
55
+
56
+
57
+ ```
@@ -31,6 +31,10 @@ LOGGER = logging.getLogger("airbyte")
31
31
 
32
32
  @dataclass
33
33
  class AsyncHttpJobRepository(AsyncJobRepository):
34
+ """
35
+ See Readme file for more details about flow.
36
+ """
37
+
34
38
  creation_requester: Requester
35
39
  polling_requester: Requester
36
40
  download_retriever: SimpleRetriever
@@ -44,6 +48,9 @@ class AsyncHttpJobRepository(AsyncJobRepository):
44
48
  record_extractor: RecordExtractor = field(
45
49
  init=False, repr=False, default_factory=lambda: ResponseToFileExtractor({})
46
50
  )
51
+ url_requester: Optional[Requester] = (
52
+ None # use it in case polling_requester provides some <id> and extra request is needed to obtain list of urls to download from
53
+ )
47
54
 
48
55
  def __post_init__(self) -> None:
49
56
  self._create_job_response_by_id: Dict[str, Response] = {}
@@ -186,10 +193,13 @@ class AsyncHttpJobRepository(AsyncJobRepository):
186
193
 
187
194
  """
188
195
 
189
- for url in self.urls_extractor.extract_records(
190
- self._polling_job_response_by_id[job.api_job_id()]
191
- ):
192
- stream_slice: StreamSlice = StreamSlice(partition={"url": url}, cursor_slice={})
196
+ for url in self._get_download_url(job):
197
+ job_slice = job.job_parameters()
198
+ stream_slice = StreamSlice(
199
+ partition=job_slice.partition,
200
+ cursor_slice=job_slice.cursor_slice,
201
+ extra_fields={**job_slice.extra_fields, "url": url},
202
+ )
193
203
  for message in self.download_retriever.read_records({}, stream_slice):
194
204
  if isinstance(message, Record):
195
205
  yield message.data
@@ -226,3 +236,22 @@ class AsyncHttpJobRepository(AsyncJobRepository):
226
236
  cursor_slice={},
227
237
  )
228
238
  return stream_slice
239
+
240
+ def _get_download_url(self, job: AsyncJob) -> Iterable[str]:
241
+ if not self.url_requester:
242
+ url_response = self._polling_job_response_by_id[job.api_job_id()]
243
+ else:
244
+ stream_slice: StreamSlice = StreamSlice(
245
+ partition={
246
+ "polling_job_response": self._polling_job_response_by_id[job.api_job_id()]
247
+ },
248
+ cursor_slice={},
249
+ )
250
+ url_response = self.url_requester.send_request(stream_slice=stream_slice) # type: ignore # we expect url_requester to always be presented, otherwise raise an exception as we cannot proceed with the report
251
+ if not url_response:
252
+ raise AirbyteTracedException(
253
+ internal_message="Always expect a response or an exception from url_requester",
254
+ failure_type=FailureType.system_error,
255
+ )
256
+
257
+ yield from self.urls_extractor.extract_records(url_response) # type: ignore # we expect urls_extractor to always return list of strings
@@ -160,7 +160,7 @@ class SimpleRetriever(Retriever):
160
160
  stream_slice,
161
161
  next_page_token,
162
162
  self._paginator.get_request_headers,
163
- self.request_option_provider.get_request_headers,
163
+ self.stream_slicer.get_request_headers,
164
164
  )
165
165
  if isinstance(headers, str):
166
166
  raise ValueError("Request headers cannot be a string")
@@ -152,3 +152,6 @@ class StreamSlice(Mapping[str, Any]):
152
152
 
153
153
  def __hash__(self) -> int:
154
154
  return hash(orjson.dumps(self._stream_slice, option=orjson.OPT_SORT_KEYS))
155
+
156
+ def __bool__(self) -> bool:
157
+ return bool(self._stream_slice) or bool(self._extra_fields)
@@ -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.17.1dev0" # Version will be calculated dynamically.
26
+ version = "6.18.0" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false