airbyte-cdk 6.33.2.dev1__tar.gz → 6.33.4__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 (359) hide show
  1. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/oauth.py +6 -1
  3. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +15 -1
  4. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +30 -129
  5. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -4
  6. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +7 -2
  7. airbyte_cdk-6.33.4/airbyte_cdk/sources/declarative/decoders/json_decoder.py +65 -0
  8. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/record_selector.py +12 -3
  9. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +6 -11
  10. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +22 -84
  11. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +66 -86
  12. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/call_rate.py +148 -86
  13. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +3 -0
  14. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/pyproject.toml +1 -1
  15. airbyte_cdk-6.33.2.dev1/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -111
  16. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/LICENSE.txt +0 -0
  17. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/LICENSE_SHORT +0 -0
  18. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/README.md +0 -0
  19. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/__init__.py +0 -0
  20. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/cli/__init__.py +0 -0
  21. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  22. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  23. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  24. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/config_observation.py +0 -0
  25. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector.py +0 -0
  26. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/README.md +0 -0
  27. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/__init__.py +0 -0
  28. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  29. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/main.py +0 -0
  30. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  31. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/models.py +0 -0
  32. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/__init__.py +0 -0
  33. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/destination.py +0 -0
  34. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  35. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  36. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  37. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  38. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  39. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  40. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  41. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  42. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  43. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/entrypoint.py +0 -0
  44. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/exception_handler.py +0 -0
  45. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/logger.py +0 -0
  46. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/__init__.py +0 -0
  47. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  48. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  49. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  50. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/well_known_types.py +0 -0
  51. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/py.typed +0 -0
  52. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/__init__.py +0 -0
  53. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/abstract_source.py +0 -0
  54. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  55. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  56. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  57. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  58. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  59. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  60. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  61. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/config.py +0 -0
  62. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  63. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  64. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  65. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  66. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  67. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  68. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  69. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  70. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  71. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  72. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  73. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  74. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  75. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  76. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  77. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  78. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  79. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  80. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  81. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  82. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  83. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  84. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  85. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  86. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  87. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  88. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  89. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  90. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  91. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  92. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  93. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  94. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  95. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  96. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  97. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  98. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  99. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  100. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  101. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  102. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  103. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  104. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  105. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  106. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  107. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  108. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  109. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  110. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  111. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  112. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  113. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  114. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  115. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  116. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  117. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  118. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  119. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  120. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  121. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  122. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  123. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  124. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  125. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  126. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  127. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  128. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  129. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  130. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  131. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  132. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  133. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  134. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  135. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  136. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  137. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  138. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  139. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  140. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  141. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  142. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  143. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  144. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  145. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  146. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  147. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  148. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  149. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  150. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  151. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  152. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  153. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  154. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  155. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  156. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  157. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  158. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  159. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  160. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  161. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  162. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  163. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  164. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  165. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  166. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  167. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  168. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  169. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  170. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  171. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  172. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  173. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  174. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  175. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  176. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  177. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  178. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  179. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  180. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  181. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  182. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  183. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  184. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  185. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  186. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  187. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  188. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  189. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  190. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  191. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  192. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  193. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  194. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  195. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  196. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  197. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  198. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  199. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/types.py +0 -0
  200. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  201. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  202. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  203. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  204. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/runner.py +0 -0
  205. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/tools.py +0 -0
  206. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/README.md +0 -0
  207. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  208. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  209. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  210. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  211. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  212. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  213. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  214. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  215. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  216. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  217. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  218. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  219. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  220. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  221. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  222. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  223. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  224. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  225. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  226. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  227. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  228. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  229. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  230. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  231. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  232. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  233. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  234. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  235. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  236. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  237. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  238. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  239. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  240. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  241. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  242. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  243. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  244. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  245. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  246. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  247. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  248. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  249. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  250. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  251. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  252. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/types.py +0 -0
  253. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/http_config.py +0 -0
  254. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/http_logger.py +0 -0
  255. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/message/__init__.py +0 -0
  256. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/message/repository.py +0 -0
  257. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/source.py +0 -0
  258. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/__init__.py +0 -0
  259. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  260. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  261. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  262. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  263. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  264. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  265. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  266. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  267. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  268. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  269. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  270. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  271. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  272. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  273. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  274. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  275. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  276. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  277. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  278. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  279. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  280. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  281. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  282. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  283. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  284. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  285. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  286. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  287. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  288. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/core.py +0 -0
  289. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  290. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  291. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  292. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  293. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  294. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  295. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  296. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  297. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  298. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  299. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  300. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  301. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/http.py +0 -0
  302. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  303. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  304. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  305. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  306. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  307. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  308. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  309. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/types.py +0 -0
  310. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/__init__.py +0 -0
  311. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/casing.py +0 -0
  312. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  313. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  314. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  315. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/transform.py +0 -0
  316. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/types.py +0 -0
  317. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/__init__.py +0 -0
  318. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/_util/__init__.py +0 -0
  319. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/_util/hashing.py +0 -0
  320. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  321. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/constants.py +0 -0
  322. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/exceptions.py +0 -0
  323. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/secrets.py +0 -0
  324. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/shared/__init__.py +0 -0
  325. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  326. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  327. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/types.py +0 -0
  328. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/__init__.py +0 -0
  329. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/catalog_builder.py +0 -0
  330. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  331. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  332. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  333. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  334. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/request.py +0 -0
  335. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/response.py +0 -0
  336. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  337. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/state_builder.py +0 -0
  338. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/__init__.py +0 -0
  339. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/data.py +0 -0
  340. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  341. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  342. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/reading.py +0 -0
  343. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/__init__.py +0 -0
  344. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  345. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/analytics_message.py +0 -0
  346. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/constants.py +0 -0
  347. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  348. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  349. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/event_timing.py +0 -0
  350. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  351. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  352. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/message_utils.py +0 -0
  353. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  354. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/print_buffer.py +0 -0
  355. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  356. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/slice_hasher.py +0 -0
  357. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  358. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  359. {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.33.2.dev1
3
+ Version: 6.33.4
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -3,7 +3,7 @@
3
3
  #
4
4
 
5
5
  from dataclasses import InitVar, dataclass, field
6
- from datetime import timedelta
6
+ from datetime import datetime, timedelta
7
7
  from typing import Any, List, Mapping, MutableMapping, Optional, Union
8
8
 
9
9
  from airbyte_cdk.sources.declarative.auth.declarative_authenticator import DeclarativeAuthenticator
@@ -232,8 +232,13 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
232
232
  return self._refresh_request_headers.eval(self.config)
233
233
 
234
234
  def get_token_expiry_date(self) -> AirbyteDateTime:
235
+ if not self._has_access_token_been_initialized():
236
+ return AirbyteDateTime.from_datetime(datetime.min)
235
237
  return self._token_expiry_date # type: ignore # _token_expiry_date is an AirbyteDateTime. It is never None despite what mypy thinks
236
238
 
239
+ def _has_access_token_been_initialized(self) -> bool:
240
+ return self._access_token is not None
241
+
237
242
  def set_token_expiry_date(self, value: Union[str, int]) -> None:
238
243
  self._token_expiry_date = self._parse_token_expiration_date(value)
239
244
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
 
5
5
  import logging
6
- from typing import Any, Generic, Iterator, List, Mapping, Optional, Tuple
6
+ from typing import Any, Generic, Iterator, List, Mapping, MutableMapping, Optional, Tuple
7
7
 
8
8
  from airbyte_cdk.models import (
9
9
  AirbyteCatalog,
@@ -224,6 +224,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
224
224
  stream_state = self._connector_state_manager.get_stream_state(
225
225
  stream_name=declarative_stream.name, namespace=declarative_stream.namespace
226
226
  )
227
+ stream_state = self._migrate_state(declarative_stream, stream_state)
227
228
 
228
229
  retriever = self._get_retriever(declarative_stream, stream_state)
229
230
 
@@ -331,6 +332,8 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
331
332
  stream_state = self._connector_state_manager.get_stream_state(
332
333
  stream_name=declarative_stream.name, namespace=declarative_stream.namespace
333
334
  )
335
+ stream_state = self._migrate_state(declarative_stream, stream_state)
336
+
334
337
  partition_router = declarative_stream.retriever.stream_slicer._partition_router
335
338
 
336
339
  perpartition_cursor = (
@@ -521,3 +524,14 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
521
524
  if stream.stream.name not in concurrent_stream_names
522
525
  ]
523
526
  )
527
+
528
+ @staticmethod
529
+ def _migrate_state(
530
+ declarative_stream: DeclarativeStream, stream_state: MutableMapping[str, Any]
531
+ ) -> MutableMapping[str, Any]:
532
+ for state_migration in declarative_stream.state_migrations:
533
+ if state_migration.should_migrate(stream_state):
534
+ # The state variable is expected to be mutable but the migrate method returns an immutable mapping.
535
+ stream_state = dict(state_migration.migrate(stream_state))
536
+
537
+ return stream_state
@@ -41,11 +41,7 @@ properties:
41
41
  concurrency_level:
42
42
  "$ref": "#/definitions/ConcurrencyLevel"
43
43
  api_budget:
44
- title: API Budget
45
- description: Defines how many requests can be made to the API in a given time frame. This field accepts either a generic APIBudget or an HTTP-specific configuration (HTTPAPIBudget) to be applied across all streams.
46
- anyOf:
47
- - "$ref": "#/definitions/APIBudget"
48
- - "$ref": "#/definitions/HTTPAPIBudget"
44
+ "$ref": "#/definitions/HTTPAPIBudget"
49
45
  metadata:
50
46
  type: object
51
47
  description: For internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.
@@ -1371,40 +1367,13 @@ definitions:
1371
1367
  $parameters:
1372
1368
  type: object
1373
1369
  additional_properties: true
1374
- APIBudget:
1375
- title: API Budget
1376
- description: >
1377
- A generic API budget configuration that defines the policies (rate limiting rules)
1378
- and the maximum number of attempts to acquire a call credit. This budget does not automatically
1379
- update itself based on HTTP response headers.
1380
- type: object
1381
- required:
1382
- - type
1383
- - policies
1384
- properties:
1385
- type:
1386
- type: string
1387
- enum: [APIBudget]
1388
- policies:
1389
- title: Policies
1390
- description: List of call rate policies that define how many calls are allowed.
1391
- type: array
1392
- items:
1393
- anyOf:
1394
- - "$ref": "#/definitions/FixedWindowCallRatePolicy"
1395
- - "$ref": "#/definitions/MovingWindowCallRatePolicy"
1396
- - "$ref": "#/definitions/UnlimitedCallRatePolicy"
1397
- maximum_attempts_to_acquire:
1398
- title: Maximum Attempts to Acquire
1399
- description: The maximum number of attempts to acquire a call before giving up.
1400
- type: integer
1401
- default: 100000
1402
- additionalProperties: true
1403
1370
  HTTPAPIBudget:
1404
1371
  title: HTTP API Budget
1405
1372
  description: >
1406
- An HTTP-specific API budget that extends APIBudget by updating rate limiting information based
1407
- on HTTP response headers. It extracts available calls and the next reset timestamp from the HTTP responses.
1373
+ Defines how many requests can be made to the API in a given time frame. `HTTPAPIBudget` extracts the remaining
1374
+ call count and the reset time from HTTP response headers using the header names provided by
1375
+ `ratelimit_remaining_header` and `ratelimit_reset_header`. Only requests using `HttpRequester`
1376
+ are rate-limited; custom components that bypass `HttpRequester` are not covered by this budget.
1408
1377
  type: object
1409
1378
  required:
1410
1379
  - type
@@ -1439,11 +1408,6 @@ definitions:
1439
1408
  items:
1440
1409
  type: integer
1441
1410
  default: [429]
1442
- maximum_attempts_to_acquire:
1443
- title: Maximum Attempts to Acquire
1444
- description: The maximum number of attempts to acquire a call before giving up.
1445
- type: integer
1446
- default: 100000
1447
1411
  additionalProperties: true
1448
1412
  FixedWindowCallRatePolicy:
1449
1413
  title: Fixed Window Call Rate Policy
@@ -1451,7 +1415,6 @@ definitions:
1451
1415
  type: object
1452
1416
  required:
1453
1417
  - type
1454
- - next_reset_ts
1455
1418
  - period
1456
1419
  - call_limit
1457
1420
  - matchers
@@ -1459,16 +1422,10 @@ definitions:
1459
1422
  type:
1460
1423
  type: string
1461
1424
  enum: [FixedWindowCallRatePolicy]
1462
- next_reset_ts:
1463
- title: Next Reset Timestamp
1464
- description: The timestamp when the rate limit will reset.
1465
- type: string
1466
- format: date-time
1467
1425
  period:
1468
1426
  title: Period
1469
1427
  description: The time interval for the rate limit window.
1470
1428
  type: string
1471
- format: duration
1472
1429
  call_limit:
1473
1430
  title: Call Limit
1474
1431
  description: The maximum number of calls allowed within the period.
@@ -1539,7 +1496,9 @@ definitions:
1539
1496
  title: Interval
1540
1497
  description: The time interval for the rate limit.
1541
1498
  type: string
1542
- format: duration
1499
+ examples:
1500
+ - "PT1H"
1501
+ - "P1D"
1543
1502
  additionalProperties: true
1544
1503
  HttpRequestRegexMatcher:
1545
1504
  title: HTTP Request Matcher
@@ -1756,7 +1715,6 @@ definitions:
1756
1715
  anyOf:
1757
1716
  - "$ref": "#/definitions/JsonDecoder"
1758
1717
  - "$ref": "#/definitions/XmlDecoder"
1759
- - "$ref": "#/definitions/CompositeRawDecoder"
1760
1718
  $parameters:
1761
1719
  type: object
1762
1720
  additionalProperties: true
@@ -2340,23 +2298,6 @@ definitions:
2340
2298
  $parameters:
2341
2299
  type: object
2342
2300
  additionalProperties: true
2343
- GzipJsonDecoder:
2344
- title: GzipJson Decoder
2345
- description: Use this if the response is Gzip compressed Json.
2346
- type: object
2347
- additionalProperties: true
2348
- required:
2349
- - type
2350
- properties:
2351
- type:
2352
- type: string
2353
- enum: [GzipJsonDecoder]
2354
- encoding:
2355
- type: string
2356
- default: utf-8
2357
- $parameters:
2358
- type: object
2359
- additionalProperties: true
2360
2301
  ZipfileDecoder:
2361
2302
  title: Zipfile Decoder
2362
2303
  description: Decoder for response data that is returned as zipfile(s).
@@ -2364,19 +2305,19 @@ definitions:
2364
2305
  additionalProperties: true
2365
2306
  required:
2366
2307
  - type
2367
- - parser
2308
+ - decoder
2368
2309
  properties:
2369
2310
  type:
2370
2311
  type: string
2371
2312
  enum: [ZipfileDecoder]
2372
- parser:
2313
+ decoder:
2373
2314
  title: Parser
2374
2315
  description: Parser to parse the decompressed data from the zipfile(s).
2375
2316
  anyOf:
2376
- - "$ref": "#/definitions/GzipParser"
2377
- - "$ref": "#/definitions/JsonParser"
2378
- - "$ref": "#/definitions/JsonLineParser"
2379
- - "$ref": "#/definitions/CsvParser"
2317
+ - "$ref": "#/definitions/CsvDecoder"
2318
+ - "$ref": "#/definitions/GzipDecoder"
2319
+ - "$ref": "#/definitions/JsonDecoder"
2320
+ - "$ref": "#/definitions/JsonlDecoder"
2380
2321
  ListPartitionRouter:
2381
2322
  title: List Partition Router
2382
2323
  description: A Partition router that specifies a list of attributes where each attribute describes a portion of the complete data set for a stream. During a sync, each value is iterated over and can be used as input to outbound API requests.
@@ -3209,79 +3150,39 @@ definitions:
3209
3150
  description: Component decoding the response so records can be extracted.
3210
3151
  anyOf:
3211
3152
  - "$ref": "#/definitions/CustomDecoder"
3153
+ - "$ref": "#/definitions/CsvDecoder"
3154
+ - "$ref": "#/definitions/GzipDecoder"
3212
3155
  - "$ref": "#/definitions/JsonDecoder"
3213
3156
  - "$ref": "#/definitions/JsonlDecoder"
3214
3157
  - "$ref": "#/definitions/IterableDecoder"
3215
3158
  - "$ref": "#/definitions/XmlDecoder"
3216
- - "$ref": "#/definitions/GzipJsonDecoder"
3217
- - "$ref": "#/definitions/CompositeRawDecoder"
3218
3159
  - "$ref": "#/definitions/ZipfileDecoder"
3219
3160
  $parameters:
3220
3161
  type: object
3221
3162
  additionalProperties: true
3222
- CompositeRawDecoder:
3223
- description: "(This is experimental, use at your own risk)"
3163
+ GzipDecoder:
3224
3164
  type: object
3225
3165
  required:
3226
3166
  - type
3227
- - parser
3167
+ - decoder
3228
3168
  properties:
3229
3169
  type:
3230
3170
  type: string
3231
- enum: [CompositeRawDecoder]
3232
- parser:
3233
- anyOf:
3234
- - "$ref": "#/definitions/GzipParser"
3235
- - "$ref": "#/definitions/JsonParser"
3236
- - "$ref": "#/definitions/JsonLineParser"
3237
- - "$ref": "#/definitions/CsvParser"
3238
- # PARSERS
3239
- GzipParser:
3240
- type: object
3241
- required:
3242
- - type
3243
- - inner_parser
3244
- properties:
3245
- type:
3246
- type: string
3247
- enum: [GzipParser]
3248
- inner_parser:
3171
+ enum: [GzipDecoder]
3172
+ decoder:
3249
3173
  anyOf:
3250
- - "$ref": "#/definitions/JsonLineParser"
3251
- - "$ref": "#/definitions/CsvParser"
3252
- - "$ref": "#/definitions/JsonParser"
3253
- JsonParser:
3254
- title: JsonParser
3255
- description: Parser used for parsing str, bytes, or bytearray data and returning data in a dictionary format.
3256
- type: object
3257
- required:
3258
- - type
3259
- properties:
3260
- type:
3261
- type: string
3262
- enum: [JsonParser]
3263
- encoding:
3264
- type: string
3265
- default: utf-8
3266
- JsonLineParser:
3267
- type: object
3268
- required:
3269
- - type
3270
- properties:
3271
- type:
3272
- type: string
3273
- enum: [JsonLineParser]
3274
- encoding:
3275
- type: string
3276
- default: utf-8
3277
- CsvParser:
3174
+ - "$ref": "#/definitions/CsvDecoder"
3175
+ - "$ref": "#/definitions/GzipDecoder"
3176
+ - "$ref": "#/definitions/JsonDecoder"
3177
+ - "$ref": "#/definitions/JsonlDecoder"
3178
+ CsvDecoder:
3278
3179
  type: object
3279
3180
  required:
3280
3181
  - type
3281
3182
  properties:
3282
3183
  type:
3283
3184
  type: string
3284
- enum: [CsvParser]
3185
+ enum: [CsvDecoder]
3285
3186
  encoding:
3286
3187
  type: string
3287
3188
  default: utf-8
@@ -3409,24 +3310,24 @@ definitions:
3409
3310
  description: Component decoding the response so records can be extracted.
3410
3311
  anyOf:
3411
3312
  - "$ref": "#/definitions/CustomDecoder"
3313
+ - "$ref": "#/definitions/CsvDecoder"
3314
+ - "$ref": "#/definitions/GzipDecoder"
3412
3315
  - "$ref": "#/definitions/JsonDecoder"
3413
3316
  - "$ref": "#/definitions/JsonlDecoder"
3414
3317
  - "$ref": "#/definitions/IterableDecoder"
3415
3318
  - "$ref": "#/definitions/XmlDecoder"
3416
- - "$ref": "#/definitions/GzipJsonDecoder"
3417
- - "$ref": "#/definitions/CompositeRawDecoder"
3418
3319
  - "$ref": "#/definitions/ZipfileDecoder"
3419
3320
  download_decoder:
3420
3321
  title: Download Decoder
3421
3322
  description: Component decoding the download response so records can be extracted.
3422
3323
  anyOf:
3423
3324
  - "$ref": "#/definitions/CustomDecoder"
3325
+ - "$ref": "#/definitions/CsvDecoder"
3326
+ - "$ref": "#/definitions/GzipDecoder"
3424
3327
  - "$ref": "#/definitions/JsonDecoder"
3425
3328
  - "$ref": "#/definitions/JsonlDecoder"
3426
3329
  - "$ref": "#/definitions/IterableDecoder"
3427
3330
  - "$ref": "#/definitions/XmlDecoder"
3428
- - "$ref": "#/definitions/GzipJsonDecoder"
3429
- - "$ref": "#/definitions/CompositeRawDecoder"
3430
3331
  - "$ref": "#/definitions/ZipfileDecoder"
3431
3332
  $parameters:
3432
3333
  type: object
@@ -10,10 +10,8 @@ from airbyte_cdk.sources.declarative.decoders.composite_raw_decoder import (
10
10
  )
11
11
  from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
12
12
  from airbyte_cdk.sources.declarative.decoders.json_decoder import (
13
- GzipJsonDecoder,
14
13
  IterableDecoder,
15
14
  JsonDecoder,
16
- JsonlDecoder,
17
15
  )
18
16
  from airbyte_cdk.sources.declarative.decoders.noop_decoder import NoopDecoder
19
17
  from airbyte_cdk.sources.declarative.decoders.pagination_decoder_decorator import (
@@ -27,9 +25,7 @@ __all__ = [
27
25
  "CompositeRawDecoder",
28
26
  "JsonDecoder",
29
27
  "JsonParser",
30
- "JsonlDecoder",
31
28
  "IterableDecoder",
32
- "GzipJsonDecoder",
33
29
  "NoopDecoder",
34
30
  "PaginationDecoderDecorator",
35
31
  "XmlDecoder",
@@ -1,5 +1,6 @@
1
1
  import csv
2
2
  import gzip
3
+ import io
3
4
  import json
4
5
  import logging
5
6
  from abc import ABC, abstractmethod
@@ -130,11 +131,15 @@ class CompositeRawDecoder(Decoder):
130
131
  """
131
132
 
132
133
  parser: Parser
134
+ stream_response: bool = True
133
135
 
134
136
  def is_stream_response(self) -> bool:
135
- return True
137
+ return self.stream_response
136
138
 
137
139
  def decode(
138
140
  self, response: requests.Response
139
141
  ) -> Generator[MutableMapping[str, Any], None, None]:
140
- yield from self.parser.parse(data=response.raw) # type: ignore[arg-type]
142
+ if self.is_stream_response():
143
+ yield from self.parser.parse(data=response.raw) # type: ignore[arg-type]
144
+ else:
145
+ yield from self.parser.parse(data=io.BytesIO(response.content))
@@ -0,0 +1,65 @@
1
+ #
2
+ # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
+ #
4
+ import codecs
5
+ import logging
6
+ from dataclasses import InitVar, dataclass
7
+ from gzip import decompress
8
+ from typing import Any, Generator, List, Mapping, MutableMapping, Optional
9
+
10
+ import orjson
11
+ import requests
12
+
13
+ from airbyte_cdk.sources.declarative.decoders import CompositeRawDecoder, JsonParser
14
+ from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
15
+
16
+ logger = logging.getLogger("airbyte")
17
+
18
+
19
+ class JsonDecoder(Decoder):
20
+ """
21
+ Decoder strategy that returns the json-encoded content of a response, if any.
22
+
23
+ Usually, we would try to instantiate the equivalent `CompositeRawDecoder(parser=JsonParser(), stream_response=False)` but there were specific historical behaviors related to the JsonDecoder that we didn't know if we could remove like the fallback on {} in case of errors.
24
+ """
25
+
26
+ def __init__(self, parameters: Mapping[str, Any]):
27
+ self._decoder = CompositeRawDecoder(parser=JsonParser(), stream_response=False)
28
+
29
+ def is_stream_response(self) -> bool:
30
+ return self._decoder.is_stream_response()
31
+
32
+ def decode(
33
+ self, response: requests.Response
34
+ ) -> Generator[MutableMapping[str, Any], None, None]:
35
+ """
36
+ Given the response is an empty string or an emtpy list, the function will return a generator with an empty mapping.
37
+ """
38
+ has_yielded = False
39
+ try:
40
+ for element in self._decoder.decode(response):
41
+ yield element
42
+ has_yielded = True
43
+ except Exception:
44
+ yield {}
45
+
46
+ if not has_yielded:
47
+ yield {}
48
+
49
+
50
+ @dataclass
51
+ class IterableDecoder(Decoder):
52
+ """
53
+ Decoder strategy that returns the string content of the response, if any.
54
+ """
55
+
56
+ parameters: InitVar[Mapping[str, Any]]
57
+
58
+ def is_stream_response(self) -> bool:
59
+ return True
60
+
61
+ def decode(
62
+ self, response: requests.Response
63
+ ) -> Generator[MutableMapping[str, Any], None, None]:
64
+ for line in response.iter_lines():
65
+ yield {"record": line.decode()}
@@ -41,6 +41,7 @@ class RecordSelector(HttpSelector):
41
41
  _name: Union[InterpolatedString, str] = field(init=False, repr=False, default="")
42
42
  record_filter: Optional[RecordFilter] = None
43
43
  transformations: List[RecordTransformation] = field(default_factory=lambda: [])
44
+ transform_before_filtering: bool = False
44
45
 
45
46
  def __post_init__(self, parameters: Mapping[str, Any]) -> None:
46
47
  self._parameters = parameters
@@ -104,9 +105,17 @@ class RecordSelector(HttpSelector):
104
105
  Until we decide to move this logic away from the selector, we made this method public so that users like AsyncJobRetriever could
105
106
  share the logic of doing transformations on a set of records.
106
107
  """
107
- filtered_data = self._filter(all_data, stream_state, stream_slice, next_page_token)
108
- transformed_data = self._transform(filtered_data, stream_state, stream_slice)
109
- normalized_data = self._normalize_by_schema(transformed_data, schema=records_schema)
108
+ if self.transform_before_filtering:
109
+ transformed_data = self._transform(all_data, stream_state, stream_slice)
110
+ transformed_filtered_data = self._filter(
111
+ transformed_data, stream_state, stream_slice, next_page_token
112
+ )
113
+ else:
114
+ filtered_data = self._filter(all_data, stream_state, stream_slice, next_page_token)
115
+ transformed_filtered_data = self._transform(filtered_data, stream_state, stream_slice)
116
+ normalized_data = self._normalize_by_schema(
117
+ transformed_filtered_data, schema=records_schema
118
+ )
110
119
  for data in normalized_data:
111
120
  yield Record(data=data, stream_name=self.name, associated_slice=stream_slice)
112
121
 
@@ -58,8 +58,7 @@ class ConcurrentPerPartitionCursor(Cursor):
58
58
  CurrentPerPartitionCursor expects the state of the ConcurrentCursor to follow the format {cursor_field: cursor_value}.
59
59
  """
60
60
 
61
- DEFAULT_MAX_PARTITIONS_NUMBER = 25_000
62
- SWITCH_TO_GLOBAL_LIMIT = 1000
61
+ DEFAULT_MAX_PARTITIONS_NUMBER = 10000
63
62
  _NO_STATE: Mapping[str, Any] = {}
64
63
  _NO_CURSOR_STATE: Mapping[str, Any] = {}
65
64
  _GLOBAL_STATE_KEY = "state"
@@ -100,7 +99,7 @@ class ConcurrentPerPartitionCursor(Cursor):
100
99
  self._new_global_cursor: Optional[StreamState] = None
101
100
  self._lookback_window: int = 0
102
101
  self._parent_state: Optional[StreamState] = None
103
- self._number_of_partitions: int = 0
102
+ self._over_limit: int = 0
104
103
  self._use_global_cursor: bool = False
105
104
  self._partition_serializer = PerPartitionKeySerializer()
106
105
 
@@ -234,8 +233,8 @@ class ConcurrentPerPartitionCursor(Cursor):
234
233
  or removed due to being the oldest.
235
234
  """
236
235
  with self._lock:
237
- self._number_of_partitions += 1
238
236
  while len(self._cursor_per_partition) > self.DEFAULT_MAX_PARTITIONS_NUMBER - 1:
237
+ self._over_limit += 1
239
238
  # Try removing finished partitions first
240
239
  for partition_key in list(self._cursor_per_partition.keys()):
241
240
  if (
@@ -246,7 +245,7 @@ class ConcurrentPerPartitionCursor(Cursor):
246
245
  partition_key
247
246
  ) # Remove the oldest partition
248
247
  logger.warning(
249
- f"The maximum number of partitions has been reached. Dropping the oldest finished partition: {oldest_partition}. Over limit: {self._number_of_partitions}."
248
+ f"The maximum number of partitions has been reached. Dropping the oldest finished partition: {oldest_partition}. Over limit: {self._over_limit}."
250
249
  )
251
250
  break
252
251
  else:
@@ -255,7 +254,7 @@ class ConcurrentPerPartitionCursor(Cursor):
255
254
  1
256
255
  ] # Remove the oldest partition
257
256
  logger.warning(
258
- f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self._number_of_partitions}."
257
+ f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self._over_limit}."
259
258
  )
260
259
 
261
260
  def _set_initial_state(self, stream_state: StreamState) -> None:
@@ -356,10 +355,6 @@ class ConcurrentPerPartitionCursor(Cursor):
356
355
 
357
356
  def observe(self, record: Record) -> None:
358
357
  if not self._use_global_cursor and self.limit_reached():
359
- logger.info(
360
- f"Exceeded the 'SWITCH_TO_GLOBAL_LIMIT' of {self.SWITCH_TO_GLOBAL_LIMIT}. "
361
- f"Switching to global cursor for {self._stream_name}."
362
- )
363
358
  self._use_global_cursor = True
364
359
 
365
360
  if not record.associated_slice:
@@ -402,4 +397,4 @@ class ConcurrentPerPartitionCursor(Cursor):
402
397
  return cursor
403
398
 
404
399
  def limit_reached(self) -> bool:
405
- return self._number_of_partitions > self.SWITCH_TO_GLOBAL_LIMIT
400
+ return self._over_limit > self.DEFAULT_MAX_PARTITIONS_NUMBER