airbyte-cdk 6.54.8.post2.dev15559989054__tar.gz → 6.54.10__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 (429) hide show
  1. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/jinja.py +2 -4
  3. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/entrypoint_wrapper.py +39 -11
  4. airbyte_cdk-6.54.10/airbyte_cdk/test/models/__init__.py +10 -0
  5. airbyte_cdk-6.54.10/airbyte_cdk/test/models/outcome.py +58 -0
  6. {airbyte_cdk-6.54.8.post2.dev15559989054/airbyte_cdk/test/standard_tests → airbyte_cdk-6.54.10/airbyte_cdk/test}/models/scenario.py +60 -5
  7. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/standard_tests/_job_runner.py +14 -9
  8. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/standard_tests/connector_base.py +20 -15
  9. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/standard_tests/declarative_sources.py +7 -2
  10. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/standard_tests/source_base.py +19 -12
  11. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/standard_tests/util.py +1 -1
  12. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/utils/reading.py +12 -2
  13. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/pyproject.toml +1 -1
  14. airbyte_cdk-6.54.8.post2.dev15559989054/airbyte_cdk/test/standard_tests/models/__init__.py +0 -7
  15. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/LICENSE.txt +0 -0
  16. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/LICENSE_SHORT +0 -0
  17. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/README.md +0 -0
  18. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/__init__.py +0 -0
  19. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/__init__.py +0 -0
  20. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
  21. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/airbyte_cdk/_connector.py +0 -0
  22. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/airbyte_cdk/_image.py +0 -0
  23. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
  24. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/airbyte_cdk/_secrets.py +0 -0
  25. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
  26. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/airbyte_cdk/exceptions.py +0 -0
  27. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  28. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  29. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  30. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/config_observation.py +0 -0
  31. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector.py +0 -0
  32. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/README.md +0 -0
  33. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/__init__.py +0 -0
  34. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  35. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/main.py +0 -0
  36. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/models.py +0 -0
  37. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  38. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  39. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  40. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  41. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  42. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/__init__.py +0 -0
  43. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/destination.py +0 -0
  44. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  45. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  46. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  47. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  48. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  49. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  50. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  51. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  52. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  53. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/entrypoint.py +0 -0
  54. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/exception_handler.py +0 -0
  55. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/logger.py +0 -0
  56. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/README.md +0 -0
  57. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
  58. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
  59. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
  60. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
  61. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
  62. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
  63. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +0 -0
  64. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
  65. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +0 -0
  66. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
  67. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/models/__init__.py +0 -0
  68. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  69. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  70. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/models/connector_metadata.py +0 -0
  71. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/models/well_known_types.py +0 -0
  72. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/py.typed +0 -0
  73. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/__init__.py +0 -0
  74. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/abstract_source.py +0 -0
  75. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  76. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  77. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  78. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  79. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  80. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  81. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  82. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/config.py +0 -0
  83. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  84. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  85. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  86. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  87. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  88. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  89. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  90. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  91. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  92. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  93. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  94. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  95. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  96. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  97. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  98. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  99. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  100. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  101. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  102. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  103. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  104. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  105. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  106. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  107. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  108. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  109. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
  110. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  111. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  112. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  113. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  114. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  115. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  116. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  117. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  118. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  119. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  120. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  121. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  122. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  123. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  124. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  125. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  126. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  127. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  128. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  129. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  130. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  131. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  132. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  133. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  134. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  135. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  136. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  137. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  138. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  139. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  140. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  141. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  142. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  143. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  144. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  145. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  146. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  147. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  148. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  149. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  150. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  151. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
  152. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  153. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  154. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  155. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  156. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  157. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
  158. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  159. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
  160. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  161. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  162. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  163. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  164. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  165. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  166. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  167. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  168. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  169. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  170. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  171. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  172. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  173. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  174. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  175. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  176. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  177. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  178. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  179. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  180. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  181. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  182. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  183. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  184. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  185. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  186. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  187. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  188. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  189. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  190. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  191. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  192. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  193. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  194. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  195. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  196. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  197. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  198. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  199. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  200. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  201. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  202. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  203. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  204. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  205. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  206. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  207. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  208. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  209. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  210. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  211. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  212. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  213. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  214. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  215. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  216. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  217. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  218. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
  219. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
  220. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
  221. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
  222. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
  223. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
  224. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
  225. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  226. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  227. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  228. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/schema/composite_schema_loader.py +0 -0
  229. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  230. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  231. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  232. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  233. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  234. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  235. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  236. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  237. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  238. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  239. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py +0 -0
  240. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  241. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  242. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py +0 -0
  243. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/config_transformations/add_fields.py +0 -0
  244. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/config_transformations/config_transformation.py +0 -0
  245. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/config_transformations/remap_field.py +0 -0
  246. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/config_transformations/remove_fields.py +0 -0
  247. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  248. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  249. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  250. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  251. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  252. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  253. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  254. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/types.py +0 -0
  255. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/validators/__init__.py +0 -0
  256. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/validators/dpath_validator.py +0 -0
  257. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/validators/predicate_validator.py +0 -0
  258. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py +0 -0
  259. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/validators/validation_strategy.py +0 -0
  260. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/validators/validator.py +0 -0
  261. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  262. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/README.md +0 -0
  263. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  264. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  265. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  266. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  267. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  268. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  269. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  270. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  271. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  272. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  273. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  274. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  275. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  276. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  277. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  278. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  279. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  280. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  281. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  282. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  283. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  284. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
  285. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  286. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  287. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  288. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  289. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  290. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  291. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  292. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  293. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  294. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  295. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  296. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  297. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  298. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  299. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  300. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  301. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  302. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  303. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  304. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  305. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  306. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  307. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  308. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  309. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  310. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  311. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  312. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  313. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/file_based/types.py +0 -0
  314. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/http_config.py +0 -0
  315. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/http_logger.py +0 -0
  316. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/message/__init__.py +0 -0
  317. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/message/repository.py +0 -0
  318. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/source.py +0 -0
  319. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  320. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/__init__.py +0 -0
  321. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  322. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  323. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  324. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  325. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  326. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  327. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  328. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  329. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  330. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  331. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  332. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  333. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  334. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  335. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  336. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  337. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  338. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  339. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  340. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  341. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  342. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  343. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  344. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  345. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  346. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  347. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  348. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  349. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  350. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  351. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  352. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/core.py +0 -0
  353. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  354. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  355. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  356. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  357. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  358. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  359. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  360. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  361. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  362. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  363. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  364. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  365. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/http.py +0 -0
  366. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  367. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  368. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  369. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  370. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  371. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  372. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  373. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  374. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  375. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/types.py +0 -0
  376. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/utils/__init__.py +0 -0
  377. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/utils/casing.py +0 -0
  378. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/utils/files_directory.py +0 -0
  379. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  380. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  381. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  382. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/utils/transform.py +0 -0
  383. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sources/utils/types.py +0 -0
  384. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/__init__.py +0 -0
  385. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/_util/__init__.py +0 -0
  386. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/_util/hashing.py +0 -0
  387. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  388. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/constants.py +0 -0
  389. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/exceptions.py +0 -0
  390. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/secrets.py +0 -0
  391. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/shared/__init__.py +0 -0
  392. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  393. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  394. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/sql/types.py +0 -0
  395. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/__init__.py +0 -0
  396. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/catalog_builder.py +0 -0
  397. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  398. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  399. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  400. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/mock_http/request.py +0 -0
  401. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/mock_http/response.py +0 -0
  402. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  403. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
  404. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
  405. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
  406. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/state_builder.py +0 -0
  407. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/utils/__init__.py +0 -0
  408. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/utils/data.py +0 -0
  409. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  410. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  411. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/__init__.py +0 -0
  412. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  413. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/analytics_message.py +0 -0
  414. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/connector_paths.py +0 -0
  415. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/constants.py +0 -0
  416. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  417. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  418. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/docker.py +0 -0
  419. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/event_timing.py +0 -0
  420. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  421. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  422. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/message_utils.py +0 -0
  423. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  424. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/print_buffer.py +0 -0
  425. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  426. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/slice_hasher.py +0 -0
  427. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  428. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  429. {airbyte_cdk-6.54.8.post2.dev15559989054 → airbyte_cdk-6.54.10}/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.54.8.post2.dev15559989054
