airbyte-cdk 6.45.1.post46.dev14423672753__tar.gz → 6.45.2__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 (386) hide show
  1. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/PKG-INFO +1 -2
  2. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/connector_builder_handler.py +3 -12
  3. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -2
  4. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +1 -1
  5. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/entrypoint_wrapper.py +0 -4
  6. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/pyproject.toml +2 -6
  7. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/__init__.py +0 -6
  8. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/models/__init__.py +0 -7
  9. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/models/scenario.py +0 -74
  10. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/test_suites/__init__.py +0 -25
  11. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/test_suites/connector_base.py +0 -223
  12. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/test_suites/declarative_sources.py +0 -74
  13. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/test_suites/destination_base.py +0 -12
  14. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/test_suites/source_base.py +0 -128
  15. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/utils/__init__.py +0 -0
  16. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/declarative/utils/job_runner.py +0 -150
  17. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/fixtures/__init__.py +0 -0
  18. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/fixtures/auto.py +0 -14
  19. airbyte_cdk-6.45.1.post46.dev14423672753/airbyte_cdk/test/pytest_config/plugin.py +0 -46
  20. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/LICENSE.txt +0 -0
  21. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/LICENSE_SHORT +0 -0
  22. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/README.md +0 -0
  23. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/__init__.py +0 -0
  24. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/cli/__init__.py +0 -0
  25. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  26. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  27. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  28. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/config_observation.py +0 -0
  29. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector.py +0 -0
  30. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/README.md +0 -0
  31. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/__init__.py +0 -0
  32. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/main.py +0 -0
  33. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/models.py +0 -0
  34. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  35. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  36. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  37. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  38. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/__init__.py +0 -0
  39. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/destination.py +0 -0
  40. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  41. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  42. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  43. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  44. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  45. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  46. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  47. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  48. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  49. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/entrypoint.py +0 -0
  50. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/exception_handler.py +0 -0
  51. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/logger.py +0 -0
  52. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/models/__init__.py +0 -0
  53. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  54. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  55. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  56. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/models/well_known_types.py +0 -0
  57. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/py.typed +0 -0
  58. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/__init__.py +0 -0
  59. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/abstract_source.py +0 -0
  60. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  61. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  62. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  63. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  64. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  65. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  66. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  67. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/config.py +0 -0
  68. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  69. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  70. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  71. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  72. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  73. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  74. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  75. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  76. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  77. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  78. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  79. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  80. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  81. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  82. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  83. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  84. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  85. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  86. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  87. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  88. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  89. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  90. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  91. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  92. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  93. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  94. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
  95. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  96. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  97. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  98. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  99. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  100. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  101. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  102. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  103. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  104. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  105. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  106. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  107. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  108. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  109. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  110. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  111. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  112. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  113. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  114. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  115. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  116. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  117. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  118. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  119. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  120. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  121. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  122. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  123. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  124. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  125. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  126. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  127. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  128. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  129. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  130. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  131. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  132. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  133. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  134. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  135. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  136. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  137. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  138. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  139. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  140. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  141. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  142. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  143. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
  144. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  145. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  146. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  147. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  148. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  149. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  150. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  151. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  152. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  153. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  154. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  155. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  156. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  157. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  158. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  159. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  160. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  161. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  162. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  163. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  164. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  165. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  166. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  167. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  168. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  169. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  170. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  171. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  172. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  173. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  174. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  175. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  176. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  177. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  178. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  179. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  180. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  181. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  182. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  183. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  184. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  185. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  186. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  187. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  188. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  189. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  190. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  191. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  192. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  193. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  194. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  195. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  196. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  197. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  198. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  199. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  200. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  201. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  202. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  203. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  204. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  205. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  206. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  207. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  208. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  209. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  210. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  211. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  212. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  213. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  214. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  215. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  216. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  217. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  218. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  219. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  220. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  221. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  222. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  223. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/types.py +0 -0
  224. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  225. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/README.md +0 -0
  226. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  227. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  228. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  229. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  230. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  231. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  232. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  233. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  234. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  235. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  236. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  237. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  238. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  239. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  240. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  241. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  242. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  243. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  244. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  245. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  246. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  247. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  248. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  249. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  250. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  251. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  252. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  253. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  254. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  255. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  256. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  257. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  258. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  259. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  260. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  261. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  262. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  263. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  264. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  265. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  266. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  267. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  268. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  269. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  270. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  271. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  272. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  273. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  274. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  275. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/file_based/types.py +0 -0
  276. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/http_config.py +0 -0
  277. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/http_logger.py +0 -0
  278. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/message/__init__.py +0 -0
  279. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/message/repository.py +0 -0
  280. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/source.py +0 -0
  281. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  282. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/__init__.py +0 -0
  283. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  284. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  285. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  286. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  287. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  288. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  289. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  290. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  291. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  292. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  293. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  294. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  295. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  296. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  297. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  298. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  299. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  300. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  301. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  302. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  303. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  304. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  305. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  306. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  307. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  308. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  309. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  310. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  311. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  312. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  313. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  314. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/core.py +0 -0
  315. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  316. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  317. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  318. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  319. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  320. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  321. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  322. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  323. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  324. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  325. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  326. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  327. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/http.py +0 -0
  328. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  329. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  330. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  331. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  332. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  333. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  334. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  335. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  336. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  337. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/types.py +0 -0
  338. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/utils/__init__.py +0 -0
  339. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/utils/casing.py +0 -0
  340. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  341. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  342. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  343. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/utils/transform.py +0 -0
  344. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sources/utils/types.py +0 -0
  345. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/__init__.py +0 -0
  346. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/_util/__init__.py +0 -0
  347. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/_util/hashing.py +0 -0
  348. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  349. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/constants.py +0 -0
  350. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/exceptions.py +0 -0
  351. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/secrets.py +0 -0
  352. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/shared/__init__.py +0 -0
  353. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  354. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  355. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/sql/types.py +0 -0
  356. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/__init__.py +0 -0
  357. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/catalog_builder.py +0 -0
  358. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  359. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  360. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  361. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/mock_http/request.py +0 -0
  362. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/mock_http/response.py +0 -0
  363. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  364. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/state_builder.py +0 -0
  365. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/utils/__init__.py +0 -0
  366. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/utils/data.py +0 -0
  367. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  368. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  369. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/test/utils/reading.py +0 -0
  370. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/__init__.py +0 -0
  371. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  372. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/analytics_message.py +0 -0
  373. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/constants.py +0 -0
  374. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  375. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  376. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/event_timing.py +0 -0
  377. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  378. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  379. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/message_utils.py +0 -0
  380. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  381. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/print_buffer.py +0 -0
  382. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  383. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/slice_hasher.py +0 -0
  384. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  385. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  386. {airbyte_cdk-6.45.1.post46.dev14423672753 → airbyte_cdk-6.45.2}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.45.1.post46.dev14423672753
