airbyte-cdk 6.18.2__tar.gz → 6.19.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/auth/oauth.py +8 -0
  3. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +24 -1
  4. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +43 -0
  5. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +21 -2
  6. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +61 -25
  7. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +13 -0
  8. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +8 -0
  9. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/pyproject.toml +1 -1
  10. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/LICENSE.txt +0 -0
  11. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/README.md +0 -0
  12. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/__init__.py +0 -0
  13. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/cli/__init__.py +0 -0
  14. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  15. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  16. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  17. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/config_observation.py +0 -0
  18. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/connector.py +0 -0
  19. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/connector_builder/README.md +0 -0
  20. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/connector_builder/__init__.py +0 -0
  21. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  22. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/connector_builder/main.py +0 -0
  23. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  24. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/connector_builder/models.py +0 -0
  25. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/__init__.py +0 -0
  26. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/destination.py +0 -0
  27. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  28. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  29. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  30. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  31. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  32. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  33. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  34. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  35. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  36. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/entrypoint.py +0 -0
  37. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/exception_handler.py +0 -0
  38. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/logger.py +0 -0
  39. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/models/__init__.py +0 -0
  40. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  41. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  42. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  43. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/models/well_known_types.py +0 -0
  44. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/py.typed +0 -0
  45. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/__init__.py +0 -0
  46. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/abstract_source.py +0 -0
  47. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  48. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  49. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  50. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  51. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  52. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  53. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  54. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/config.py +0 -0
  55. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  56. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  57. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  58. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  59. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  60. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  61. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  62. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  63. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  64. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  65. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  66. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  67. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  68. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  69. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  70. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  71. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  72. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  73. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  74. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  75. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  76. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  77. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  78. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  79. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  80. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  81. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  82. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  83. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  84. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  85. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  86. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  87. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  88. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  89. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  90. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  91. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  92. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  93. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  94. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  95. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  96. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  97. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  98. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  99. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  100. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  101. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  102. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  103. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  104. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  105. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  106. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  107. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  108. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  109. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  110. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  111. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  112. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  113. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  114. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  115. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  116. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  117. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  118. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  119. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  120. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  121. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  122. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  123. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  124. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  125. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  126. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  127. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  128. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  129. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  130. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  131. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  132. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  133. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  134. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  135. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  136. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  137. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  138. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  139. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  140. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  141. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  142. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  143. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  144. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  145. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  146. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  147. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  148. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  149. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  150. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  151. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  152. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  153. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  154. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  155. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  156. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  157. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  158. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  159. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  160. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  161. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  162. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  163. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  164. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  165. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  166. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  167. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  168. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  169. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  170. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  171. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  172. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  173. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  174. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  175. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  176. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  177. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  178. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  179. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  180. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  181. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  182. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  183. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  184. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  185. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  186. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  187. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  188. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  189. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  190. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  191. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  192. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/types.py +0 -0
  193. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  194. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  195. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  196. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  197. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/embedded/runner.py +0 -0
  198. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/embedded/tools.py +0 -0
  199. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/README.md +0 -0
  200. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  201. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  202. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  203. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  204. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  205. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  206. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  207. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  208. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  209. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  210. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  211. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  212. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  213. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  214. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  215. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  216. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  217. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  218. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  219. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  220. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  221. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  222. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  223. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  224. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  225. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  226. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  227. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  228. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  229. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  230. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  231. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  232. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  233. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  234. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  235. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  236. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  237. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  238. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  239. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  240. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  241. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  242. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  243. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  244. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  245. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/file_based/types.py +0 -0
  246. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/http_config.py +0 -0
  247. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/http_logger.py +0 -0
  248. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/message/__init__.py +0 -0
  249. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/message/repository.py +0 -0
  250. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/source.py +0 -0
  251. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/__init__.py +0 -0
  252. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  253. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  254. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  255. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  256. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  257. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  258. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  259. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  260. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  261. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  262. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  263. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  264. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  265. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  266. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  267. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  268. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  269. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  270. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  271. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  272. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  273. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  274. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  275. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  276. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  277. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  278. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  279. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  280. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/core.py +0 -0
  281. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  282. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  283. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  284. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  285. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  286. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  287. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  288. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  289. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  290. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  291. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  292. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  293. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/http.py +0 -0
  294. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  295. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  296. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  297. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  298. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  299. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  300. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/types.py +0 -0
  301. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/utils/__init__.py +0 -0
  302. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/utils/casing.py +0 -0
  303. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  304. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  305. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  306. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/utils/transform.py +0 -0
  307. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sources/utils/types.py +0 -0
  308. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/__init__.py +0 -0
  309. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/_util/__init__.py +0 -0
  310. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/_util/hashing.py +0 -0
  311. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  312. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/constants.py +0 -0
  313. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/exceptions.py +0 -0
  314. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/secrets.py +0 -0
  315. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/shared/__init__.py +0 -0
  316. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  317. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  318. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/sql/types.py +0 -0
  319. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/__init__.py +0 -0
  320. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/catalog_builder.py +0 -0
  321. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  322. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  323. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  324. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  325. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/mock_http/request.py +0 -0
  326. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/mock_http/response.py +0 -0
  327. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  328. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/state_builder.py +0 -0
  329. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/utils/__init__.py +0 -0
  330. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/utils/data.py +0 -0
  331. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  332. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  333. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/test/utils/reading.py +0 -0
  334. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/__init__.py +0 -0
  335. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  336. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/analytics_message.py +0 -0
  337. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/constants.py +0 -0
  338. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  339. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/event_timing.py +0 -0
  340. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  341. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  342. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/message_utils.py +0 -0
  343. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  344. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/print_buffer.py +0 -0
  345. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  346. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/slice_hasher.py +0 -0
  347. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  348. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  349. {airbyte_cdk-6.18.2 → airbyte_cdk-6.19.1}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: airbyte-cdk