3
+ Version: 6.54.10
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -147,18 +147,16 @@ class JinjaInterpolation(Interpolation):
147
147
  # It can be returned as is
148
148
  return s
149
149
 
150
- @staticmethod
151
150
  @cache
152
- def _find_undeclared_variables(s: Optional[str]) -> Set[str]:
151
+ def _find_undeclared_variables(self, s: Optional[str]) -> Set[str]:
153
152
  """
154
153
  Find undeclared variables and cache them
155
154
  """
156
155
  ast = _ENVIRONMENT.parse(s) # type: ignore # parse is able to handle None
157
156
  return meta.find_undeclared_variables(ast)
158
157
 
159
- @staticmethod
160
158
  @cache
161
- def _compile(s: str) -> Template:
159
+ def _compile(self, s: str) -> Template:
162
160
  """
163
161
  We must cache the Jinja Template ourselves because we're using `from_string` instead of a template loader
164
162
  """
@@ -44,6 +44,7 @@ from airbyte_cdk.models import (
44
44
  Type,
45
45
  )
46
46
  from airbyte_cdk.sources import Source
47
+ from airbyte_cdk.test.models.scenario import ExpectedOutcome
47
48
 
48
49
 
49
50
  class EntrypointOutput:
@@ -157,8 +158,22 @@ class EntrypointOutput:
157
158
 