3
+ Version: 6.45.2
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -26,7 +26,6 @@ Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
26
26
  Requires-Dist: anyascii (>=0.3.2,<0.4.0)
27
27
  Requires-Dist: avro (>=1.11.2,<1.13.0) ; extra == "file-based"
28
28
  Requires-Dist: backoff
29
- Requires-Dist: boltons (>=25.0.0,<26.0.0)
30
29
  Requires-Dist: cachetools
31
30
  Requires-Dist: cohere (==4.21) ; extra == "vector-db-based"
32
31
  Requires-Dist: cryptography (>=44.0.0,<45.0.0)
@@ -35,10 +35,8 @@ MAX_RECORDS_KEY = "max_records"
35
35
  MAX_STREAMS_KEY = "max_streams"
36
36
 
37
37
 
38
- @dataclass(kw_only=True)
38
+ @dataclass
39
39
  class TestLimits:
40
- __test__: bool = False # Prevent pytest from treating this as a test case, despite its name
41
-
42
40
  max_records: int = field(default=DEFAULT_MAXIMUM_RECORDS)
43
41
  max_pages_per_slice: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
44
42
  max_slices: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
@@ -53,12 +51,7 @@ def get_limits(config: Mapping[str, Any]) -> TestLimits:
53
51
  max_slices = command_config.get(MAX_SLICES_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_SLICES
54
52
  max_records = command_config.get(MAX_RECORDS_KEY) or DEFAULT_MAXIMUM_RECORDS
55
53
  max_streams = command_config.get(MAX_STREAMS_KEY) or DEFAULT_MAXIMUM_STREAMS
56
- return TestLimits(
57
- max_records=max_records,
58
- max_pages_per_slice=max_pages_per_slice,
59
- max_slices=max_slices,
60
- max_streams=max_streams,
61
- )
54
+ return TestLimits(max_records, max_pages_per_slice, max_slices, max_streams)
62
55
 
63
56
 
64
57
  def create_source(config: Mapping[str, Any], limits: TestLimits) -> ManifestDeclarativeSource:
@@ -86,9 +79,7 @@ def read_stream(
86
79
  ) -> AirbyteMessage:
87
80
  try:
88
81
  test_read_handler = TestReader(
89
- max_pages_per_slice=limits.max_pages_per_slice,
90
- max_slices=limits.max_slices,
91
- max_record_limit=limits.max_records,
82
+ limits.max_pages_per_slice, limits.max_slices, limits.max_records
92
83
  )
93
84
  # The connector builder only supports a single stream
94
85
  stream_name = configured_catalog.streams[0].stream.name
@@ -66,8 +66,6 @@ class TestReader:
66
66
 
67
67
  """
68
68
 
69
- __test__: bool = False # Prevent pytest from treating this as a test case, despite its name
70
-
71
69
  logger = logging.getLogger("airbyte.connector-builder")
72
70
 
73
71
  def __init__(
@@ -364,7 +364,7 @@ class SimpleRetriever(Retriever):
364
364
  pagination_complete = False
365
365
  initial_token = self._paginator.get_initial_token()
366
366
  next_page_token: Optional[Mapping[str, Any]] = (
367
- {"next_page_token": initial_token} if initial_token else None
367
+ {"next_page_token": initial_token} if initial_token is not None else None
368
368
  )
369
369
  while not pagination_complete:
370
370
  response = self._fetch_next_page(stream_state, stream_slice, next_page_token)
@@ -82,10 +82,6 @@ class EntrypointOutput:
82
82
  def state_messages(self) -> List[AirbyteMessage]:
83
83
  return self._get_message_by_types([Type.STATE])
84
84
 
85
- @property
86
- def connection_status_messages(self) -> List[AirbyteMessage]:
87
- return self._get_message_by_types([Type.CONNECTION_STATUS])
88
-
89
85
  @property
90
86
  def most_recent_state(self) -> Any:
91
87
  state_messages = self._get_message_by_types([Type.STATE])
@@ -23,7 +23,7 @@ classifiers = [
23
23
  keywords = ["airbyte", "connector-development-kit", "cdk"]
24
24
 
25
25
  # Python CDK uses dynamic versioning: https://github.com/mtkennerly/poetry-dynamic-versioning
26
- version = "6.45.1.post46.dev14423672753" # Version will be calculated dynamically.
26
+ version = "6.45.2" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false
@@ -32,7 +32,6 @@ enable = false
32
32
  python = ">=3.10,<3.13"
33
33
  airbyte-protocol-models-dataclasses = "^0.14"
34
34
  backoff = "*"
35
- boltons = "^25.0.0"
36
35
  cachetools = "*"
37
36
  dpath = "^2.1.6"
38
37
  dunamai = "^1.22.0"
@@ -89,7 +88,7 @@ whenever = "^0.6.16"
89
88
  freezegun = "*"
90
89
  mypy = "*"
91
90
  asyncio = "3.4.3"
92
- ruff = "^0.11.4"
91
+ ruff = "^0.11.5"
93
92
  pdoc = "^15.0.0"
94
93
  poethepoet = "^0.24.2"
95
94
  pyproject-flake8 = "^6.1.0"
@@ -153,9 +152,6 @@ check-lockfile = {cmd = "poetry check", help = "Check the poetry lock file."}
153
152
  lint-fix = { cmd = "poetry run ruff check --fix .", help = "Auto-fix any lint issues that Ruff can automatically resolve (excluding 'unsafe' fixes)." }
154
153
  lint-fix-unsafe = { cmd = "poetry run ruff check --fix --unsafe-fixes .", help = "Lint-fix modified files, including 'unsafe' fixes. It is recommended to first commit any pending changes and then always manually review any unsafe changes applied." }
155
154
 
156
- # ruff fix everything
157
- ruff-fix = { sequence = ["lint-fix", "_format-fix-ruff"], help = "Lint-fix and format-fix all code." }
158
-
159
155
  # Combined Check and Fix tasks
160
156
 
161
157
  check-all = {sequence = ["lint", "format-check", "type-check", "check-lockfile"], help = "Lint, format, and type-check modified files.", ignore_fail = "return_non_zero"}
@@ -1,6 +0,0 @@
1
- # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
2
- """Declarative tests framework.
3
-
4
- This module provides fixtures and utilities for testing Airbyte sources and destinations
5
- in a declarative way.
6
- """
@@ -1,7 +0,0 @@
1
- from airbyte_cdk.test.declarative.models.scenario import (
2
- ConnectorTestScenario,
3
- )
4
-
5
- __all__ = [
6
- "ConnectorTestScenario",
7
- ]
@@ -1,74 +0,0 @@
1
- # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
2
- """Run acceptance tests in PyTest.
3
-
4
- These tests leverage the same `acceptance-test-config.yml` configuration files as the
5
- acceptance tests in CAT, but they run in PyTest instead of CAT. This allows us to run
6
- the acceptance tests in the same local environment as we are developing in, speeding
7
- up iteration cycles.
8
- """
9
-
10
- from __future__ import annotations
11
-
12
- from pathlib import Path
13
- from typing import Any, Literal, cast
14
-
15
- import yaml
16
- from pydantic import BaseModel
17
-
18
-
19
- class ConnectorTestScenario(BaseModel):
20
- """Acceptance test instance, as a Pydantic model.
21
-
22
- This class represents an acceptance test instance, which is a single test case
23
- that can be run against a connector. It is used to deserialize and validate the
24
- acceptance test configuration file.
25
- """
26
-
27
- class AcceptanceTestExpectRecords(BaseModel):
28
- path: Path
29
- exact_order: bool = False
30
-
31
- class AcceptanceTestFileTypes(BaseModel):
32
- skip_test: bool
33
- bypass_reason: str
34
-
35
- config_path: Path | None = None
36
- config_dict: dict[str, Any] | None = None
37
-
38
- id: str | None = None
39
-
40
- configured_catalog_path: Path | None = None
41
- timeout_seconds: int | None = None
42
- expect_records: AcceptanceTestExpectRecords | None = None
43
- file_types: AcceptanceTestFileTypes | None = None
44
- status: Literal["succeed", "failed"] | None = None
45
-
46
- def get_config_dict(self) -> dict[str, Any]:
47
- """Return the config dictionary.
48
-
49
- If a config dictionary has already been loaded, return it. Otherwise, load
50
- the config file and return the dictionary.
51
- """
52
- if self.config_dict:
53
- return self.config_dict
54
-
55
- if self.config_path:
56
- return cast(dict[str, Any], yaml.safe_load(self.config_path.read_text()))
57
-
58
- raise ValueError("No config dictionary or path provided.")
59
-
60
- @property
61
- def expect_exception(self) -> bool:
62
- return self.status and self.status == "failed" or False
63
-
64
- @property
65
- def instance_name(self) -> str:
66
- return self.config_path.stem if self.config_path else "Unnamed Scenario"
67
-
68
- def __str__(self) -> str:
69
- if self.id:
70
- return f"'{self.id}' Test Scenario"
71
- if self.config_path:
72
- return f"'{self.config_path.name}' Test Scenario"
73
-
74
- return f"'{hash(self)}' Test Scenario"
@@ -1,25 +0,0 @@
1
- # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
2
- """Declarative test suites.
3
-
4
- Here we have base classes for a robust set of declarative connector test suites.
5
- """
6
-
7
- from airbyte_cdk.test.declarative.test_suites.connector_base import (
8
- ConnectorTestScenario,
9
- ConnectorTestSuiteBase,
10
- generate_tests,
11
- )
12
- from airbyte_cdk.test.declarative.test_suites.declarative_sources import (
13
- DeclarativeSourceTestSuite,
14
- )
15
- from airbyte_cdk.test.declarative.test_suites.destination_base import DestinationTestSuiteBase
16
- from airbyte_cdk.test.declarative.test_suites.source_base import SourceTestSuiteBase
17
-
18
- __all__ = [
19
- "ConnectorTestScenario",
20
- "ConnectorTestSuiteBase",
21
- "DeclarativeSourceTestSuite",
22
- "DestinationTestSuiteBase",
23
- "SourceTestSuiteBase",
24
- "generate_tests",
25
- ]
@@ -1,223 +0,0 @@
1
- # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
2
- """Base class for connector test suites."""
3
-
4
- from __future__ import annotations
5
-
6
- import abc
7
- import inspect
8
- import sys
9
- from collections.abc import Callable
10
- from pathlib import Path
11
- from typing import Any, Literal, cast
12
-
13
- import pytest
14
- import yaml
15
- from boltons.typeutils import classproperty
16
-
17
- from airbyte_cdk import Connector
18
- from airbyte_cdk.models import (
19
- AirbyteMessage,
20
- Type,
21
- )
22
- from airbyte_cdk.test import entrypoint_wrapper
23
- from airbyte_cdk.test.declarative.models import (
24
- ConnectorTestScenario,
25
- )
26
- from airbyte_cdk.test.declarative.utils.job_runner import IConnector, run_test_job
27
-
28
- ACCEPTANCE_TEST_CONFIG = "acceptance-test-config.yml"
29
- MANIFEST_YAML = "manifest.yaml"
30
-
31
-
32
- class JavaClass(str):
33
- """A string that represents a Java class."""
34
-
35
-
36
- class DockerImage(str):
37
- """A string that represents a Docker image."""
38
-
39
-
40
- class RunnableConnector(abc.ABC):
41
- """A connector that can be run in a test scenario."""
42
-
43
- @abc.abstractmethod
44
- def launch(cls, args: list[str] | None) -> None: ...
45
-
46
-
47
- def generate_tests(metafunc: pytest.Metafunc) -> None:
48
- """
49
- A helper for pytest_generate_tests hook.
50
-
51
- If a test method (in a class subclassed from our base class)
52
- declares an argument 'instance', this function retrieves the
53
- 'scenarios' attribute from the test class and parametrizes that
54
- test with the values from 'scenarios'.
55
-
56
- ## Usage
57
-
58
- ```python
59
- from airbyte_cdk.test.declarative.test_suites.connector_base import (
60
- generate_tests,
61
- ConnectorTestSuiteBase,
62
- )
63
-
64
- def pytest_generate_tests(metafunc):
65
- generate_tests(metafunc)
66
-
67
- class TestMyConnector(ConnectorTestSuiteBase):
68
- ...
69
-
70
- ```
71
- """
72
- # Check if the test function requires an 'instance' argument
73
- if "instance" in metafunc.fixturenames:
74
- # Retrieve the test class
75
- test_class = metafunc.cls
76
- if test_class is None:
77
- raise ValueError("Expected a class here.")
78
- # Get the 'scenarios' attribute from the class
79
- scenarios_attr = getattr(test_class, "get_scenarios", None)
80
- if scenarios_attr is None:
81
- raise ValueError(
82
- f"Test class {test_class} does not have a 'scenarios' attribute. "
83
- "Please define the 'scenarios' attribute in the test class."
84
- )
85
-
86
- scenarios = test_class.get_scenarios()
87
- ids = [str(scenario) for scenario in scenarios]
88
- metafunc.parametrize("instance", scenarios, ids=ids)
89
-
90
-
91
- class ConnectorTestSuiteBase(abc.ABC):
92
- """Base class for connector test suites."""
93
-
94
- connector: type[IConnector] | Callable[[], IConnector] | None = None
95
- """The connector class or a factory function that returns an instance of IConnector."""
96
-
97
- @classmethod
98
- def get_test_class_dir(cls) -> Path:
99
- """Get the file path that contains the class."""
100
- module = sys.modules[cls.__module__]
101
- # Get the directory containing the test file
102
- return Path(inspect.getfile(module)).parent
103
-
104
- @classmethod
105
- def create_connector(
106
- cls,
107
- scenario: ConnectorTestScenario,
108
- ) -> IConnector:
109
- """Instantiate the connector class."""
110
- connector = cls.connector # type: ignore
111
- if connector:
112
- if callable(connector) or isinstance(connector, type):
113
- # If the connector is a class or factory function, instantiate it:
114
- return cast(IConnector, connector()) # type: ignore [redundant-cast]
115
-
116
- # Otherwise, we can't instantiate the connector. Fail with a clear error message.
117
- raise NotImplementedError(
118
- "No connector class or connector factory function provided. "
119
- "Please provide a class or factory function in `cls.connector`, or "
120
- "override `cls.create_connector()` to define a custom initialization process."
121
- )
122
-
123
- def run_test_scenario(
124
- self,
125
- verb: Literal["read", "check", "discover"],
126
- test_scenario: ConnectorTestScenario,
127
- *,
128
- catalog: dict[str, Any] | None = None,
129
- ) -> entrypoint_wrapper.EntrypointOutput:
130
- """Run a test job from provided CLI args and return the result."""
131
- return run_test_job(
132
- self.create_connector(test_scenario),
133
- verb,
134
- test_instance=test_scenario,
135
- catalog=catalog,
136
- )
137
-
138
- # Test Definitions
139
-
140
- def test_check(
141
- self,
142
- instance: ConnectorTestScenario,
143
- ) -> None:
144
- """Run `connection` acceptance tests."""
145
- result = self.run_test_scenario(
146
- "check",
147
- test_scenario=instance,
148
- )
149
- conn_status_messages: list[AirbyteMessage] = [
150
- msg for msg in result._messages if msg.type == Type.CONNECTION_STATUS
151
- ] # noqa: SLF001 # Non-public API
152
- assert len(conn_status_messages) == 1, (
153
- f"Expected exactly one CONNECTION_STATUS message. Got: {result._messages}"
154
- )
155
-
156
- @classmethod
157
- def get_connector_root_dir(cls) -> Path:
158
- """Get the root directory of the connector."""
159
- for parent in cls.get_test_class_dir().parents:
160
- if (parent / MANIFEST_YAML).exists():
161
- return parent
162
- if (parent / ACCEPTANCE_TEST_CONFIG).exists():
163
- return parent
164
- if parent.name == "airbyte_cdk":
165
- break
166
- # If we reach here, we didn't find the manifest file in any parent directory
167
- # Check if the manifest file exists in the current directory
168
- for parent in Path.cwd().parents:
169
- if (parent / MANIFEST_YAML).exists():
170
- return parent
171
- if (parent / ACCEPTANCE_TEST_CONFIG).exists():
172
- return parent
173
- if parent.name == "airbyte_cdk":
174
- break
175
-
176
- raise FileNotFoundError(
177
- "Could not find connector root directory relative to "
178
- f"'{str(cls.get_test_class_dir())}' or '{str(Path.cwd())}'."
179
- )
180
-
181
- @classproperty
182
- def acceptance_test_config_path(cls) -> Path:
183
- """Get the path to the acceptance test config file."""
184
- result = cls.get_connector_root_dir() / ACCEPTANCE_TEST_CONFIG
185
- if result.exists():
186
- return result
187
-
188
- raise FileNotFoundError(f"Acceptance test config file not found at: {str(result)}")
189
-
190
- @classmethod
191
- def get_scenarios(
192
- cls,
193
- ) -> list[ConnectorTestScenario]:
194
- """Get acceptance tests for a given category.
195
-
196
- This has to be a separate function because pytest does not allow
197
- parametrization of fixtures with arguments from the test class itself.
198
- """
199
- category = "connection"
200
- all_tests_config = yaml.safe_load(cls.acceptance_test_config_path.read_text())
201
- if "acceptance_tests" not in all_tests_config:
202
- raise ValueError(
203
- f"Acceptance tests config not found in {cls.acceptance_test_config_path}."
204
- f" Found only: {str(all_tests_config)}."
205
- )
206
- if category not in all_tests_config["acceptance_tests"]:
207
- return []
208
- if "tests" not in all_tests_config["acceptance_tests"][category]:
209
- raise ValueError(f"No tests found for category {category}")
210
-
211
- tests_scenarios = [
212
- ConnectorTestScenario.model_validate(test)
213
- for test in all_tests_config["acceptance_tests"][category]["tests"]
214
- if "iam_role" not in test["config_path"]
215
- ]
216
- connector_root = cls.get_connector_root_dir().absolute()
217
- for test in tests_scenarios:
218
- if test.config_path:
219
- test.config_path = connector_root / test.config_path
220
- if test.configured_catalog_path:
221
- test.configured_catalog_path = connector_root / test.configured_catalog_path
222
-
223
- return tests_scenarios
@@ -1,74 +0,0 @@
1
- import os
2
- from hashlib import md5
3
- from pathlib import Path
4
- from typing import Any, cast
5
-
6
- import yaml
7
- from boltons.typeutils import classproperty
8
-
9
- from airbyte_cdk.sources.declarative.concurrent_declarative_source import (
10
- ConcurrentDeclarativeSource,
11
- )
12
- from airbyte_cdk.test.declarative.models import ConnectorTestScenario
13
- from airbyte_cdk.test.declarative.test_suites.connector_base import MANIFEST_YAML
14
- from airbyte_cdk.test.declarative.test_suites.source_base import (
15
- SourceTestSuiteBase,
16
- )
17
- from airbyte_cdk.test.declarative.utils.job_runner import IConnector
18
-
19
-
20
- def md5_checksum(file_path: Path) -> str:
21
- with open(file_path, "rb") as file:
22
- return md5(file.read()).hexdigest()
23
-
24
-
25
- class DeclarativeSourceTestSuite(SourceTestSuiteBase):
26
- @classproperty
27
- def manifest_yaml_path(cls) -> Path:
28
- """Get the path to the manifest.yaml file."""
29
- result = cls.get_connector_root_dir() / MANIFEST_YAML
30
- if result.exists():
31
- return result
32
-
33
- raise FileNotFoundError(
34
- f"Manifest YAML file not found at {result}. "
35
- "Please ensure that the test suite is run in the correct directory.",
36
- )
37
-
38
- @classproperty
39
- def components_py_path(cls) -> Path | None:
40
- """Get the path to the components.py file."""
41
- result = cls.get_connector_root_dir() / "components.py"
42
- if result.exists():
43
- return result
44
-
45
- return None
46
-
47
- @classmethod
48
- def create_connector(
49
- cls,
50
- scenario: ConnectorTestScenario,
51
- ) -> IConnector:
52
- """Create a connector instance for the test suite."""
53
- config: dict[str, Any] = scenario.get_config_dict()
54
- # catalog = scenario.get_catalog()
55
- # state = scenario.get_state()
56
- # source_config = scenario.get_source_config()
57
-
58
- manifest_dict = yaml.safe_load(cls.manifest_yaml_path.read_text())
59
- if cls.components_py_path and cls.components_py_path.exists():
60
- os.environ["AIRBYTE_ENABLE_UNSAFE_CODE"] = "true"
61
- config["__injected_components_py"] = cls.components_py_path.read_text()
62
- config["__injected_components_py_checksums"] = {
63
- "md5": md5_checksum(cls.components_py_path),
64
- }
65
-
66
- return cast(
67
- IConnector,
68
- ConcurrentDeclarativeSource(
69
- config=config,
70
- catalog=None,
71
- state=None,
72
- source_config=manifest_dict,
73
- ),
74
- )
@@ -1,12 +0,0 @@
1
- # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
2
- """Base class for destination test suites."""
3
-
4
- from airbyte_cdk.test.declarative.test_suites.connector_base import ConnectorTestSuiteBase
5
-
6
-
7
- class DestinationTestSuiteBase(ConnectorTestSuiteBase):
8
- """Base class for destination test suites.
9
-
10
- This class provides a base set of functionality for testing destination connectors, and it
11
- inherits all generic connector tests from the `ConnectorTestSuiteBase` class.
12
- """
@@ -1,128 +0,0 @@
1
- # Copyright (c) 2024 Airbyte, Inc., all rights reserved.
2
- """Base class for source test suites."""
3
-
4
- from dataclasses import asdict
5
-
6
- from airbyte_cdk.models import (
7
- AirbyteMessage,
8
- AirbyteStream,
9
- ConfiguredAirbyteCatalog,
10
- ConfiguredAirbyteStream,
11
- DestinationSyncMode,
12
- SyncMode,
13
- Type,
14
- )
15
- from airbyte_cdk.test import entrypoint_wrapper
16
- from airbyte_cdk.test.declarative.models import (
17
- ConnectorTestScenario,
18
- )
19
- from airbyte_cdk.test.declarative.test_suites.connector_base import (
20
- ConnectorTestSuiteBase,
21
- )
22
- from airbyte_cdk.test.declarative.utils.job_runner import run_test_job
23
-
24
-
25
- class SourceTestSuiteBase(ConnectorTestSuiteBase):
26
- """Base class for source test suites.
27
-
28
- This class provides a base set of functionality for testing source connectors, and it
29
- inherits all generic connector tests from the `ConnectorTestSuiteBase` class.
30
- """
31
-
32
- def test_check(
33
- self,
34
- instance: ConnectorTestScenario,
35
- ) -> None:
36
- """Run `connection` acceptance tests."""
37
- result: entrypoint_wrapper.EntrypointOutput = run_test_job(
38
- self.create_connector(instance),
39
- "check",
40
- test_instance=instance,
41
- )
42
- conn_status_messages: list[AirbyteMessage] = [
43
- msg for msg in result._messages if msg.type == Type.CONNECTION_STATUS
44
- ] # noqa: SLF001 # Non-public API
45
- num_status_messages = len(conn_status_messages)
46
- assert num_status_messages == 1, (
47
- f"Expected exactly one CONNECTION_STATUS message. Got {num_status_messages}: \n"
48
- + "\n".join([str(m) for m in result._messages])
49
- )
50
-
51
- def test_basic_read(
52
- self,
53
- instance: ConnectorTestScenario,
54
- ) -> None:
55
- """Run acceptance tests."""
56
- discover_result = run_test_job(
57
- self.create_connector(instance),
58
- "discover",
59
- test_instance=instance,
60
- )
61
- if instance.expect_exception:
62
- assert discover_result.errors, "Expected exception but got none."
63
- return
64
-
65
- configured_catalog = ConfiguredAirbyteCatalog(
66
- streams=[
67
- ConfiguredAirbyteStream(
68
- stream=stream,
69
- sync_mode=SyncMode.full_refresh,
70
- destination_sync_mode=DestinationSyncMode.append_dedup,
71
- )
72
- for stream in discover_result.catalog.catalog.streams # type: ignore [reportOptionalMemberAccess, union-attr]
73
- ]
74
- )
75
- result = run_test_job(
76
- self.create_connector(instance),
77
- "read",
78
- test_instance=instance,
79
- catalog=configured_catalog,
80
- )
81
-
82
- if not result.records:
83
- raise AssertionError("Expected records but got none.") # noqa: TRY003
84
-
85
- def test_fail_with_bad_catalog(
86
- self,
87
- instance: ConnectorTestScenario,
88
- ) -> None:
89
- """Test that a bad catalog fails."""
90
- invalid_configured_catalog = ConfiguredAirbyteCatalog(
91
- streams=[
92
- # Create ConfiguredAirbyteStream which is deliberately invalid
93
- # with regard to the Airbyte Protocol.
94
- # This should cause the connector to fail.
95
- ConfiguredAirbyteStream(
96
- stream=AirbyteStream(
97
- name="__AIRBYTE__stream_that_does_not_exist",
98
- json_schema={
99
- "type": "object",
100
- "properties": {"f1": {"type": "string"}},
101
- },
102
- supported_sync_modes=[SyncMode.full_refresh],
103
- ),
104
- sync_mode="INVALID", # type: ignore [reportArgumentType]
105
- destination_sync_mode="INVALID", # type: ignore [reportArgumentType]
106
- )
107
- ]
108
- )
109
- # Set expected status to "failed" to ensure the test fails if the connector.
110
- instance.status = "failed"
111
- result = self.run_test_scenario(
112
- "read",
113
- test_scenario=instance,
114
- catalog=asdict(invalid_configured_catalog),
115
- )
116
- assert result.errors, "Expected errors but got none."
117
- assert result.trace_messages, "Expected trace messages but got none."
118
-
119
- def test_discover(
120
- self,
121
- instance: ConnectorTestScenario,
122
- ) -> None:
123
- """Run acceptance tests."""
124
- run_test_job(
125
- self.create_connector(instance),
126
- "check",
127
- test_instance=instance,
128
- )