3
- Version: 6.18.2
3
+ Version: 6.19.1
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  License: MIT
6
6
  Keywords: airbyte,connector-development-kit,cdk
@@ -39,6 +39,7 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
39
39
  token_expiry_date_format str: format of the datetime; provide it if expires_in is returned in datetime instead of seconds
40
40
  token_expiry_is_time_of_expiration bool: set True it if expires_in is returned as time of expiration instead of the number seconds until expiration
41
41
  refresh_request_body (Optional[Mapping[str, Any]]): The request body to send in the refresh request
42
+ refresh_request_headers (Optional[Mapping[str, Any]]): The request headers to send in the refresh request
42
43
  grant_type: The grant_type to request for access_token. If set to refresh_token, the refresh_token parameter has to be provided
43
44
  message_repository (MessageRepository): the message repository used to emit logs on HTTP requests
44
45
  """
@@ -61,6 +62,7 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
61
62
  expires_in_name: Union[InterpolatedString, str] = "expires_in"
62
63
  refresh_token_name: Union[InterpolatedString, str] = "refresh_token"
63
64
  refresh_request_body: Optional[Mapping[str, Any]] = None
65
+ refresh_request_headers: Optional[Mapping[str, Any]] = None
64
66
  grant_type_name: Union[InterpolatedString, str] = "grant_type"
65
67
  grant_type: Union[InterpolatedString, str] = "refresh_token"
66
68
  message_repository: MessageRepository = NoopMessageRepository()
@@ -101,6 +103,9 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
101
103
  self._refresh_request_body = InterpolatedMapping(
102
104
  self.refresh_request_body or {}, parameters=parameters
103
105
  )
106
+ self._refresh_request_headers = InterpolatedMapping(
107
+ self.refresh_request_headers or {}, parameters=parameters
108
+ )
104
109
  self._token_expiry_date: pendulum.DateTime = (
105
110
  pendulum.parse(
106
111
  InterpolatedString.create(self.token_expiry_date, parameters=parameters).eval(
@@ -178,6 +183,9 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
178
183
  def get_refresh_request_body(self) -> Mapping[str, Any]:
179
184
  return self._refresh_request_body.eval(self.config)
180
185
 
186
+ def get_refresh_request_headers(self) -> Mapping[str, Any]:
187
+ return self._refresh_request_headers.eval(self.config)
188
+
181
189
  def get_token_expiry_date(self) -> pendulum.DateTime:
182
190
  return self._token_expiry_date # type: ignore # _token_expiry_date is a pendulum.DateTime. It is never None despite what mypy thinks
183
191
 
@@ -678,7 +678,7 @@ definitions:
678
678
  properties:
679
679
  type:
680
680
  type: string
681
- enum: [ CustomSchemaNormalization ]
681
+ enum: [CustomSchemaNormalization]
682
682
  class_name:
683
683
  title: Class Name
684
684
  description: Fully-qualified name of the class that will be implementing the custom normalization. The format is `source_<name>.<package>.<class_name>`.
@@ -1139,6 +1139,14 @@ definitions:
1139
1139
  - applicationId: "{{ config['application_id'] }}"
1140
1140
  applicationSecret: "{{ config['application_secret'] }}"
1141
1141
  token: "{{ config['token'] }}"
1142
+ refresh_request_headers:
1143
+ title: Refresh Request Headers
1144
+ description: Headers of the request sent to get a new access token.
1145
+ type: object
1146
+ additionalProperties: true
1147
+ examples:
1148
+ - Authorization: "<AUTH_TOKEN>"
1149
+ Content-Type: "application/x-www-form-urlencoded"
1142
1150
  scopes:
1143
1151
  title: Scopes
1144
1152
  description: List of scopes that should be granted to the access token.
@@ -2886,6 +2894,7 @@ definitions:
2886
2894
  parser:
2887
2895
  anyOf:
2888
2896
  - "$ref": "#/definitions/GzipParser"
2897
+ - "$ref": "#/definitions/JsonParser"
2889
2898
  - "$ref": "#/definitions/JsonLineParser"
2890
2899
  - "$ref": "#/definitions/CsvParser"
2891
2900
  # PARSERS
@@ -2902,6 +2911,20 @@ definitions:
2902
2911
  anyOf:
2903
2912
  - "$ref": "#/definitions/JsonLineParser"
2904
2913
  - "$ref": "#/definitions/CsvParser"
2914
+ - "$ref": "#/definitions/JsonParser"
2915
+ JsonParser:
2916
+ title: JsonParser
2917
+ description: Parser used for parsing str, bytes, or bytearray data and returning data in a dictionary format.
2918
+ type: object
2919
+ required:
2920
+ - type
2921
+ properties:
2922
+ type:
2923
+ type: string
2924
+ enum: [JsonParser]
2925
+ encoding:
2926
+ type: string
2927
+ default: utf-8
2905
2928
  JsonLineParser:
2906
2929
  type: object
2907
2930
  required:
@@ -7,9 +7,12 @@ from dataclasses import dataclass
7
7
  from io import BufferedIOBase, TextIOWrapper
8
8
  from typing import Any, Generator, MutableMapping, Optional
9
9
 
10
+ import orjson
10
11
  import requests
11
12
 
13
+ from airbyte_cdk.models import FailureType
12
14
  from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
15
+ from airbyte_cdk.utils import AirbyteTracedException
13
16
 
14
17
  logger = logging.getLogger("airbyte")
15
18
 
@@ -42,6 +45,46 @@ class GzipParser(Parser):
42
45
  yield from self.inner_parser.parse(gzipobj)
43
46
 
44
47
 
48
+ @dataclass
49
+ class JsonParser(Parser):
50
+ encoding: str = "utf-8"
51
+
52
+ def parse(self, data: BufferedIOBase) -> Generator[MutableMapping[str, Any], None, None]:
53
+ """
54
+ Attempts to deserialize data using orjson library. As an extra layer of safety we fallback on the json library to deserialize the data.
55
+ """
56
+ raw_data = data.read()
57
+ body_json = self._parse_orjson(raw_data) or self._parse_json(raw_data)
58
+
59
+ if body_json is None:
60
+ raise AirbyteTracedException(
61
+ message="Response JSON data failed to be parsed. See logs for more information.",
62
+ internal_message=f"Response JSON data failed to be parsed.",
63
+ failure_type=FailureType.system_error,
64
+ )
65
+
66
+ if isinstance(body_json, list):
67
+ yield from body_json
68
+ else:
69
+ yield from [body_json]
70
+
71
+ def _parse_orjson(self, raw_data: bytes) -> Optional[Any]:
72
+ try:
73
+ return orjson.loads(raw_data.decode(self.encoding))
74
+ except Exception as exc:
75
+ logger.debug(
76
+ f"Failed to parse JSON data using orjson library. Falling back to json library. {exc}"
77
+ )
78
+ return None
79
+
80
+ def _parse_json(self, raw_data: bytes) -> Optional[Any]:
81
+ try:
82
+ return json.loads(raw_data.decode(self.encoding))
83
+ except Exception as exc:
84
+ logger.error(f"Failed to parse JSON data using json library. {exc}")
85
+ return None
86
+
87
+
45
88
  @dataclass
46
89
  class JsonLineParser(Parser):
47
90
  encoding: Optional[str] = "utf-8"
@@ -571,6 +571,17 @@ class OAuthAuthenticator(BaseModel):
571
571
  ],
572
572
  title="Refresh Request Body",
573
573
  )
574
+ refresh_request_headers: Optional[Dict[str, Any]] = Field(
575
+ None,
576
+ description="Headers of the request sent to get a new access token.",
577
+ examples=[
578
+ {
579
+ "Authorization": "<AUTH_TOKEN>",
580
+ "Content-Type": "application/x-www-form-urlencoded",
581
+ }
582
+ ],
583
+ title="Refresh Request Headers",
584
+ )
574
585
  scopes: Optional[List[str]] = Field(
575
586
  None,
576
587
  description="List of scopes that should be granted to the access token.",
@@ -1201,6 +1212,14 @@ class LegacySessionTokenAuthenticator(BaseModel):
1201
1212
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1202
1213
 
1203
1214
 
1215
+ class JsonParser(BaseModel):
1216
+ class Config:
1217
+ extra = Extra.allow
1218
+
1219
+ type: Literal["JsonParser"]
1220
+ encoding: Optional[str] = "utf-8"
1221
+
1222
+
1204
1223
  class JsonLineParser(BaseModel):
1205
1224
  type: Literal["JsonLineParser"]
1206
1225
  encoding: Optional[str] = "utf-8"
@@ -1599,7 +1618,7 @@ class RecordSelector(BaseModel):
1599
1618
 
1600
1619
  class GzipParser(BaseModel):
1601
1620
  type: Literal["GzipParser"]
1602
- inner_parser: Union[JsonLineParser, CsvParser]
1621
+ inner_parser: Union[JsonLineParser, CsvParser, JsonParser]
1603
1622
 
1604
1623
 
1605
1624
  class Spec(BaseModel):
@@ -1634,7 +1653,7 @@ class CompositeErrorHandler(BaseModel):
1634
1653
 
1635
1654
  class CompositeRawDecoder(BaseModel):
1636
1655
  type: Literal["CompositeRawDecoder"]
1637
- parser: Union[GzipParser, JsonLineParser, CsvParser]
1656
+ parser: Union[GzipParser, JsonParser, JsonLineParser, CsvParser]
1638
1657
 
1639
1658
 
1640
1659
  class DeclarativeSource1(BaseModel):
@@ -72,6 +72,8 @@ from airbyte_cdk.sources.declarative.decoders.composite_raw_decoder import (
72
72
  CsvParser,
73
73
  GzipParser,
74
74
  JsonLineParser,
75
+ JsonParser,
76
+ Parser,
75
77
  )
76
78
  from airbyte_cdk.sources.declarative.extractors import (
77
79
  DpathExtractor,
@@ -247,6 +249,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
247
249
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
248
250
  JsonLineParser as JsonLineParserModel,
249
251
  )
252
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
253
+ JsonParser as JsonParserModel,
254
+ )
250
255
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
251
256
  JwtAuthenticator as JwtAuthenticatorModel,
252
257
  )
@@ -522,6 +527,7 @@ class ModelToComponentFactory:
522
527
  JsonDecoderModel: self.create_json_decoder,
523
528
  JsonlDecoderModel: self.create_jsonl_decoder,
524
529
  JsonLineParserModel: self.create_json_line_parser,
530
+ JsonParserModel: self.create_json_parser,
525
531
  GzipJsonDecoderModel: self.create_gzipjson_decoder,
526
532
  GzipParserModel: self.create_gzip_parser,
527
533
  KeysToLowerModel: self.create_keys_to_lower_transformation,
@@ -1032,17 +1038,17 @@ class ModelToComponentFactory:
1032
1038
  self, model: CursorPaginationModel, config: Config, decoder: Decoder, **kwargs: Any
1033
1039
  ) -> CursorPaginationStrategy:
1034
1040
  if isinstance(decoder, PaginationDecoderDecorator):
1035
- if not isinstance(decoder.decoder, (JsonDecoder, XmlDecoder)):
1036
- raise ValueError(
1037
- f"Provided decoder of {type(decoder.decoder)=} is not supported. Please set JsonDecoder or XmlDecoder instead."
1038
- )
1041
+ inner_decoder = decoder.decoder
1042
+ else:
1043
+ inner_decoder = decoder
1044
+ decoder = PaginationDecoderDecorator(decoder=decoder)
1045
+
1046
+ if self._is_supported_decoder_for_pagination(inner_decoder):
1039
1047
  decoder_to_use = decoder
1040
1048
  else:
1041
- if not isinstance(decoder, (JsonDecoder, XmlDecoder)):
1042
- raise ValueError(
1043
- f"Provided decoder of {type(decoder)=} is not supported. Please set JsonDecoder or XmlDecoder instead."
1044
- )
1045
- decoder_to_use = PaginationDecoderDecorator(decoder=decoder)
1049
+ raise ValueError(
1050
+ self._UNSUPPORTED_DECODER_ERROR.format(decoder_type=type(inner_decoder))
1051
+ )
1046
1052
 
1047
1053
  return CursorPaginationStrategy(
1048
1054
  cursor_value=model.cursor_value,
@@ -1515,11 +1521,10 @@ class ModelToComponentFactory:
1515
1521
  cursor_used_for_stop_condition: Optional[DeclarativeCursor] = None,
1516
1522
  ) -> Union[DefaultPaginator, PaginatorTestReadDecorator]:
1517
1523
  if decoder:
1518
- if not isinstance(decoder, (JsonDecoder, XmlDecoder)):
1519
- raise ValueError(
1520
- f"Provided decoder of {type(decoder)=} is not supported. Please set JsonDecoder or XmlDecoder instead."
1521
- )
1522
- decoder_to_use = PaginationDecoderDecorator(decoder=decoder)
1524
+ if self._is_supported_decoder_for_pagination(decoder):
1525
+ decoder_to_use = PaginationDecoderDecorator(decoder=decoder)
1526
+ else:
1527
+ raise ValueError(self._UNSUPPORTED_DECODER_ERROR.format(decoder_type=type(decoder)))
1523
1528
  else:
1524
1529
  decoder_to_use = PaginationDecoderDecorator(decoder=JsonDecoder(parameters={}))
1525
1530
  page_size_option = (
@@ -1748,6 +1753,11 @@ class ModelToComponentFactory:
1748
1753
  def create_json_decoder(model: JsonDecoderModel, config: Config, **kwargs: Any) -> JsonDecoder:
1749
1754
  return JsonDecoder(parameters={})
1750
1755
 
1756
+ @staticmethod
1757
+ def create_json_parser(model: JsonParserModel, config: Config, **kwargs: Any) -> JsonParser:
1758
+ encoding = model.encoding if model.encoding else "utf-8"
1759
+ return JsonParser(encoding=encoding)
1760
+
1751
1761
  @staticmethod
1752
1762
  def create_jsonl_decoder(
1753
1763
  model: JsonlDecoderModel, config: Config, **kwargs: Any
@@ -1909,6 +1919,9 @@ class ModelToComponentFactory:
1909
1919
  refresh_request_body=InterpolatedMapping(
1910
1920
  model.refresh_request_body or {}, parameters=model.parameters or {}
1911
1921
  ).eval(config),
1922
+ refresh_request_headers=InterpolatedMapping(
1923
+ model.refresh_request_headers or {}, parameters=model.parameters or {}
1924
+ ).eval(config),
1912
1925
  scopes=model.scopes,
1913
1926
  token_expiry_date_format=model.token_expiry_date_format,
1914
1927
  message_repository=self._message_repository,
@@ -1928,6 +1941,7 @@ class ModelToComponentFactory:
1928
1941
  grant_type_name=model.grant_type_name or "grant_type",
1929
1942
  grant_type=model.grant_type or "refresh_token",
1930
1943
  refresh_request_body=model.refresh_request_body,
1944
+ refresh_request_headers=model.refresh_request_headers,
1931
1945
  refresh_token_name=model.refresh_token_name or "refresh_token",
1932
1946
  refresh_token=model.refresh_token,
1933
1947
  scopes=model.scopes,
@@ -1940,22 +1954,22 @@ class ModelToComponentFactory:
1940
1954
  message_repository=self._message_repository,
1941
1955
  )
1942
1956
 
1943
- @staticmethod
1944
1957
  def create_offset_increment(
1945
- model: OffsetIncrementModel, config: Config, decoder: Decoder, **kwargs: Any
1958
+ self, model: OffsetIncrementModel, config: Config, decoder: Decoder, **kwargs: Any
1946
1959
  ) -> OffsetIncrement:
1947
1960
  if isinstance(decoder, PaginationDecoderDecorator):
1948
- if not isinstance(decoder.decoder, (JsonDecoder, XmlDecoder)):
1949
- raise ValueError(
1950
- f"Provided decoder of {type(decoder.decoder)=} is not supported. Please set JsonDecoder or XmlDecoder instead."
1951
- )
1961
+ inner_decoder = decoder.decoder
1962
+ else:
1963
+ inner_decoder = decoder
1964
+ decoder = PaginationDecoderDecorator(decoder=decoder)
1965
+
1966
+ if self._is_supported_decoder_for_pagination(inner_decoder):
1952
1967
  decoder_to_use = decoder
1953
1968
  else:
1954
- if not isinstance(decoder, (JsonDecoder, XmlDecoder)):
1955
- raise ValueError(
1956
- f"Provided decoder of {type(decoder)=} is not supported. Please set JsonDecoder or XmlDecoder instead."
1957
- )
1958
- decoder_to_use = PaginationDecoderDecorator(decoder=decoder)
1969
+ raise ValueError(
1970
+ self._UNSUPPORTED_DECODER_ERROR.format(decoder_type=type(inner_decoder))
1971
+ )
1972
+
1959
1973
  return OffsetIncrement(
1960
1974
  page_size=model.page_size,
1961
1975
  config=config,
@@ -2555,3 +2569,25 @@ class ModelToComponentFactory:
2555
2569
  components_mapping=components_mapping,
2556
2570
  parameters=model.parameters or {},
2557
2571
  )
2572
+
2573
+ _UNSUPPORTED_DECODER_ERROR = (
2574
+ "Specified decoder of {decoder_type} is not supported for pagination."
2575
+ "Please set as `JsonDecoder`, `XmlDecoder`, or a `CompositeRawDecoder` with an inner_parser of `JsonParser` or `GzipParser` instead."
2576
+ "If using `GzipParser`, please ensure that the lowest level inner_parser is a `JsonParser`."
2577
+ )
2578
+
2579
+ def _is_supported_decoder_for_pagination(self, decoder: Decoder) -> bool:
2580
+ if isinstance(decoder, (JsonDecoder, XmlDecoder)):
2581
+ return True
2582
+ elif isinstance(decoder, CompositeRawDecoder):
2583
+ return self._is_supported_parser_for_pagination(decoder.parser)
2584
+ else:
2585
+ return False
2586
+
2587
+ def _is_supported_parser_for_pagination(self, parser: Parser) -> bool:
2588
+ if isinstance(parser, JsonParser):
2589
+ return True
2590
+ elif isinstance(parser, GzipParser):
2591
+ return isinstance(parser.inner_parser, JsonParser)
2592
+ else:
2593
+ return False
@@ -98,6 +98,14 @@ class AbstractOauth2Authenticator(AuthBase):
98
98
 
99
99
  return payload
100
100
 
101
+ def build_refresh_request_headers(self) -> Mapping[str, Any] | None:
102
+ """
103
+ Returns the request headers to set on the refresh request
104
+
105
+ """
106
+ headers = self.get_refresh_request_headers()
107
+ return headers if headers else None
108
+
101
109
  def _wrap_refresh_token_exception(
102
110
  self, exception: requests.exceptions.RequestException
103
111
  ) -> bool:
@@ -128,6 +136,7 @@ class AbstractOauth2Authenticator(AuthBase):
128
136
  method="POST",
129
137
  url=self.get_token_refresh_endpoint(), # type: ignore # returns None, if not provided, but str | bytes is expected.
130
138
  data=self.build_refresh_request_body(),
139
+ headers=self.build_refresh_request_headers(),
131
140
  )
132
141
  if response.ok:
133
142
  response_json = response.json()
@@ -254,6 +263,10 @@ class AbstractOauth2Authenticator(AuthBase):
254
263
  def get_refresh_request_body(self) -> Mapping[str, Any]:
255
264
  """Returns the request body to set on the refresh request"""
256
265
 
266
+ @abstractmethod
267
+ def get_refresh_request_headers(self) -> Mapping[str, Any]:
268
+ """Returns the request headers to set on the refresh request"""
269
+
257
270
  @abstractmethod
258
271
  def get_grant_type(self) -> str:
259
272
  """Returns grant_type specified for requesting access_token"""
@@ -39,6 +39,7 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
39
39
  access_token_name: str = "access_token",
40
40
  expires_in_name: str = "expires_in",
41
41
  refresh_request_body: Mapping[str, Any] | None = None,
42
+ refresh_request_headers: Mapping[str, Any] | None = None,
42
43
  grant_type_name: str = "grant_type",
43
44
  grant_type: str = "refresh_token",
44
45
  token_expiry_is_time_of_expiration: bool = False,
@@ -57,6 +58,7 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
57
58
  self._access_token_name = access_token_name
58
59
  self._expires_in_name = expires_in_name
59
60
  self._refresh_request_body = refresh_request_body
61
+ self._refresh_request_headers = refresh_request_headers
60
62
  self._grant_type_name = grant_type_name
61
63
  self._grant_type = grant_type
62
64
 
@@ -101,6 +103,9 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
101
103
  def get_refresh_request_body(self) -> Mapping[str, Any]:
102
104
  return self._refresh_request_body # type: ignore [return-value]
103
105
 
106
+ def get_refresh_request_headers(self) -> Mapping[str, Any]:
107
+ return self._refresh_request_headers # type: ignore [return-value]
108
+
104
109
  def get_grant_type_name(self) -> str:
105
110
  return self._grant_type_name
106
111
 
@@ -149,6 +154,7 @@ class SingleUseRefreshTokenOauth2Authenticator(Oauth2Authenticator):
149
154
  expires_in_name: str = "expires_in",
150
155
  refresh_token_name: str = "refresh_token",
151
156
  refresh_request_body: Mapping[str, Any] | None = None,
157
+ refresh_request_headers: Mapping[str, Any] | None = None,
152
158
  grant_type_name: str = "grant_type",
153
159
  grant_type: str = "refresh_token",
154
160
  client_id_name: str = "client_id",
@@ -174,6 +180,7 @@ class SingleUseRefreshTokenOauth2Authenticator(Oauth2Authenticator):
174
180
  expires_in_name (str, optional): Name of the name of the field that characterizes when the current access token will expire, used to parse the refresh token response. Defaults to "expires_in".
175
181
  refresh_token_name (str, optional): Name of the name of the refresh token field, used to parse the refresh token response. Defaults to "refresh_token".
176
182
  refresh_request_body (Mapping[str, Any], optional): Custom key value pair that will be added to the refresh token request body. Defaults to None.
183
+ refresh_request_headers (Mapping[str, Any], optional): Custom key value pair that will be added to the refresh token request headers. Defaults to None.
177
184
  grant_type (str, optional): OAuth grant type. Defaults to "refresh_token".
178
185
  client_id (Optional[str]): The client id to authenticate. If not specified, defaults to credentials.client_id in the config object.
179
186
  client_secret (Optional[str]): The client secret to authenticate. If not specified, defaults to credentials.client_secret in the config object.
@@ -220,6 +227,7 @@ class SingleUseRefreshTokenOauth2Authenticator(Oauth2Authenticator):
220
227
  access_token_name=access_token_name,
221
228
  expires_in_name=expires_in_name,
222
229
  refresh_request_body=refresh_request_body,
230
+ refresh_request_headers=refresh_request_headers,
223
231
  grant_type_name=self._grant_type_name,
224
232
  grant_type=grant_type,
225
233
  token_expiry_date_format=token_expiry_date_format,
@@ -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.18.2" # Version will be calculated dynamically.
26
+ version = "6.19.1" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false
File without changes
File without changes