158
159
 
159
160
  def _run_command(
160
- source: Source, args: List[str], expecting_exception: bool = False
161
+ source: Source,
162
+ args: List[str],
163
+ expecting_exception: bool | None = None, # Deprecated, use `expected_outcome` instead.
164
+ *,
165
+ expected_outcome: ExpectedOutcome | None = None,
161
166
  ) -> EntrypointOutput:
167
+ """Internal function to run a command with the AirbyteEntrypoint.
168
+
169
+ Note: Even though this function is private, some connectors do call it directly.
170
+
171
+ Note: The `expecting_exception` arg is now deprecated in favor of the tri-state
172
+ `expected_outcome` arg. The old argument is supported (for now) for backwards compatibility.
173
+ """
174
+ expected_outcome = expected_outcome or ExpectedOutcome.from_expecting_exception_bool(
175
+ expecting_exception,
176
+ )
162
177
  log_capture_buffer = StringIO()
163
178
  stream_handler = logging.StreamHandler(log_capture_buffer)
164
179
  stream_handler.setLevel(logging.INFO)
@@ -175,27 +190,30 @@ def _run_command(
175
190
  for message in source_entrypoint.run(parsed_args):
176
191
  messages.append(message)
177
192
  except Exception as exception:
178
- if not expecting_exception:
193
+ if expected_outcome.expect_success():
179
194
  print("Printing unexpected error from entrypoint_wrapper")
180
195
  print("".join(traceback.format_exception(None, exception, exception.__traceback__)))
196
+
181
197
  uncaught_exception = exception
182
198
 
183
199
  captured_logs = log_capture_buffer.getvalue().split("\n")[:-1]
184
200
 
185
201
  parent_logger.removeHandler(stream_handler)
186
202
 
187
- return EntrypointOutput(messages + captured_logs, uncaught_exception)
203
+ return EntrypointOutput(messages + captured_logs, uncaught_exception=uncaught_exception)
188
204
 
189
205
 
190
206
  def discover(
191
207
  source: Source,
192
208
  config: Mapping[str, Any],
193
- expecting_exception: bool = False,
209
+ expecting_exception: bool | None = None, # Deprecated, use `expected_outcome` instead.
210
+ *,
211
+ expected_outcome: ExpectedOutcome | None = None,
194
212
  ) -> EntrypointOutput:
195
213
  """
196
214
  config must be json serializable
197
- :param expecting_exception: By default if there is an uncaught exception, the exception will be printed out. If this is expected, please
198
- provide expecting_exception=True so that the test output logs are cleaner
215
+ :param expected_outcome: By default if there is an uncaught exception, the exception will be printed out. If this is expected, please
216
+ provide `expected_outcome=ExpectedOutcome.EXPECT_FAILURE` so that the test output logs are cleaner
199
217
  """
200
218
 
201
219
  with tempfile.TemporaryDirectory() as tmp_directory:
@@ -203,7 +221,10 @@ def discover(
203
221
  config_file = make_file(tmp_directory_path / "config.json", config)
204
222
 
205
223
  return _run_command(
206
- source, ["discover", "--config", config_file, "--debug"], expecting_exception
224
+ source,
225
+ ["discover", "--config", config_file, "--debug"],
226
+ expecting_exception=expecting_exception, # Deprecated, but still supported.
227
+ expected_outcome=expected_outcome,
207
228
  )
208
229
 
209
230
 
@@ -212,13 +233,15 @@ def read(
212
233
  config: Mapping[str, Any],
213
234
  catalog: ConfiguredAirbyteCatalog,
214
235
  state: Optional[List[AirbyteStateMessage]] = None,
215
- expecting_exception: bool = False,
236
+ expecting_exception: bool | None = None, # Deprecated, use `expected_outcome` instead.
237
+ *,
238
+ expected_outcome: ExpectedOutcome | None = None,
216
239
  ) -> EntrypointOutput:
217
240
  """
218
241
  config and state must be json serializable
219
242
 
220
- :param expecting_exception: By default if there is an uncaught exception, the exception will be printed out. If this is expected, please
221
- provide expecting_exception=True so that the test output logs are cleaner
243
+ :param expected_outcome: By default if there is an uncaught exception, the exception will be printed out. If this is expected, please
244
+ provide `expected_outcome=ExpectedOutcome.EXPECT_FAILURE` so that the test output logs are cleaner.
222
245
  """
223
246
  with tempfile.TemporaryDirectory() as tmp_directory:
224
247
  tmp_directory_path = Path(tmp_directory)
@@ -245,7 +268,12 @@ def read(
245
268
  ]
246
269
  )
247
270
 
248
- return _run_command(source, args, expecting_exception)
271
+ return _run_command(
272
+ source,
273
+ args,
274
+ expecting_exception=expecting_exception, # Deprecated, but still supported.
275
+ expected_outcome=expected_outcome,
276
+ )
249
277
 
250
278
 
251
279
  def make_file(
@@ -0,0 +1,10 @@
1
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
2
+ """Models used for standard tests."""
3
+
4
+ from airbyte_cdk.test.models.outcome import ExpectedOutcome
5
+ from airbyte_cdk.test.models.scenario import ConnectorTestScenario
6
+
7
+ __all__ = [
8
+ "ConnectorTestScenario",
9
+ "ExpectedOutcome",
10
+ ]
@@ -0,0 +1,58 @@
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 enum import Enum, auto
13
+
14
+
15
+ class ExpectedOutcome(Enum):
16
+ """Enum to represent the expected outcome of a test scenario.
17
+
18
+ Class supports comparisons to a boolean or None.
19
+ """
20
+
21
+ EXPECT_EXCEPTION = auto()
22
+ EXPECT_SUCCESS = auto()
23
+ ALLOW_ANY = auto()
24
+
25
+ @classmethod
26
+ def from_status_str(cls, status: str | None) -> ExpectedOutcome:
27
+ """Convert a status string to an ExpectedOutcome."""
28
+ if status is None:
29
+ return ExpectedOutcome.ALLOW_ANY
30
+
31
+ try:
32
+ return {
33
+ "succeed": ExpectedOutcome.EXPECT_SUCCESS,
34
+ "failed": ExpectedOutcome.EXPECT_EXCEPTION,
35
+ }[status]
36
+ except KeyError as ex:
37
+ raise ValueError(f"Invalid status '{status}'. Expected 'succeed' or 'failed'.") from ex
38
+
39
+ @classmethod
40
+ def from_expecting_exception_bool(cls, expecting_exception: bool | None) -> ExpectedOutcome:
41
+ """Convert a boolean indicating whether an exception is expected to an ExpectedOutcome."""
42
+ if expecting_exception is None:
43
+ # Align with legacy behavior where default would be 'False' (no exception expected)
44
+ return ExpectedOutcome.EXPECT_SUCCESS
45
+
46
+ return (
47
+ ExpectedOutcome.EXPECT_EXCEPTION
48
+ if expecting_exception
49
+ else ExpectedOutcome.EXPECT_SUCCESS
50
+ )
51
+
52
+ def expect_exception(self) -> bool:
53
+ """Return whether the expectation is that an exception should be raised."""
54
+ return self == ExpectedOutcome.EXPECT_EXCEPTION
55
+
56
+ def expect_success(self) -> bool:
57
+ """Return whether the expectation is that the test should succeed without exceptions."""
58
+ return self == ExpectedOutcome.EXPECT_SUCCESS
@@ -9,11 +9,13 @@ up iteration cycles.
9
9
 
10
10
  from __future__ import annotations
11
11
 
12
- from pathlib import Path
12
+ from pathlib import Path # noqa: TC003 # Pydantic needs this (don't move to 'if typing' block)
13
13
  from typing import Any, Literal, cast
14
14
 
15
15
  import yaml
16
- from pydantic import BaseModel
16
+ from pydantic import BaseModel, ConfigDict
17
+
18
+ from airbyte_cdk.test.models.outcome import ExpectedOutcome
17
19
 
18
20
 
19
21
  class ConnectorTestScenario(BaseModel):
@@ -24,6 +26,10 @@ class ConnectorTestScenario(BaseModel):
24
26
  acceptance test configuration file.
25
27
  """
26
28
 
29
+ # Allows the class to be hashable, which PyTest will require
30
+ # when we use to parameterize tests.
31
+ model_config = ConfigDict(frozen=True)
32
+
27
33
  class AcceptanceTestExpectRecords(BaseModel):
28
34
  path: Path
29
35
  exact_order: bool = False
@@ -46,6 +52,7 @@ class ConnectorTestScenario(BaseModel):
46
52
  def get_config_dict(
47
53
  self,
48
54
  *,
55
+ connector_root: Path,
49
56
  empty_if_missing: bool,
50
57
  ) -> dict[str, Any]:
51
58
  """Return the config dictionary.
@@ -61,7 +68,15 @@ class ConnectorTestScenario(BaseModel):
61
68
  return self.config_dict
62
69
 
63
70
  if self.config_path is not None:
64
- return cast(dict[str, Any], yaml.safe_load(self.config_path.read_text()))
71
+ config_path = self.config_path
72
+ if not config_path.is_absolute():
73
+ # We usually receive a relative path here. Let's resolve it.
74
+ config_path = (connector_root / self.config_path).resolve().absolute()
75
+
76
+ return cast(
77
+ dict[str, Any],
78
+ yaml.safe_load(config_path.read_text()),
79
+ )
65
80
 
66
81
  if empty_if_missing:
67
82
  return {}
@@ -69,8 +84,13 @@ class ConnectorTestScenario(BaseModel):
69
84
  raise ValueError("No config dictionary or path provided.")
70
85
 
71
86
  @property
72
- def expect_exception(self) -> bool:
73
- return self.status and self.status == "failed" or False
87
+ def expected_outcome(self) -> ExpectedOutcome:
88
+ """Whether the test scenario expects an exception to be raised.
89
+
90
+ Returns True if the scenario expects an exception, False if it does not,
91
+ and None if there is no set expectation.
92
+ """
93
+ return ExpectedOutcome.from_status_str(self.status)
74
94
 
75
95
  @property
76
96
  def instance_name(self) -> str:
@@ -83,3 +103,38 @@ class ConnectorTestScenario(BaseModel):
83
103
  return f"'{self.config_path.name}' Test Scenario"
84
104
 
85
105
  return f"'{hash(self)}' Test Scenario"
106
+
107
+ def without_expected_outcome(self) -> ConnectorTestScenario:
108
+ """Return a copy of the scenario that does not expect failure or success.
109
+
110
+ This is useful when running multiple steps, to defer the expectations to a later step.
111
+ """
112
+ return ConnectorTestScenario(
113
+ **self.model_dump(exclude={"status"}),
114
+ )
115
+
116
+ def with_expecting_failure(self) -> ConnectorTestScenario:
117
+ """Return a copy of the scenario that expects failure.
118
+
119
+ This is useful when deriving new scenarios from existing ones.
120
+ """
121
+ if self.status == "failed":
122
+ return self
123
+
124
+ return ConnectorTestScenario(
125
+ **self.model_dump(exclude={"status"}),
126
+ status="failed",
127
+ )
128
+
129
+ def with_expecting_success(self) -> ConnectorTestScenario:
130
+ """Return a copy of the scenario that expects success.
131
+
132
+ This is useful when deriving new scenarios from existing ones.
133
+ """
134
+ if self.status == "succeed":
135
+ return self
136
+
137
+ return ConnectorTestScenario(
138
+ **self.model_dump(exclude={"status"}),
139
+ status="succeed",
140
+ )
@@ -16,7 +16,7 @@ from airbyte_cdk.models import (
16
16
  Status,
17
17
  )
18
18
  from airbyte_cdk.test import entrypoint_wrapper
19
- from airbyte_cdk.test.standard_tests.models import (
19
+ from airbyte_cdk.test.models import (
20
20
  ConnectorTestScenario,
21
21
  )
22
22
 
@@ -58,6 +58,7 @@ def run_test_job(
58
58
  connector: IConnector | type[IConnector] | Callable[[], IConnector],
59
59
  verb: Literal["spec", "read", "check", "discover"],
60
60
  *,
61
+ connector_root: Path,
61
62
  test_scenario: ConnectorTestScenario | None = None,
62
63
  catalog: ConfiguredAirbyteCatalog | dict[str, Any] | None = None,
63
64
  ) -> entrypoint_wrapper.EntrypointOutput:
@@ -84,7 +85,10 @@ def run_test_job(
84
85
  )
85
86
 
86
87
  args: list[str] = [verb]
87
- config_dict = test_scenario.get_config_dict(empty_if_missing=True)
88
+ config_dict = test_scenario.get_config_dict(
89
+ empty_if_missing=True,
90
+ connector_root=connector_root,
91
+ )
88
92
  if config_dict and verb != "spec":
89
93
  # Write the config to a temp json file and pass the path to the file as an argument.
90
94
  config_path = (
@@ -118,9 +122,9 @@ def run_test_job(
118
122
  result: entrypoint_wrapper.EntrypointOutput = entrypoint_wrapper._run_command( # noqa: SLF001 # Non-public API
119
123
  source=connector_obj, # type: ignore [arg-type]
120
124
  args=args,
121
- expecting_exception=test_scenario.expect_exception,
125
+ expected_outcome=test_scenario.expected_outcome,
122
126
  )
123
- if result.errors and not test_scenario.expect_exception:
127
+ if result.errors and test_scenario.expected_outcome.expect_success():
124
128
  raise AssertionError(
125
129
  f"Expected no errors but got {len(result.errors)}: \n" + _errors_to_str(result)
126
130
  )
@@ -135,7 +139,7 @@ def run_test_job(
135
139
  + "\n".join([str(msg) for msg in result.connection_status_messages])
136
140
  + _errors_to_str(result)
137
141
  )
138
- if test_scenario.expect_exception:
142
+ if test_scenario.expected_outcome.expect_exception():
139
143
  conn_status = result.connection_status_messages[0].connectionStatus
140
144
  assert conn_status, (
141
145
  "Expected CONNECTION_STATUS message to be present. Got: \n"
@@ -149,14 +153,15 @@ def run_test_job(
149
153
  return result
150
154
 
151
155
  # For all other verbs, we assert check that an exception is raised (or not).
152
- if test_scenario.expect_exception:
156
+ if test_scenario.expected_outcome.expect_exception():
153
157
  if not result.errors:
154
158
  raise AssertionError("Expected exception but got none.")
155
159
 
156
160
  return result
157
161
 
158
- assert not result.errors, (
159
- f"Expected no errors but got {len(result.errors)}: \n" + _errors_to_str(result)
160
- )
162
+ if test_scenario.expected_outcome.expect_success():
163
+ assert not result.errors, (
164
+ f"Expected no errors but got {len(result.errors)}: \n" + _errors_to_str(result)
165
+ )
161
166
 
162
167
  return result
@@ -20,10 +20,10 @@ from airbyte_cdk.models import (
20
20
  Type,
21
21
  )
22
22
  from airbyte_cdk.test import entrypoint_wrapper
23
- from airbyte_cdk.test.standard_tests._job_runner import IConnector, run_test_job
24
- from airbyte_cdk.test.standard_tests.models import (
23
+ from airbyte_cdk.test.models import (
25
24
  ConnectorTestScenario,
26
25
  )
26
+ from airbyte_cdk.test.standard_tests._job_runner import IConnector, run_test_job
27
27
  from airbyte_cdk.utils.connector_paths import (
28
28
  ACCEPTANCE_TEST_CONFIG,
29
29
  find_connector_root,
@@ -116,6 +116,7 @@ class ConnectorTestSuiteBase(abc.ABC):
116
116
  self.create_connector(scenario),
117
117
  "check",
118
118
  test_scenario=scenario,
119
+ connector_root=self.get_connector_root_dir(),
119
120
  )
120
121
  conn_status_messages: list[AirbyteMessage] = [
121
122
  msg for msg in result._messages if msg.type == Type.CONNECTION_STATUS
@@ -163,19 +164,23 @@ class ConnectorTestSuiteBase(abc.ABC):
163
164
  ):
164
165
  continue
165
166
 
166
- test_scenarios.extend(
167
- [
168
- ConnectorTestScenario.model_validate(test)
169
- for test in all_tests_config["acceptance_tests"][category]["tests"]
170
- if "config_path" in test and "iam_role" not in test["config_path"]
171
- ]
172
- )
167
+ for test in all_tests_config["acceptance_tests"][category]["tests"]:
168
+ if "config_path" not in test:
169
+ # Skip tests without a config_path
170
+ continue
171
+
172
+ if "iam_role" in test["config_path"]:
173
+ # We skip iam_role tests for now, as they are not supported in the test suite.
174
+ continue
175
+
176
+ scenario = ConnectorTestScenario.model_validate(test)
177
+
178
+ if scenario.config_path and scenario.config_path in [
179
+ s.config_path for s in test_scenarios
180
+ ]:
181
+ # Skip duplicate scenarios based on config_path
182
+ continue
173
183
 
174
- connector_root = cls.get_connector_root_dir().absolute()
175
- for test in test_scenarios:
176
- if test.config_path:
177
- test.config_path = connector_root / test.config_path
178
- if test.configured_catalog_path:
179
- test.configured_catalog_path = connector_root / test.configured_catalog_path
184
+ test_scenarios.append(scenario)
180
185
 
181
186
  return test_scenarios
@@ -9,8 +9,8 @@ from boltons.typeutils import classproperty
9
9
  from airbyte_cdk.sources.declarative.concurrent_declarative_source import (
10
10
  ConcurrentDeclarativeSource,
11
11
  )
12
+ from airbyte_cdk.test.models import ConnectorTestScenario
12
13
  from airbyte_cdk.test.standard_tests._job_runner import IConnector
13
- from airbyte_cdk.test.standard_tests.models import ConnectorTestScenario
14
14
  from airbyte_cdk.test.standard_tests.source_base import SourceTestSuiteBase
15
15
  from airbyte_cdk.utils.connector_paths import MANIFEST_YAML
16
16
 
@@ -78,7 +78,12 @@ class DeclarativeSourceTestSuite(SourceTestSuiteBase):
78
78
  config = {
79
79
  "__injected_manifest": manifest_dict,
80
80
  }
81
- config.update(scenario.get_config_dict(empty_if_missing=True))
81
+ config.update(
82
+ scenario.get_config_dict(
83
+ empty_if_missing=True,
84
+ connector_root=cls.get_connector_root_dir(),
85
+ ),
86
+ )
82
87
 
83
88
  if cls.components_py_path and cls.components_py_path.exists():
84
89
  os.environ["AIRBYTE_ENABLE_UNSAFE_CODE"] = "true"
@@ -2,6 +2,7 @@
2
2
  """Base class for source test suites."""
3
3
 
4
4
  from dataclasses import asdict
5
+ from typing import TYPE_CHECKING
5
6
 
6
7
  from airbyte_cdk.models import (
7
8
  AirbyteMessage,
@@ -12,14 +13,16 @@ from airbyte_cdk.models import (
12
13
  SyncMode,
13
14
  Type,
14
15
  )
15
- from airbyte_cdk.test import entrypoint_wrapper
16
+ from airbyte_cdk.test.models import (
17
+ ConnectorTestScenario,
18
+ )
16
19
  from airbyte_cdk.test.standard_tests._job_runner import run_test_job
17
20
  from airbyte_cdk.test.standard_tests.connector_base import (
18
21
  ConnectorTestSuiteBase,
19
22
  )
20
- from airbyte_cdk.test.standard_tests.models import (
21
- ConnectorTestScenario,
22
- )
23
+
24
+ if TYPE_CHECKING:
25
+ from airbyte_cdk.test import entrypoint_wrapper
23
26
 
24
27
 
25
28
  class SourceTestSuiteBase(ConnectorTestSuiteBase):
@@ -43,6 +46,7 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
43
46
  self.create_connector(scenario),
44
47
  "check",
45
48
  test_scenario=scenario,
49
+ connector_root=self.get_connector_root_dir(),
46
50
  )
47
51
  conn_status_messages: list[AirbyteMessage] = [
48
52
  msg for msg in result._messages if msg.type == Type.CONNECTION_STATUS
@@ -61,6 +65,7 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
61
65
  run_test_job(
62
66
  self.create_connector(scenario),
63
67
  "discover",
68
+ connector_root=self.get_connector_root_dir(),
64
69
  test_scenario=scenario,
65
70
  )
66
71
 
@@ -80,6 +85,7 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
80
85
  verb="spec",
81
86
  test_scenario=None,
82
87
  connector=self.create_connector(scenario=None),
88
+ connector_root=self.get_connector_root_dir(),
83
89
  )
84
90
  # If an error occurs, it will be raised above.
85
91
 
@@ -102,10 +108,11 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
102
108
  discover_result = run_test_job(
103
109
  self.create_connector(scenario),
104
110
  "discover",
105
- test_scenario=scenario,
111
+ connector_root=self.get_connector_root_dir(),
112
+ test_scenario=scenario.without_expected_outcome(),
106
113
  )
107
- if scenario.expect_exception:
108
- assert discover_result.errors, "Expected exception but got none."
114
+ if scenario.expected_outcome.expect_exception() and discover_result.errors:
115
+ # Failed as expected; we're done.
109
116
  return
110
117
 
111
118
  configured_catalog = ConfiguredAirbyteCatalog(
@@ -122,6 +129,7 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
122
129
  self.create_connector(scenario),
123
130
  "read",
124
131
  test_scenario=scenario,
132
+ connector_root=self.get_connector_root_dir(),
125
133
  catalog=configured_catalog,
126
134
  )
127
135
 
@@ -149,15 +157,14 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
149
157
  ),
150
158
  sync_mode="INVALID", # type: ignore [reportArgumentType]
151
159
  destination_sync_mode="INVALID", # type: ignore [reportArgumentType]
152
- )
153
- ]
160
+ ),
161
+ ],
154
162
  )
155
- # Set expected status to "failed" to ensure the test fails if the connector.
156
- scenario.status = "failed"
157
163
  result: entrypoint_wrapper.EntrypointOutput = run_test_job(
158
164
  self.create_connector(scenario),
159
165
  "read",
160
- test_scenario=scenario,
166
+ connector_root=self.get_connector_root_dir(),
167
+ test_scenario=scenario.with_expecting_failure(), # Expect failure due to bad catalog
161
168
  catalog=asdict(invalid_configured_catalog),
162
169
  )
163
170
  assert result.errors, "Expected errors but got none."
@@ -67,7 +67,7 @@ def create_connector_test_suite(
67
67
  )
68
68
 
69
69
  subclass_overrides: dict[str, Any] = {
70
- "get_connector_root_dir": lambda: connector_directory,
70
+ "get_connector_root_dir": classmethod(lambda cls: connector_directory),
71
71
  }
72
72
 
73
73
  TestSuiteAuto = type(
@@ -6,6 +6,7 @@ from airbyte_cdk import AbstractSource
6
6
  from airbyte_cdk.models import AirbyteStateMessage, ConfiguredAirbyteCatalog, SyncMode
7
7
  from airbyte_cdk.test.catalog_builder import CatalogBuilder
8
8
  from airbyte_cdk.test.entrypoint_wrapper import EntrypointOutput, read
9
+ from airbyte_cdk.test.models.outcome import ExpectedOutcome
9
10
 
10
11
 
11
12
  def catalog(stream_name: str, sync_mode: SyncMode) -> ConfiguredAirbyteCatalog:
@@ -19,8 +20,17 @@ def read_records(
19
20
  stream_name: str,
20
21
  sync_mode: SyncMode,
21
22
  state: Optional[List[AirbyteStateMessage]] = None,
22
- expecting_exception: bool = False,
23
+ expecting_exception: bool | None = None, # Deprecated, use expected_outcome instead.
24
+ *,
25
+ expected_outcome: ExpectedOutcome | None = None,
23
26
  ) -> EntrypointOutput:
24
27
  """Read records from a stream."""
25
28
  _catalog = catalog(stream_name, sync_mode)
26
- return read(source, config, _catalog, state, expecting_exception)
29
+ return read(
30
+ source,
31
+ config,
32
+ _catalog,
33
+ state,
34
+ expecting_exception=expecting_exception, # Deprecated, for backward compatibility.
35
+ expected_outcome=expected_outcome,
36
+ )
@@ -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.54.8.post2.dev15559989054" # Version will be calculated dynamically.
26
+ version = "6.54.10" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false
@@ -1,7 +0,0 @@
1
- from airbyte_cdk.test.standard_tests.models.scenario import (
2
- ConnectorTestScenario,
3
- )
4
-
5
- __all__ = [
6
- "ConnectorTestScenario",
7
- ]