airbyte-cdk 6.8.0rc2__tar.gz → 6.8.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 (338) hide show
  1. airbyte_cdk-6.8.1/PKG-INFO +111 -0
  2. airbyte_cdk-6.8.1/README.md +34 -0
  3. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +11 -5
  4. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/config_observation.py +1 -1
  5. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/connector_builder/main.py +1 -1
  6. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/connector_builder/message_grouper.py +10 -10
  7. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/destination.py +1 -1
  8. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/embedder.py +2 -2
  9. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/writer.py +12 -4
  10. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/entrypoint.py +19 -8
  11. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/logger.py +2 -2
  12. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/abstract_source.py +1 -1
  13. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/config.py +1 -1
  14. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/connector_state_manager.py +9 -4
  15. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/auth/oauth.py +1 -1
  16. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +6 -1
  17. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +6 -3
  18. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +10 -4
  19. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +16 -17
  20. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +4 -1
  21. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +8 -6
  22. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +3 -3
  23. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/macros.py +1 -1
  24. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +5 -6
  25. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +13 -7
  26. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +1 -1
  27. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +8 -6
  28. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +1 -1
  29. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +2 -2
  30. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +1 -1
  31. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +5 -2
  32. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/spec/spec.py +1 -1
  33. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/embedded/base_integration.py +3 -2
  34. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +12 -4
  35. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +18 -7
  36. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +14 -11
  37. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +3 -3
  38. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +11 -5
  39. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +1 -1
  40. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +2 -2
  41. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +6 -3
  42. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +1 -1
  43. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/http_logger.py +3 -3
  44. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +5 -2
  45. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/adapters.py +6 -3
  46. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +9 -3
  47. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/cursor.py +1 -1
  48. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +2 -2
  49. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/core.py +17 -14
  50. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/http.py +19 -19
  51. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/http_client.py +2 -2
  52. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +2 -1
  53. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +62 -33
  54. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/utils/record_helper.py +1 -1
  55. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/utils/schema_helpers.py +1 -1
  56. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/utils/transform.py +34 -15
  57. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/entrypoint_wrapper.py +11 -6
  58. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/mock_http/response_builder.py +1 -1
  59. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/airbyte_secrets_utils.py +1 -1
  60. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/event_timing.py +10 -10
  61. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/message_utils.py +4 -3
  62. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/spec_schema_transformations.py +3 -2
  63. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/traced_exception.py +14 -12
  64. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/pyproject.toml +10 -6
  65. airbyte_cdk-6.8.0rc2/PKG-INFO +0 -307
  66. airbyte_cdk-6.8.0rc2/README.md +0 -229
  67. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/LICENSE.txt +0 -0
  68. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/__init__.py +0 -0
  69. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/cli/__init__.py +0 -0
  70. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  71. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  72. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/connector.py +0 -0
  73. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/connector_builder/README.md +0 -0
  74. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/connector_builder/__init__.py +0 -0
  75. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  76. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/connector_builder/models.py +0 -0
  77. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/__init__.py +0 -0
  78. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  79. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  80. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  81. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  82. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  83. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  84. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  85. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/exception_handler.py +0 -0
  86. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/models/__init__.py +0 -0
  87. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  88. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  89. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  90. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/models/well_known_types.py +0 -0
  91. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/py.typed +0 -0
  92. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/__init__.py +0 -0
  93. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  94. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  95. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  96. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  97. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  98. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  99. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  100. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  101. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  102. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  103. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  104. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  105. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  106. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  107. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  108. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  109. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  110. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  111. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  112. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  113. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  114. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  115. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  116. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  117. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  118. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  119. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  120. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  121. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  122. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  123. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  124. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  125. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  126. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  127. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  128. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  129. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  130. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  131. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  132. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  133. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  134. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  135. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  136. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  137. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  138. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  139. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  140. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  141. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  142. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  143. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  144. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  145. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  146. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  147. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  148. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  149. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  150. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  151. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  152. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  153. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  154. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  155. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  156. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  157. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  158. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  159. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  160. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  161. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  162. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  163. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  164. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  165. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  166. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  167. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  168. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  169. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  170. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  171. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  172. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  173. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  174. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  175. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  176. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  177. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  178. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  179. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  180. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  181. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  182. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  183. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  184. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  185. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  186. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  187. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  188. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  189. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  190. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  191. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  192. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  193. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  194. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  195. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  196. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  197. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  198. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  199. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  200. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  201. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  202. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  203. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  204. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  205. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  206. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  207. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  208. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  209. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  210. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  211. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/types.py +0 -0
  212. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  213. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  214. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  215. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/embedded/runner.py +0 -0
  216. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/embedded/tools.py +0 -0
  217. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/README.md +0 -0
  218. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  219. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  220. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  221. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  222. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  223. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  224. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  225. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  226. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  227. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  228. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  229. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  230. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  231. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  232. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  233. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  234. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  235. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  236. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  237. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  238. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  239. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  240. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  241. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  242. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  243. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  244. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  245. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  246. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  247. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  248. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  249. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  250. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  251. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  252. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  253. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  254. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/file_based/types.py +0 -0
  255. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/http_config.py +0 -0
  256. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/message/__init__.py +0 -0
  257. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/message/repository.py +0 -0
  258. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/source.py +0 -0
  259. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/__init__.py +0 -0
  260. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  261. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  262. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  263. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  264. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  265. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  266. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  267. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  268. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  269. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  270. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  271. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  272. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  273. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  274. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  275. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  276. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  277. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  278. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  279. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  280. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  281. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  282. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  283. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  284. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  285. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  286. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  287. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  288. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  289. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  290. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  291. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  292. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  293. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  294. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  295. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  296. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  297. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  298. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  299. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  300. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/types.py +0 -0
  301. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/utils/__init__.py +0 -0
  302. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/utils/casing.py +0 -0
  303. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  304. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sources/utils/types.py +0 -0
  305. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/__init__.py +0 -0
  306. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/_util/__init__.py +0 -0
  307. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/_util/hashing.py +0 -0
  308. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  309. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/constants.py +0 -0
  310. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/exceptions.py +0 -0
  311. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/secrets.py +0 -0
  312. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/shared/__init__.py +0 -0
  313. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  314. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  315. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/sql/types.py +0 -0
  316. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/__init__.py +0 -0
  317. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/catalog_builder.py +0 -0
  318. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  319. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  320. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  321. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/mock_http/request.py +0 -0
  322. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/mock_http/response.py +0 -0
  323. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/state_builder.py +0 -0
  324. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/utils/__init__.py +0 -0
  325. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/utils/data.py +0 -0
  326. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  327. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/test/utils/reading.py +0 -0
  328. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/__init__.py +0 -0
  329. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/analytics_message.py +0 -0
  330. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/constants.py +0 -0
  331. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  332. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  333. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  334. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  335. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/print_buffer.py +0 -0
  336. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  337. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/slice_hasher.py +0 -0
  338. {airbyte_cdk-6.8.0rc2 → airbyte_cdk-6.8.1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
@@ -0,0 +1,111 @@
1
+ Metadata-Version: 2.1
2
+ Name: airbyte-cdk
3
+ Version: 6.8.1
4
+ Summary: A framework for writing Airbyte Connectors.
5
+ Home-page: https://airbyte.com
6
+ License: MIT
7
+ Keywords: airbyte,connector-development-kit,cdk
8
+ Author: Airbyte
9
+ Author-email: contact@airbyte.io
10
+ Requires-Python: >=3.10,<3.13
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Scientific/Engineering
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Provides-Extra: file-based
21
+ Provides-Extra: sphinx-docs
22
+ Provides-Extra: sql
23
+ Provides-Extra: vector-db-based
24
+ Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
25
+ Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
26
+ Requires-Dist: Sphinx (>=4.2,<4.3) ; extra == "sphinx-docs"
27
+ Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
28
+ Requires-Dist: avro (>=1.11.2,<1.12.0) ; extra == "file-based"
29
+ Requires-Dist: backoff
30
+ Requires-Dist: cachetools
31
+ Requires-Dist: cohere (==4.21) ; extra == "vector-db-based"
32
+ Requires-Dist: cryptography (>=42.0.5,<44.0.0)
33
+ Requires-Dist: dpath (>=2.1.6,<3.0.0)
34
+ Requires-Dist: dunamai (>=1.22.0,<2.0.0)
35
+ Requires-Dist: fastavro (>=1.8.0,<1.9.0) ; extra == "file-based"
36
+ Requires-Dist: genson (==1.3.0)
37
+ Requires-Dist: isodate (>=0.6.1,<0.7.0)
38
+ Requires-Dist: jsonref (>=0.2,<0.3)
39
+ Requires-Dist: jsonschema (>=4.17.3,<4.18.0)
40
+ Requires-Dist: langchain (==0.1.16) ; extra == "vector-db-based"
41
+ Requires-Dist: langchain_core (==0.1.42)
42
+ Requires-Dist: markdown ; extra == "file-based"
43
+ Requires-Dist: nltk (==3.9.1)
44
+ Requires-Dist: numpy (<2)
45
+ Requires-Dist: openai[embeddings] (==0.27.9) ; extra == "vector-db-based"
46
+ Requires-Dist: orjson (>=3.10.7,<4.0.0)
47
+ Requires-Dist: pandas (==2.2.2)
48
+ Requires-Dist: pdf2image (==1.16.3) ; extra == "file-based"
49
+ Requires-Dist: pdfminer.six (==20221105) ; extra == "file-based"
50
+ Requires-Dist: pendulum (<3.0.0)
51
+ Requires-Dist: psutil (==6.1.0)
52
+ Requires-Dist: pyarrow (>=15.0.0,<15.1.0) ; extra == "file-based"
53
+ Requires-Dist: pydantic (>=2.7,<3.0)
54
+ Requires-Dist: pyjwt (>=2.8.0,<3.0.0)
55
+ Requires-Dist: pyrate-limiter (>=3.1.0,<3.2.0)
56
+ Requires-Dist: pytesseract (==0.3.10) ; extra == "file-based"
57
+ Requires-Dist: python-calamine (==0.2.3) ; extra == "file-based"
58
+ Requires-Dist: python-dateutil
59
+ Requires-Dist: python-snappy (==0.7.3) ; extra == "file-based"
60
+ Requires-Dist: python-ulid (>=3.0.0,<4.0.0)
61
+ Requires-Dist: pytz (==2024.1)
62
+ Requires-Dist: rapidfuzz (>=3.10.1,<4.0.0)
63
+ Requires-Dist: requests
64
+ Requires-Dist: requests_cache
65
+ Requires-Dist: serpyco-rs (>=1.10.2,<2.0.0)
66
+ Requires-Dist: sphinx-rtd-theme (>=1.0,<1.1) ; extra == "sphinx-docs"
67
+ Requires-Dist: sqlalchemy (>=2.0,<3.0,!=2.0.36) ; extra == "sql"
68
+ Requires-Dist: tiktoken (==0.8.0) ; extra == "vector-db-based"
69
+ Requires-Dist: unstructured.pytesseract (>=0.3.12) ; extra == "file-based"
70
+ Requires-Dist: unstructured[docx,pptx] (==0.10.27) ; extra == "file-based"
71
+ Requires-Dist: wcmatch (==10.0)
72
+ Requires-Dist: xmltodict (>=0.13.0,<0.14.0)
73
+ Project-URL: Documentation, https://docs.airbyte.io/
74
+ Project-URL: Repository, https://github.com/airbytehq/airbyte-python-cdk
75
+ Description-Content-Type: text/markdown
76
+
77
+ # Airbyte Python CDK and Low-Code CDK
78
+
79
+ Airbyte Python CDK is a framework for building Airbyte API Source Connectors. It provides a set of
80
+ classes and helpers that make it easy to build a connector against an HTTP API (REST, GraphQL, etc),
81
+ or a generic Python source connector.
82
+
83
+ ## Building Connectors with the CDK
84
+
85
+ If you're looking to build a connector, we highly recommend that you first
86
+ [start with the Connector Builder](https://docs.airbyte.com/connector-development/connector-builder-ui/overview).
87
+ It should be enough for 90% connectors out there. For more flexible and complex connectors, use the
88
+ [low-code CDK and `SourceDeclarativeManifest`](https://docs.airbyte.com/connector-development/config-based/low-code-cdk-overview).
89
+
90
+ For more information on building connectors, please see the [Connector Development](https://docs.airbyte.com/connector-development/) guide on [docs.airbyte.com](https://docs.airbyte.com).
91
+
92
+ ## Python CDK Overview
93
+
94
+ Airbyte CDK code is within `airbyte_cdk` directory. Here's a high level overview of what's inside:
95
+
96
+ - `airbyte_cdk/connector_builder`. Internal wrapper that helps the Connector Builder platform run a declarative manifest (low-code connector). You should not use this code directly. If you need to run a `SourceDeclarativeManifest`, take a look at [`source-declarative-manifest`](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-declarative-manifest) connector implementation instead.
97
+ - `airbyte_cdk/cli/source_declarative_manifest`. This module defines the `source-declarative-manifest` (aka "SDM") connector execution logic and associated CLI.
98
+ - `airbyte_cdk/destinations`. Basic Destination connector support! If you're building a Destination connector in Python, try that. Some of our vector DB destinations like `destination-pinecone` are using that code.
99
+ - `airbyte_cdk/models` expose `airbyte_protocol.models` as a part of `airbyte_cdk` package.
100
+ - `airbyte_cdk/sources/concurrent_source` is the Concurrent CDK implementation. It supports reading data from streams concurrently per slice / partition, useful for connectors with high throughput and high number of records.
101
+ - `airbyte_cdk/sources/declarative` is the low-code CDK. It works on top of Airbyte Python CDK, but provides a declarative manifest language to define streams, operations, etc. This makes it easier to build connectors without writing Python code.
102
+ - `airbyte_cdk/sources/file_based` is the CDK for file-based sources. Examples include S3, Azure, GCS, etc.
103
+
104
+ ## Contributing
105
+
106
+ For instructions on how to contribute, please see our [Contributing Guide](docs/CONTRIBUTING.md).
107
+
108
+ ## Release Management
109
+
110
+ Please see the [Release Management](docs/RELEASES.md) guide for information on how to perform releases and pre-releases.
111
+
@@ -0,0 +1,34 @@
1
+ # Airbyte Python CDK and Low-Code CDK
2
+
3
+ Airbyte Python CDK is a framework for building Airbyte API Source Connectors. It provides a set of
4
+ classes and helpers that make it easy to build a connector against an HTTP API (REST, GraphQL, etc),
5
+ or a generic Python source connector.
6
+
7
+ ## Building Connectors with the CDK
8
+
9
+ If you're looking to build a connector, we highly recommend that you first
10
+ [start with the Connector Builder](https://docs.airbyte.com/connector-development/connector-builder-ui/overview).
11
+ It should be enough for 90% connectors out there. For more flexible and complex connectors, use the
12
+ [low-code CDK and `SourceDeclarativeManifest`](https://docs.airbyte.com/connector-development/config-based/low-code-cdk-overview).
13
+
14
+ For more information on building connectors, please see the [Connector Development](https://docs.airbyte.com/connector-development/) guide on [docs.airbyte.com](https://docs.airbyte.com).
15
+
16
+ ## Python CDK Overview
17
+
18
+ Airbyte CDK code is within `airbyte_cdk` directory. Here's a high level overview of what's inside:
19
+
20
+ - `airbyte_cdk/connector_builder`. Internal wrapper that helps the Connector Builder platform run a declarative manifest (low-code connector). You should not use this code directly. If you need to run a `SourceDeclarativeManifest`, take a look at [`source-declarative-manifest`](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-declarative-manifest) connector implementation instead.
21
+ - `airbyte_cdk/cli/source_declarative_manifest`. This module defines the `source-declarative-manifest` (aka "SDM") connector execution logic and associated CLI.
22
+ - `airbyte_cdk/destinations`. Basic Destination connector support! If you're building a Destination connector in Python, try that. Some of our vector DB destinations like `destination-pinecone` are using that code.
23
+ - `airbyte_cdk/models` expose `airbyte_protocol.models` as a part of `airbyte_cdk` package.
24
+ - `airbyte_cdk/sources/concurrent_source` is the Concurrent CDK implementation. It supports reading data from streams concurrently per slice / partition, useful for connectors with high throughput and high number of records.
25
+ - `airbyte_cdk/sources/declarative` is the low-code CDK. It works on top of Airbyte Python CDK, but provides a declarative manifest language to define streams, operations, etc. This makes it easier to build connectors without writing Python code.
26
+ - `airbyte_cdk/sources/file_based` is the CDK for file-based sources. Examples include S3, Azure, GCS, etc.
27
+
28
+ ## Contributing
29
+
30
+ For instructions on how to contribute, please see our [Contributing Guide](docs/CONTRIBUTING.md).
31
+
32
+ ## Release Management
33
+
34
+ Please see the [Release Management](docs/RELEASES.md) guide for information on how to perform releases and pre-releases.
@@ -25,7 +25,7 @@ from datetime import datetime
25
25
  from pathlib import Path
26
26
  from typing import Any, cast
27
27
 
28
- from orjson import orjson
28
+ import orjson
29
29
 
30
30
  from airbyte_cdk.entrypoint import AirbyteEntrypoint, launch
31
31
  from airbyte_cdk.models import (
@@ -72,7 +72,7 @@ class SourceLocalYaml(YamlDeclarativeSource):
72
72
  super().__init__(
73
73
  catalog=catalog,
74
74
  config=config,
75
- state=state,
75
+ state=state, # type: ignore [arg-type]
76
76
  path_to_yaml="manifest.yaml",
77
77
  )
78
78
 
@@ -152,7 +152,9 @@ def handle_remote_manifest_command(args: list[str]) -> None:
152
152
  )
153
153
 
154
154
 
155
- def create_declarative_source(args: list[str]) -> ConcurrentDeclarativeSource:
155
+ def create_declarative_source(
156
+ args: list[str],
157
+ ) -> ConcurrentDeclarativeSource: # type: ignore [type-arg]
156
158
  """Creates the source with the injected config.
157
159
 
158
160
  This essentially does what other low-code sources do at build time, but at runtime,
@@ -160,10 +162,14 @@ def create_declarative_source(args: list[str]) -> ConcurrentDeclarativeSource:
160
162
  connector builder.
161
163
  """
162
164
  try:
165
+ config: Mapping[str, Any] | None
166
+ catalog: ConfiguredAirbyteCatalog | None
167
+ state: list[AirbyteStateMessage]
163
168
  config, catalog, state = _parse_inputs_into_config_catalog_state(args)
164
- if "__injected_declarative_manifest" not in config:
169
+ if config is None or "__injected_declarative_manifest" not in config:
165
170
  raise ValueError(
166
- f"Invalid config: `__injected_declarative_manifest` should be provided at the root of the config but config only has keys {list(config.keys())}"
171
+ "Invalid config: `__injected_declarative_manifest` should be provided at the root "
172
+ f"of the config but config only has keys: {list(config.keys() if config else [])}"
167
173
  )
168
174
  return ConcurrentDeclarativeSource(
169
175
  config=config,
@@ -10,7 +10,7 @@ import time
10
10
  from copy import copy
11
11
  from typing import Any, List, MutableMapping
12
12
 
13
- from orjson import orjson
13
+ import orjson
14
14
 
15
15
  from airbyte_cdk.models import (
16
16
  AirbyteControlConnectorConfigMessage,
@@ -6,7 +6,7 @@
6
6
  import sys
7
7
  from typing import Any, List, Mapping, Optional, Tuple
8
8
 
9
- from orjson import orjson
9
+ import orjson
10
10
 
11
11
  from airbyte_cdk.connector import BaseConnector
12
12
  from airbyte_cdk.connector_builder.connector_builder_handler import (
@@ -71,7 +71,7 @@ class MessageGrouper:
71
71
 
72
72
  is_nested_key = isinstance(field[0], str)
73
73
  if is_nested_key:
74
- return [field] # type: ignore # the type of field is expected to be List[str] here
74
+ return [field]
75
75
 
76
76
  raise ValueError(f"Unknown type for cursor field `{field}")
77
77
 
@@ -232,9 +232,9 @@ class MessageGrouper:
232
232
  current_slice_descriptor = self._parse_slice_description(message.log.message) # type: ignore[union-attr] # AirbyteMessage with MessageType.LOG has log.message
233
233
  current_slice_pages = []
234
234
  at_least_one_page_in_group = False
235
- elif message.type == MessageType.LOG and message.log.message.startswith(
235
+ elif message.type == MessageType.LOG and message.log.message.startswith( # type: ignore[union-attr] # None doesn't have 'message'
236
236
  SliceLogger.SLICE_LOG_PREFIX
237
- ): # type: ignore[union-attr] # AirbyteMessage with MessageType.LOG has log.message
237
+ ):
238
238
  # parsing the first slice
239
239
  current_slice_descriptor = self._parse_slice_description(message.log.message) # type: ignore[union-attr] # AirbyteMessage with MessageType.LOG has log.message
240
240
  elif message.type == MessageType.LOG:
@@ -274,14 +274,14 @@ class MessageGrouper:
274
274
  if message.trace.type == TraceType.ERROR: # type: ignore[union-attr] # AirbyteMessage with MessageType.TRACE has trace.type
275
275
  yield message.trace
276
276
  elif message.type == MessageType.RECORD:
277
- current_page_records.append(message.record.data) # type: ignore[union-attr] # AirbyteMessage with MessageType.RECORD has record.data
277
+ current_page_records.append(message.record.data) # type: ignore[arg-type, union-attr] # AirbyteMessage with MessageType.RECORD has record.data
278
278
  records_count += 1
279
279
  schema_inferrer.accumulate(message.record)
280
280
  datetime_format_inferrer.accumulate(message.record)
281
281
  elif (
282
282
  message.type == MessageType.CONTROL
283
- and message.control.type == OrchestratorType.CONNECTOR_CONFIG
284
- ): # type: ignore[union-attr] # AirbyteMessage with MessageType.CONTROL has control.type
283
+ and message.control.type == OrchestratorType.CONNECTOR_CONFIG # type: ignore[union-attr] # None doesn't have 'type'
284
+ ):
285
285
  yield message.control
286
286
  elif message.type == MessageType.STATE:
287
287
  latest_state_message = message.state # type: ignore[assignment]
@@ -310,8 +310,8 @@ class MessageGrouper:
310
310
  and message.type == MessageType.LOG
311
311
  and (
312
312
  MessageGrouper._is_page_http_request(json_message)
313
- or message.log.message.startswith("slice:")
314
- ) # type: ignore[union-attr] # AirbyteMessage with MessageType.LOG has log.message
313
+ or message.log.message.startswith("slice:") # type: ignore[union-attr] # AirbyteMessage with MessageType.LOG has log.message
314
+ )
315
315
  )
316
316
 
317
317
  @staticmethod
@@ -355,8 +355,8 @@ class MessageGrouper:
355
355
  StreamReadPages(
356
356
  request=current_page_request,
357
357
  response=current_page_response,
358
- records=deepcopy(current_page_records),
359
- ) # type: ignore
358
+ records=deepcopy(current_page_records), # type: ignore [arg-type]
359
+ )
360
360
  )
361
361
  current_page_records.clear()
362
362
 
@@ -9,7 +9,7 @@ import sys
9
9
  from abc import ABC, abstractmethod
10
10
  from typing import Any, Iterable, List, Mapping
11
11
 
12
- from orjson import orjson
12
+ import orjson
13
13
 
14
14
  from airbyte_cdk.connector import Connector
15
15
  from airbyte_cdk.exception_handler import init_uncaught_exception_handler
@@ -107,7 +107,7 @@ class BaseOpenAIEmbedder(Embedder):
107
107
  class OpenAIEmbedder(BaseOpenAIEmbedder):
108
108
  def __init__(self, config: OpenAIEmbeddingConfigModel, chunk_size: int):
109
109
  super().__init__(
110
- OpenAIEmbeddings(
110
+ OpenAIEmbeddings( # type: ignore [call-arg]
111
111
  openai_api_key=config.openai_key, max_retries=15, disallowed_special=()
112
112
  ),
113
113
  chunk_size,
@@ -118,7 +118,7 @@ class AzureOpenAIEmbedder(BaseOpenAIEmbedder):
118
118
  def __init__(self, config: AzureOpenAIEmbeddingConfigModel, chunk_size: int):
119
119
  # Azure OpenAI API has — as of 20230927 — a limit of 16 documents per request
120
120
  super().__init__(
121
- OpenAIEmbeddings(
121
+ OpenAIEmbeddings( # type: ignore [call-arg]
122
122
  openai_api_key=config.openai_key,
123
123
  chunk_size=16,
124
124
  max_retries=15,
@@ -83,11 +83,19 @@ class Writer:
83
83
  yield message
84
84
  elif message.type == Type.RECORD:
85
85
  record_chunks, record_id_to_delete = self.processor.process(message.record)
86
- self.chunks[(message.record.namespace, message.record.stream)].extend(record_chunks)
87
- if record_id_to_delete is not None:
88
- self.ids_to_delete[(message.record.namespace, message.record.stream)].append(
89
- record_id_to_delete
86
+ self.chunks[
87
+ ( # type: ignore [index] # expected "tuple[str, str]", got "tuple[str | Any | None, str | Any]"
88
+ message.record.namespace, # type: ignore [union-attr] # record not None
89
+ message.record.stream, # type: ignore [union-attr] # record not None
90
90
  )
91
+ ].extend(record_chunks)
92
+ if record_id_to_delete is not None:
93
+ self.ids_to_delete[
94
+ ( # type: ignore [index] # expected "tuple[str, str]", got "tuple[str | Any | None, str | Any]"
95
+ message.record.namespace, # type: ignore [union-attr] # record not None
96
+ message.record.stream, # type: ignore [union-attr] # record not None
97
+ )
98
+ ].append(record_id_to_delete)
91
99
  self.number_of_chunks += len(record_chunks)
92
100
  if self.number_of_chunks >= self.batch_size:
93
101
  self._process_batch()
@@ -15,14 +15,14 @@ from functools import wraps
15
15
  from typing import Any, DefaultDict, Iterable, List, Mapping, Optional
16
16
  from urllib.parse import urlparse
17
17
 
18
+ import orjson
18
19
  import requests
19
- from orjson import orjson
20
20
  from requests import PreparedRequest, Response, Session
21
21
 
22
22
  from airbyte_cdk.connector import TConfig
23
23
  from airbyte_cdk.exception_handler import init_uncaught_exception_handler
24
24
  from airbyte_cdk.logger import init_logger
25
- from airbyte_cdk.models import ( # type: ignore [attr-defined]
25
+ from airbyte_cdk.models import (
26
26
  AirbyteConnectionStatus,
27
27
  AirbyteMessage,
28
28
  AirbyteMessageSerializer,
@@ -129,7 +129,11 @@ class AirbyteEntrypoint(object):
129
129
 
130
130
  source_spec: ConnectorSpecification = self.source.spec(self.logger)
131
131
  try:
132
- with tempfile.TemporaryDirectory() as temp_dir:
132
+ with tempfile.TemporaryDirectory(
133
+ # Cleanup can fail on Windows due to file locks. Ignore if so,
134
+ # rather than failing the whole process.
135
+ ignore_cleanup_errors=True,
136
+ ) as temp_dir:
133
137
  os.environ[ENV_REQUEST_CACHE_PATH] = (
134
138
  temp_dir # set this as default directory for request_cache to store *.sqlite files
135
139
  )
@@ -246,19 +250,26 @@ class AirbyteEntrypoint(object):
246
250
  ) -> AirbyteMessage:
247
251
  match message.type:
248
252
  case Type.RECORD:
253
+ if message.record is None:
254
+ raise ValueError("Record message must have a record attribute")
255
+
249
256
  stream_message_count[
250
257
  HashableStreamDescriptor(
251
- name=message.record.stream, namespace=message.record.namespace
258
+ name=message.record.stream, # type: ignore[union-attr] # record has `stream`
259
+ namespace=message.record.namespace, # type: ignore[union-attr] # record has `namespace`
252
260
  )
253
- ] += 1.0 # type: ignore[union-attr] # record has `stream` and `namespace`
261
+ ] += 1.0
254
262
  case Type.STATE:
263
+ if message.state is None:
264
+ raise ValueError("State message must have a state attribute")
265
+
255
266
  stream_descriptor = message_utils.get_stream_descriptor(message)
256
267
 
257
268
  # Set record count from the counter onto the state message
258
269
  message.state.sourceStats = message.state.sourceStats or AirbyteStateStats() # type: ignore[union-attr] # state has `sourceStats`
259
- message.state.sourceStats.recordCount = stream_message_count.get(
270
+ message.state.sourceStats.recordCount = stream_message_count.get( # type: ignore[union-attr] # state has `sourceStats`
260
271
  stream_descriptor, 0.0
261
- ) # type: ignore[union-attr] # state has `sourceStats`
272
+ )
262
273
 
263
274
  # Reset the counter
264
275
  stream_message_count[stream_descriptor] = 0.0
@@ -280,7 +291,7 @@ class AirbyteEntrypoint(object):
280
291
 
281
292
  @staticmethod
282
293
  def airbyte_message_to_string(airbyte_message: AirbyteMessage) -> str:
283
- return orjson.dumps(AirbyteMessageSerializer.dump(airbyte_message)).decode() # type: ignore[no-any-return] # orjson.dumps(message).decode() always returns string
294
+ return orjson.dumps(AirbyteMessageSerializer.dump(airbyte_message)).decode()
284
295
 
285
296
  @classmethod
286
297
  def extract_state(cls, args: List[str]) -> Optional[Any]:
@@ -7,7 +7,7 @@ import logging
7
7
  import logging.config
8
8
  from typing import Any, Callable, Mapping, Optional, Tuple
9
9
 
10
- from orjson import orjson
10
+ import orjson
11
11
 
12
12
  from airbyte_cdk.models import (
13
13
  AirbyteLogMessage,
@@ -78,7 +78,7 @@ class AirbyteLogFormatter(logging.Formatter):
78
78
  log_message = AirbyteMessage(
79
79
  type=Type.LOG, log=AirbyteLogMessage(level=airbyte_level, message=message)
80
80
  )
81
- return orjson.dumps(AirbyteMessageSerializer.dump(log_message)).decode() # type: ignore[no-any-return] # orjson.dumps(message).decode() always returns string
81
+ return orjson.dumps(AirbyteMessageSerializer.dump(log_message)).decode()
82
82
 
83
83
  @staticmethod
84
84
  def extract_extra_args_from_record(record: logging.LogRecord) -> Mapping[str, Any]:
@@ -200,7 +200,7 @@ class AbstractSource(Source, ABC):
200
200
  if len(stream_name_to_exception) > 0:
201
201
  error_message = generate_failed_streams_error_message(
202
202
  {key: [value] for key, value in stream_name_to_exception.items()}
203
- ) # type: ignore # for some reason, mypy can't figure out the types for key and value
203
+ )
204
204
  logger.info(error_message)
205
205
  # We still raise at least one exception when a stream raises an exception because the platform currently relies
206
206
  # on a non-zero exit code to determine if a sync attempt has failed. We also raise the exception as a config_error
@@ -24,4 +24,4 @@ class BaseConfig(BaseModel):
24
24
  rename_key(schema, old_key="anyOf", new_key="oneOf") # UI supports only oneOf
25
25
  expand_refs(schema)
26
26
  schema.pop("description", None) # description added from the docstring
27
- return schema # type: ignore[no-any-return]
27
+ return schema
@@ -4,7 +4,7 @@
4
4
 
5
5
  import copy
6
6
  from dataclasses import dataclass
7
- from typing import Any, List, Mapping, MutableMapping, Optional, Tuple, Union
7
+ from typing import Any, List, Mapping, MutableMapping, Optional, Tuple, Union, cast
8
8
 
9
9
  from airbyte_cdk.models import (
10
10
  AirbyteMessage,
@@ -15,6 +15,7 @@ from airbyte_cdk.models import (
15
15
  StreamDescriptor,
16
16
  )
17
17
  from airbyte_cdk.models import Type as MessageType
18
+ from airbyte_cdk.models.airbyte_protocol import AirbyteGlobalState, AirbyteStateBlob
18
19
 
19
20
 
20
21
  @dataclass(frozen=True)
@@ -118,8 +119,12 @@ class ConnectorStateManager:
118
119
  is_global = cls._is_global_state(state)
119
120
 
120
121
  if is_global:
121
- global_state = state[0].global_ # type: ignore # We verified state is a list in _is_global_state
122
- shared_state = copy.deepcopy(global_state.shared_state, {}) # type: ignore[union-attr] # global_state has shared_state
122
+ # We already validate that this is a global state message, not None:
123
+ global_state = cast(AirbyteGlobalState, state[0].global_)
124
+ # global_state has shared_state, also not None:
125
+ shared_state: AirbyteStateBlob = cast(
126
+ AirbyteStateBlob, copy.deepcopy(global_state.shared_state, {})
127
+ )
123
128
  streams = {
124
129
  HashableStreamDescriptor(
125
130
  name=per_stream_state.stream_descriptor.name,
@@ -131,7 +136,7 @@ class ConnectorStateManager:
131
136
  else:
132
137
  streams = {
133
138
  HashableStreamDescriptor(
134
- name=per_stream_state.stream.stream_descriptor.name,
139
+ name=per_stream_state.stream.stream_descriptor.name, # type: ignore[union-attr] # stream has stream_descriptor
135
140
  namespace=per_stream_state.stream.stream_descriptor.namespace, # type: ignore[union-attr] # stream has stream_descriptor
136
141
  ): per_stream_state.stream.stream_state # type: ignore[union-attr] # stream has stream_state
137
142
  for per_stream_state in state
@@ -135,7 +135,7 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
135
135
  return self.grant_type.eval(self.config) # type: ignore # eval returns a string in this context
136
136
 
137
137
  def get_refresh_request_body(self) -> Mapping[str, Any]:
138
- return self._refresh_request_body.eval(self.config) # type: ignore # eval should return a Mapping in this context
138
+ return self._refresh_request_body.eval(self.config)
139
139
 
140
140
  def get_token_expiry_date(self) -> pendulum.DateTime:
141
141
  return self._token_expiry_date # type: ignore # _token_expiry_date is a pendulum.DateTime. It is never None despite what mypy thinks
@@ -28,7 +28,12 @@ class SelectiveAuthenticator(DeclarativeAuthenticator):
28
28
  **kwargs: Any,
29
29
  ) -> DeclarativeAuthenticator:
30
30
  try:
31
- selected_key = str(dpath.get(config, authenticator_selection_path))
31
+ selected_key = str(
32
+ dpath.get(
33
+ config, # type: ignore [arg-type] # Dpath wants mutable mapping but doesn't need it.
34
+ authenticator_selection_path,
35
+ )
36
+ )
32
37
  except KeyError as err:
33
38
  raise ValueError(
34
39
  "The path from `authenticator_selection_path` is not found in the config."
@@ -128,7 +128,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
128
128
  initial_number_of_partitions_to_generate=initial_number_of_partitions_to_generate,
129
129
  logger=self.logger,
130
130
  slice_logger=self._slice_logger,
131
- message_repository=self.message_repository, # type: ignore # message_repository is always instantiated with a value by factory
131
+ message_repository=self.message_repository,
132
132
  )
133
133
 
134
134
  def read(
@@ -200,12 +200,15 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
200
200
  # Some low-code sources use a combination of DeclarativeStream and regular Python streams. We can't inspect
201
201
  # these legacy Python streams the way we do low-code streams to determine if they are concurrent compatible,
202
202
  # so we need to treat them as synchronous
203
- if isinstance(declarative_stream, DeclarativeStream):
203
+ if (
204
+ isinstance(declarative_stream, DeclarativeStream)
205
+ and name_to_stream_mapping[declarative_stream.name].get("retriever")["type"]
206
+ == "SimpleRetriever"
207
+ ):
204
208
  incremental_sync_component_definition = name_to_stream_mapping[
205
209
  declarative_stream.name
206
210
  ].get("incremental_sync")
207
211
 
208
-
209
212
  partition_router_component_definition = (
210
213
  name_to_stream_mapping[declarative_stream.name]
211
214
  .get("retriever")
@@ -41,12 +41,12 @@ class MinMaxDatetime:
41
41
  self.datetime = InterpolatedString.create(self.datetime, parameters=parameters or {})
42
42
  self._parser = DatetimeParser()
43
43
  self.min_datetime = (
44
- InterpolatedString.create(self.min_datetime, parameters=parameters)
44
+ InterpolatedString.create(self.min_datetime, parameters=parameters) # type: ignore [assignment] # expression has type "InterpolatedString | None", variable has type "InterpolatedString | str"
45
45
  if self.min_datetime
46
46
  else None
47
47
  ) # type: ignore
48
48
  self.max_datetime = (
49
- InterpolatedString.create(self.max_datetime, parameters=parameters)
49
+ InterpolatedString.create(self.max_datetime, parameters=parameters) # type: ignore [assignment] # expression has type "InterpolatedString | None", variable has type "InterpolatedString | str"
50
50
  if self.max_datetime
51
51
  else None
52
52
  ) # type: ignore
@@ -66,7 +66,13 @@ class MinMaxDatetime:
66
66
  datetime_format = "%Y-%m-%dT%H:%M:%S.%f%z"
67
67
 
68
68
  time = self._parser.parse(
69
- str(self.datetime.eval(config, **additional_parameters)), datetime_format
69
+ str(
70
+ self.datetime.eval( # type: ignore[union-attr] # str has no attribute "eval"
71
+ config,
72
+ **additional_parameters,
73
+ )
74
+ ),
75
+ datetime_format,
70
76
  ) # type: ignore # datetime is always cast to an interpolated string
71
77
 
72
78
  if self.min_datetime:
@@ -105,7 +111,7 @@ class MinMaxDatetime:
105
111
  if isinstance(interpolated_string_or_min_max_datetime, InterpolatedString) or isinstance(
106
112
  interpolated_string_or_min_max_datetime, str
107
113
  ):
108
- return MinMaxDatetime(
114
+ return MinMaxDatetime( # type: ignore [call-arg]
109
115
  datetime=interpolated_string_or_min_max_datetime, parameters=parameters
110
116
  )
111
117
  else: