airbyte-cdk 6.45.0.post24.dev14387467928__tar.gz → 6.45.1.post44.dev14417290834__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 (387) hide show
  1. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/PKG-INFO +2 -1
  2. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/connector_builder_handler.py +12 -3
  3. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/main.py +3 -3
  4. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/reader.py +2 -0
  5. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +3 -3
  6. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/filters.py +49 -2
  7. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_based_source.py +3 -3
  8. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +1 -1
  9. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +3 -3
  10. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/shared/sql_processor.py +8 -9
  11. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/test_suites/__init__.py +1 -0
  12. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/test_suites/connector_base.py +49 -40
  13. airbyte_cdk-6.45.1.post44.dev14417290834/airbyte_cdk/test/declarative/test_suites/declarative_sources.py +74 -0
  14. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/test_suites/source_base.py +7 -8
  15. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/utils/job_runner.py +48 -26
  16. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/pytest_config/plugin.py +3 -3
  17. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/pyproject.toml +8 -4
  18. airbyte_cdk-6.45.0.post24.dev14387467928/airbyte_cdk/test/declarative/test_suites/declarative_sources.py +0 -48
  19. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/LICENSE.txt +0 -0
  20. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/LICENSE_SHORT +0 -0
  21. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/README.md +0 -0
  22. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/__init__.py +0 -0
  23. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/cli/__init__.py +0 -0
  24. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  25. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  26. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  27. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/config_observation.py +0 -0
  28. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector.py +0 -0
  29. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/README.md +0 -0
  30. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/__init__.py +0 -0
  31. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/models.py +0 -0
  32. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  33. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  34. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  35. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  36. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/__init__.py +0 -0
  37. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/destination.py +0 -0
  38. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  39. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  40. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  41. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  42. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  43. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  44. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  45. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  46. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  47. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/entrypoint.py +0 -0
  48. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/exception_handler.py +0 -0
  49. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/logger.py +0 -0
  50. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/__init__.py +0 -0
  51. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  52. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  53. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  54. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/models/well_known_types.py +0 -0
  55. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/py.typed +0 -0
  56. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/__init__.py +0 -0
  57. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/abstract_source.py +0 -0
  58. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  59. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  60. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  61. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  62. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  63. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  64. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/config.py +0 -0
  65. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  66. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  67. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  68. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  69. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  70. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  71. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  72. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  73. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  74. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  75. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  76. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  77. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  78. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  79. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  80. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  81. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  82. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  83. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  84. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  85. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  86. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  87. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  88. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  89. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  90. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  91. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
  92. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  93. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  94. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  95. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  96. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  97. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  98. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  99. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  100. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  101. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  102. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  103. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  104. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  105. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  106. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  107. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  108. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  109. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  110. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  111. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  112. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  113. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  114. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  115. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  116. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  117. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  118. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  119. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  120. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  121. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  122. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  123. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  124. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  125. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  126. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  127. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  128. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  129. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  130. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  131. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  132. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  133. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  134. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  135. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  136. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  137. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  138. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  139. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
  140. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  141. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  142. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  143. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  144. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  145. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  146. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  147. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  148. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  149. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  150. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  151. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  152. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  153. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  154. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  155. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  156. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  157. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  158. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  159. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  160. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  161. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  162. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  163. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  164. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  165. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  166. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  167. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  168. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  169. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  170. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  171. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  172. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  173. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  174. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  175. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  176. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  177. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  178. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  179. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  180. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  181. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  182. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  183. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  184. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  185. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  186. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  187. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  188. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  189. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  190. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  191. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  192. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  193. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  194. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  195. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  196. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  197. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  198. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  199. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  200. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  201. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  202. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  203. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  204. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  205. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  206. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  207. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  208. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  209. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  210. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  211. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  212. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  213. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  214. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  215. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  216. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  217. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  218. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  219. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  220. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/types.py +0 -0
  221. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  222. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/README.md +0 -0
  223. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  224. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  225. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  226. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  227. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  228. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  229. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  230. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  231. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  232. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  233. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  234. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  235. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  236. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  237. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  238. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  239. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  240. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  241. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  242. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  243. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  244. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  245. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  246. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  247. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  248. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  249. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  250. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  251. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  252. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  253. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  254. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  255. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  256. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  257. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  258. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  259. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  260. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  261. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  262. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  263. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  264. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  265. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  266. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  267. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  268. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  269. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/file_based/types.py +0 -0
  270. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/http_config.py +0 -0
  271. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/http_logger.py +0 -0
  272. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/message/__init__.py +0 -0
  273. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/message/repository.py +0 -0
  274. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/source.py +0 -0
  275. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  276. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/__init__.py +0 -0
  277. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  278. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  279. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  280. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  281. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  282. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  283. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  284. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  285. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  286. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  287. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  288. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  289. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  290. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  291. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  292. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  293. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  294. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  295. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  296. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  297. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  298. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  299. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  300. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  301. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  302. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  303. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  304. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  305. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  306. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  307. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  308. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/core.py +0 -0
  309. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  310. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  311. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  312. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  313. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  314. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  315. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  316. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  317. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  318. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  319. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  320. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  321. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/http.py +0 -0
  322. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  323. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  324. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  325. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  326. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  327. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  328. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  329. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  330. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  331. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/types.py +0 -0
  332. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/__init__.py +0 -0
  333. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/casing.py +0 -0
  334. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  335. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  336. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  337. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/transform.py +0 -0
  338. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sources/utils/types.py +0 -0
  339. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/__init__.py +0 -0
  340. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/_util/__init__.py +0 -0
  341. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/_util/hashing.py +0 -0
  342. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  343. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/constants.py +0 -0
  344. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/exceptions.py +0 -0
  345. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/secrets.py +0 -0
  346. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/shared/__init__.py +0 -0
  347. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  348. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/sql/types.py +0 -0
  349. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/__init__.py +0 -0
  350. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/catalog_builder.py +0 -0
  351. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/__init__.py +0 -0
  352. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/models/__init__.py +0 -0
  353. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/models/scenario.py +0 -0
  354. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/test_suites/destination_base.py +0 -0
  355. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/declarative/utils/__init__.py +0 -0
  356. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  357. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/fixtures/__init__.py +0 -0
  358. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/fixtures/auto.py +0 -0
  359. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  360. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  361. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  362. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/request.py +0 -0
  363. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/response.py +0 -0
  364. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  365. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/state_builder.py +0 -0
  366. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/__init__.py +0 -0
  367. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/data.py +0 -0
  368. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  369. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  370. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/test/utils/reading.py +0 -0
  371. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/__init__.py +0 -0
  372. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  373. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/analytics_message.py +0 -0
  374. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/constants.py +0 -0
  375. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  376. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  377. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/event_timing.py +0 -0
  378. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  379. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  380. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/message_utils.py +0 -0
  381. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  382. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/print_buffer.py +0 -0
  383. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  384. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/slice_hasher.py +0 -0
  385. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  386. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  387. {airbyte_cdk-6.45.0.post24.dev14387467928 → airbyte_cdk-6.45.1.post44.dev14417290834}/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.0.post24.dev14387467928
3
+ Version: 6.45.1.post44.dev14417290834
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -26,6 +26,7 @@ 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)
29
30
  Requires-Dist: cachetools
30
31
  Requires-Dist: cohere (==4.21) ; extra == "vector-db-based"
31
32
  Requires-Dist: cryptography (>=44.0.0,<45.0.0)
@@ -35,8 +35,10 @@ MAX_RECORDS_KEY = "max_records"
35
35
  MAX_STREAMS_KEY = "max_streams"
36
36
 
37
37
 
38
- @dataclass
38
+ @dataclass(kw_only=True)
39
39
  class TestLimits:
40
+ __test__: bool = False # Prevent pytest from treating this as a test case, despite its name
41
+
40
42
  max_records: int = field(default=DEFAULT_MAXIMUM_RECORDS)
41
43
  max_pages_per_slice: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
42
44
  max_slices: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
@@ -51,7 +53,12 @@ def get_limits(config: Mapping[str, Any]) -> TestLimits:
51
53
  max_slices = command_config.get(MAX_SLICES_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_SLICES
52
54
  max_records = command_config.get(MAX_RECORDS_KEY) or DEFAULT_MAXIMUM_RECORDS
53
55
  max_streams = command_config.get(MAX_STREAMS_KEY) or DEFAULT_MAXIMUM_STREAMS
54
- return TestLimits(max_records, max_pages_per_slice, max_slices, max_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
+ )
55
62
 
56
63
 
57
64
  def create_source(config: Mapping[str, Any], limits: TestLimits) -> ManifestDeclarativeSource:
@@ -79,7 +86,9 @@ def read_stream(
79
86
  ) -> AirbyteMessage:
80
87
  try:
81
88
  test_read_handler = TestReader(
82
- limits.max_pages_per_slice, limits.max_slices, limits.max_records
89
+ max_pages_per_slice=limits.max_pages_per_slice,
90
+ max_slices=limits.max_slices,
91
+ max_record_limit=limits.max_records,
83
92
  )
84
93
  # The connector builder only supports a single stream
85
94
  stream_name = configured_catalog.streams[0].stream.name
@@ -78,9 +78,9 @@ def handle_connector_builder_request(
78
78
  if command == "resolve_manifest":
79
79
  return resolve_manifest(source)
80
80
  elif command == "test_read":
81
- assert (
82
- catalog is not None
83
- ), "`test_read` requires a valid `ConfiguredAirbyteCatalog`, got None."
81
+ assert catalog is not None, (
82
+ "`test_read` requires a valid `ConfiguredAirbyteCatalog`, got None."
83
+ )
84
84
  return read_stream(source, config, catalog, state, limits)
85
85
  elif command == "full_resolve_manifest":
86
86
  return full_resolve_manifest(source, limits)
@@ -66,6 +66,8 @@ 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
+
69
71
  logger = logging.getLogger("airbyte.connector-builder")
70
72
 
71
73
  def __init__(
@@ -49,9 +49,9 @@ class ConcurrentSource:
49
49
  too_many_generator = (
50
50
  not is_single_threaded and initial_number_of_partitions_to_generate >= num_workers
51
51
  )
52
- assert (
53
- not too_many_generator
54
- ), "It is required to have more workers than threads generating partitions"
52
+ assert not too_many_generator, (
53
+ "It is required to have more workers than threads generating partitions"
54
+ )
55
55
  threadpool = ThreadPoolManager(
56
56
  concurrent.futures.ThreadPoolExecutor(
57
57
  max_workers=num_workers, thread_name_prefix="workerpool"
@@ -4,9 +4,10 @@
4
4
 
5
5
  import base64
6
6
  import hashlib
7
+ import hmac as hmac_lib
7
8
  import json
8
9
  import re
9
- from typing import Any, Optional
10
+ from typing import Any, Dict, Optional
10
11
 
11
12
 
12
13
  def hash(value: Any, hash_type: str = "md5", salt: Optional[str] = None) -> str:
@@ -135,5 +136,51 @@ def regex_search(value: str, regex: str) -> str:
135
136
  return ""
136
137
 
137
138
 
138
- _filters_list = [hash, base64encode, base64decode, base64binascii_decode, string, regex_search]
139
+ def hmac(value: Any, key: str, hash_type: str = "sha256") -> str:
140
+ """
141
+ Implementation of a custom Jinja2 hmac filter with SHA-256 support.
142
+
143
+ This filter creates a Hash-based Message Authentication Code (HMAC) using a cryptographic
144
+ hash function and a secret key. Currently only supports SHA-256, and returns hexdigest of the signature.
145
+
146
+ Example usage in a low code connector:
147
+
148
+ auth_headers:
149
+ $ref: "#/definitions/base_auth"
150
+ $parameters:
151
+ signature: "{{ 'message_to_sign' | hmac('my_secret_key') }}"
152
+
153
+ :param value: The message to be authenticated
154
+ :param key: The secret key for the HMAC
155
+ :param hash_type: Hash algorithm to use (default: sha256)
156
+ :return: HMAC digest as a hexadecimal string
157
+ """
158
+ # Define allowed hash functions
159
+ ALLOWED_HASH_TYPES: Dict[str, Any] = {
160
+ "sha256": hashlib.sha256,
161
+ }
162
+
163
+ if hash_type not in ALLOWED_HASH_TYPES:
164
+ raise ValueError(
165
+ f"Hash type '{hash_type}' is not allowed. Allowed types: {', '.join(ALLOWED_HASH_TYPES.keys())}"
166
+ )
167
+
168
+ hmac_obj = hmac_lib.new(
169
+ key=str(key).encode("utf-8"),
170
+ msg=str(value).encode("utf-8"),
171
+ digestmod=ALLOWED_HASH_TYPES[hash_type],
172
+ )
173
+
174
+ return hmac_obj.hexdigest()
175
+
176
+
177
+ _filters_list = [
178
+ hash,
179
+ base64encode,
180
+ base64decode,
181
+ base64binascii_decode,
182
+ string,
183
+ regex_search,
184
+ hmac,
185
+ ]
139
186
  filters = {f.__name__: f for f in _filters_list}
@@ -282,9 +282,9 @@ class FileBasedSource(ConcurrentSourceAdapter, ABC):
282
282
  and hasattr(self, "_concurrency_level")
283
283
  and self._concurrency_level is not None
284
284
  ):
285
- assert (
286
- state_manager is not None
287
- ), "No ConnectorStateManager was created, but it is required for incremental syncs. This is unexpected. Please contact Support."
285
+ assert state_manager is not None, (
286
+ "No ConnectorStateManager was created, but it is required for incremental syncs. This is unexpected. Please contact Support."
287
+ )
288
288
 
289
289
  cursor = self.cursor_cls(
290
290
  stream_config,
@@ -154,7 +154,7 @@ class AvroParser(FileTypeParser):
154
154
  # For example: ^-?\d{1,5}(?:\.\d{1,3})?$ would accept 12345.123 and 123456.12345 would be rejected
155
155
  return {
156
156
  "type": "string",
157
- "pattern": f"^-?\\d{{{1,max_whole_number_range}}}(?:\\.\\d{1,decimal_range})?$",
157
+ "pattern": f"^-?\\d{{{1, max_whole_number_range}}}(?:\\.\\d{1, decimal_range})?$",
158
158
  }
159
159
  elif "logicalType" in avro_field:
160
160
  if avro_field["logicalType"] not in AVRO_LOGICAL_TYPE_TO_JSON:
@@ -284,9 +284,9 @@ class FileBasedStreamPartition(Partition):
284
284
  def to_slice(self) -> Optional[Mapping[str, Any]]:
285
285
  if self._slice is None:
286
286
  return None
287
- assert (
288
- len(self._slice["files"]) == 1
289
- ), f"Expected 1 file per partition but got {len(self._slice['files'])} for stream {self.stream_name()}"
287
+ assert len(self._slice["files"]) == 1, (
288
+ f"Expected 1 file per partition but got {len(self._slice['files'])} for stream {self.stream_name()}"
289
+ )
290
290
  file = self._slice["files"][0]
291
291
  return {"files": [file]}
292
292
 
@@ -326,9 +326,9 @@ class SqlProcessorBase(abc.ABC):
326
326
 
327
327
  if DEBUG_MODE:
328
328
  found_schemas = schemas_list
329
- assert (
330
- schema_name in found_schemas
331
- ), f"Schema {schema_name} was not created. Found: {found_schemas}"
329
+ assert schema_name in found_schemas, (
330
+ f"Schema {schema_name} was not created. Found: {found_schemas}"
331
+ )
332
332
 
333
333
  def _quote_identifier(self, identifier: str) -> str:
334
334
  """Return the given identifier, quoted."""
@@ -617,10 +617,10 @@ class SqlProcessorBase(abc.ABC):
617
617
  self._execute_sql(
618
618
  f"""
619
619
  INSERT INTO {self._fully_qualified(final_table_name)} (
620
- {f',{nl} '.join(columns)}
620
+ {f",{nl} ".join(columns)}
621
621
  )
622
622
  SELECT
623
- {f',{nl} '.join(columns)}
623
+ {f",{nl} ".join(columns)}
624
624
  FROM {self._fully_qualified(temp_table_name)}
625
625
  """,
626
626
  )
@@ -645,8 +645,7 @@ class SqlProcessorBase(abc.ABC):
645
645
  deletion_name = f"{final_table_name}_deleteme"
646
646
  commands = "\n".join(
647
647
  [
648
- f"ALTER TABLE {self._fully_qualified(final_table_name)} RENAME "
649
- f"TO {deletion_name};",
648
+ f"ALTER TABLE {self._fully_qualified(final_table_name)} RENAME TO {deletion_name};",
650
649
  f"ALTER TABLE {self._fully_qualified(temp_table_name)} RENAME "
651
650
  f"TO {final_table_name};",
652
651
  f"DROP TABLE {self._fully_qualified(deletion_name)};",
@@ -686,10 +685,10 @@ class SqlProcessorBase(abc.ABC):
686
685
  {set_clause}
687
686
  WHEN NOT MATCHED THEN INSERT
688
687
  (
689
- {f',{nl} '.join(columns)}
688
+ {f",{nl} ".join(columns)}
690
689
  )
691
690
  VALUES (
692
- tmp.{f',{nl} tmp.'.join(columns)}
691
+ tmp.{f",{nl} tmp.".join(columns)}
693
692
  );
694
693
  """,
695
694
  )
@@ -6,6 +6,7 @@ Here we have base classes for a robust set of declarative connector test suites.
6
6
 
7
7
  from airbyte_cdk.test.declarative.test_suites.connector_base import (
8
8
  ConnectorTestScenario,
9
+ ConnectorTestSuiteBase,
9
10
  generate_tests,
10
11
  )
11
12
  from airbyte_cdk.test.declarative.test_suites.declarative_sources import (
@@ -4,34 +4,28 @@
4
4
  from __future__ import annotations
5
5
 
6
6
  import abc
7
- import functools
8
7
  import inspect
9
8
  import sys
10
9
  from pathlib import Path
11
- from typing import Any, Callable, Literal
10
+ from typing import Any, Literal
12
11
 
13
12
  import pytest
14
13
  import yaml
15
- from pydantic import BaseModel
16
- from typing_extensions import override
14
+ from boltons.typeutils import classproperty
17
15
 
18
16
  from airbyte_cdk import Connector
19
17
  from airbyte_cdk.models import (
20
18
  AirbyteMessage,
21
19
  Type,
22
20
  )
23
- from airbyte_cdk.sources import Source
24
- from airbyte_cdk.sources.declarative.declarative_source import (
25
- AbstractSource,
26
- DeclarativeSource,
27
- )
28
21
  from airbyte_cdk.test import entrypoint_wrapper
29
22
  from airbyte_cdk.test.declarative.models import (
30
23
  ConnectorTestScenario,
31
24
  )
32
- from airbyte_cdk.test.declarative.utils.job_runner import run_test_job
25
+ from airbyte_cdk.test.declarative.utils.job_runner import IConnector, run_test_job
33
26
 
34
27
  ACCEPTANCE_TEST_CONFIG = "acceptance-test-config.yml"
28
+ MANIFEST_YAML = "manifest.yaml"
35
29
 
36
30
 
37
31
  class JavaClass(str):
@@ -49,7 +43,7 @@ class RunnableConnector(abc.ABC):
49
43
  def launch(cls, args: list[str] | None) -> None: ...
50
44
 
51
45
 
52
- def generate_tests(metafunc) -> None:
46
+ def generate_tests(metafunc: pytest.Metafunc) -> None:
53
47
  """
54
48
  A helper for pytest_generate_tests hook.
55
49
 
@@ -96,23 +90,21 @@ def generate_tests(metafunc) -> None:
96
90
  class ConnectorTestSuiteBase(abc.ABC):
97
91
  """Base class for connector test suites."""
98
92
 
99
- acceptance_test_file_path = Path("./acceptance-test-config.json")
100
- """The path to the acceptance test config file.
101
-
102
- By default, this is set to the `acceptance-test-config.json` file in
103
- the root of the connector source directory.
104
- """
93
+ @classmethod
94
+ def get_test_class_dir(cls) -> Path:
95
+ """Get the file path that contains the class."""
96
+ module = sys.modules[cls.__module__]
97
+ # Get the directory containing the test file
98
+ return Path(inspect.getfile(module)).parent
105
99
 
106
100
  connector: type[Connector] | Path | JavaClass | DockerImage | None = None
107
101
  """The connector class or path to the connector to test."""
108
102
 
109
- working_dir: Path | None = None
110
- """The root directory of the connector source code."""
111
-
112
103
  @classmethod
113
104
  def create_connector(
114
- cls, scenario: ConnectorTestScenario
115
- ) -> Source | AbstractSource | DeclarativeSource | RunnableConnector:
105
+ cls,
106
+ scenario: ConnectorTestScenario,
107
+ ) -> IConnector:
116
108
  """Instantiate the connector class."""
117
109
  raise NotImplementedError("Subclasses must implement this method.")
118
110
 
@@ -121,7 +113,7 @@ class ConnectorTestSuiteBase(abc.ABC):
121
113
  verb: Literal["read", "check", "discover"],
122
114
  test_scenario: ConnectorTestScenario,
123
115
  *,
124
- catalog: dict | None = None,
116
+ catalog: dict[str, Any] | None = None,
125
117
  ) -> entrypoint_wrapper.EntrypointOutput:
126
118
  """Run a test job from provided CLI args and return the result."""
127
119
  return run_test_job(
@@ -146,27 +138,43 @@ class ConnectorTestSuiteBase(abc.ABC):
146
138
  msg for msg in result._messages if msg.type == Type.CONNECTION_STATUS
147
139
  ] # noqa: SLF001 # Non-public API
148
140
  assert len(conn_status_messages) == 1, (
149
- "Expected exactly one CONNECTION_STATUS message. Got: \n" + "\n".join(result._messages)
141
+ f"Expected exactly one CONNECTION_STATUS message. Got: {result._messages}"
150
142
  )
151
143
 
152
144
  @classmethod
153
- @property
154
- def acceptance_test_config_path(self) -> Path:
155
- """Get the path to the acceptance test config file.
145
+ def get_connector_root_dir(cls) -> Path:
146
+ """Get the root directory of the connector."""
147
+ for parent in cls.get_test_class_dir().parents:
148
+ if (parent / MANIFEST_YAML).exists():
149
+ return parent
150
+ if (parent / ACCEPTANCE_TEST_CONFIG).exists():
151
+ return parent
152
+ if parent.name == "airbyte_cdk":
153
+ break
154
+ # If we reach here, we didn't find the manifest file in any parent directory
155
+ # Check if the manifest file exists in the current directory
156
+ for parent in Path.cwd().parents:
157
+ if (parent / MANIFEST_YAML).exists():
158
+ return parent
159
+ if (parent / ACCEPTANCE_TEST_CONFIG).exists():
160
+ return parent
161
+ if parent.name == "airbyte_cdk":
162
+ break
156
163
 
157
- Check vwd and parent directories of cwd for the config file, and return the first one found.
158
-
159
- Give up if the config file is not found in any parent directory.
160
- """
161
- current_dir = Path.cwd()
162
- for parent_dir in current_dir.parents:
163
- config_path = parent_dir / ACCEPTANCE_TEST_CONFIG
164
- if config_path.exists():
165
- return config_path
166
164
  raise FileNotFoundError(
167
- f"Acceptance test config file not found in any parent directory from : {Path.cwd()}"
165
+ "Could not find connector root directory relative to "
166
+ f"'{str(cls.get_test_class_dir())}' or '{str(Path.cwd())}'."
168
167
  )
169
168
 
169
+ @classproperty
170
+ def acceptance_test_config_path(cls) -> Path:
171
+ """Get the path to the acceptance test config file."""
172
+ result = cls.get_connector_root_dir() / ACCEPTANCE_TEST_CONFIG
173
+ if result.exists():
174
+ return result
175
+
176
+ raise FileNotFoundError(f"Acceptance test config file not found at: {str(result)}")
177
+
170
178
  @classmethod
171
179
  def get_scenarios(
172
180
  cls,
@@ -193,10 +201,11 @@ class ConnectorTestSuiteBase(abc.ABC):
193
201
  for test in all_tests_config["acceptance_tests"][category]["tests"]
194
202
  if "iam_role" not in test["config_path"]
195
203
  ]
196
- working_dir = cls.working_dir or Path()
204
+ connector_root = cls.get_connector_root_dir().absolute()
197
205
  for test in tests_scenarios:
198
206
  if test.config_path:
199
- test.config_path = working_dir / test.config_path
207
+ test.config_path = connector_root / test.config_path
200
208
  if test.configured_catalog_path:
201
- test.configured_catalog_path = working_dir / test.configured_catalog_path
209
+ test.configured_catalog_path = connector_root / test.configured_catalog_path
210
+
202
211
  return tests_scenarios
@@ -0,0 +1,74 @@
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
+ )
@@ -2,9 +2,6 @@
2
2
  """Base class for source test suites."""
3
3
 
4
4
  from dataclasses import asdict
5
- from pathlib import Path
6
-
7
- import pytest
8
5
 
9
6
  from airbyte_cdk.models import (
10
7
  AirbyteMessage,
@@ -45,8 +42,10 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
45
42
  conn_status_messages: list[AirbyteMessage] = [
46
43
  msg for msg in result._messages if msg.type == Type.CONNECTION_STATUS
47
44
  ] # noqa: SLF001 # Non-public API
48
- assert len(conn_status_messages) == 1, (
49
- "Expected exactly one CONNECTION_STATUS message. Got: \n" + "\n".join(result._messages)
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])
50
49
  )
51
50
 
52
51
  def test_basic_read(
@@ -70,7 +69,7 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
70
69
  sync_mode=SyncMode.full_refresh,
71
70
  destination_sync_mode=DestinationSyncMode.append_dedup,
72
71
  )
73
- for stream in discover_result.catalog.catalog.streams
72
+ for stream in discover_result.catalog.catalog.streams # type: ignore [reportOptionalMemberAccess, union-attr]
74
73
  ]
75
74
  )
76
75
  result = run_test_job(
@@ -102,8 +101,8 @@ class SourceTestSuiteBase(ConnectorTestSuiteBase):
102
101
  },
103
102
  supported_sync_modes=[SyncMode.full_refresh],
104
103
  ),
105
- sync_mode="INVALID",
106
- destination_sync_mode="INVALID",
104
+ sync_mode="INVALID", # type: ignore [reportArgumentType]
105
+ destination_sync_mode="INVALID", # type: ignore [reportArgumentType]
107
106
  )
108
107
  ]
109
108
  )
@@ -1,53 +1,62 @@
1
1
  import tempfile
2
2
  import uuid
3
+ from dataclasses import asdict
3
4
  from pathlib import Path
4
5
  from typing import Any, Callable, Literal
5
6
 
6
7
  import orjson
8
+ from typing_extensions import Protocol, runtime_checkable
7
9
 
8
- from airbyte_cdk import Connector
9
10
  from airbyte_cdk.models import (
11
+ ConfiguredAirbyteCatalog,
10
12
  Status,
11
13
  )
12
- from airbyte_cdk.sources.abstract_source import AbstractSource
13
- from airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource
14
14
  from airbyte_cdk.test import entrypoint_wrapper
15
15
  from airbyte_cdk.test.declarative.models import (
16
16
  ConnectorTestScenario,
17
17
  )
18
18
 
19
19
 
20
+ @runtime_checkable
21
+ class IConnector(Protocol):
22
+ """A connector that can be run in a test scenario."""
23
+
24
+ def launch(self, args: list[str] | None) -> None:
25
+ """Launch the connector with the given arguments."""
26
+ ...
27
+
28
+
20
29
  def run_test_job(
21
- connector: Connector | type[Connector] | Callable[[], Connector],
30
+ connector: IConnector | type[IConnector] | Callable[[], IConnector],
22
31
  verb: Literal["read", "check", "discover"],
23
32
  test_instance: ConnectorTestScenario,
24
33
  *,
25
- catalog: dict[str, Any] | None = None,
34
+ catalog: ConfiguredAirbyteCatalog | dict[str, Any] | None = None,
26
35
  ) -> entrypoint_wrapper.EntrypointOutput:
27
36
  """Run a test job from provided CLI args and return the result."""
28
37
  if not connector:
29
38
  raise ValueError("Connector is required")
30
39
 
31
- connector_obj: Connector
32
- if isinstance(connector, type):
40
+ if catalog and isinstance(catalog, ConfiguredAirbyteCatalog):
41
+ # Convert the catalog to a dict if it's already a ConfiguredAirbyteCatalog.
42
+ catalog = asdict(catalog)
43
+
44
+ connector_obj: IConnector
45
+ if isinstance(connector, type) or callable(connector):
46
+ # If the connector is a class or a factory lambda, instantiate it.
33
47
  connector_obj = connector()
34
- elif isinstance(connector, Connector):
35
- connector_obj = connector
36
- elif isinstance(connector, DeclarativeSource | AbstractSource):
48
+ elif (
49
+ isinstance(
50
+ connector,
51
+ IConnector,
52
+ )
53
+ or True
54
+ ): # TODO: Get a valid protocol check here
37
55
  connector_obj = connector
38
- elif isinstance(connector, Callable):
39
- try:
40
- connector_obj = connector()
41
- except Exception as ex:
42
- if not test_instance.expect_exception:
43
- raise
44
-
45
- return entrypoint_wrapper.EntrypointOutput(
46
- messages=[],
47
- uncaught_exception=ex,
48
- )
49
56
  else:
50
- raise ValueError(f"Invalid source type: {type(connector)}")
57
+ raise ValueError(
58
+ f"Invalid connector input: {type(connector)}",
59
+ )
51
60
 
52
61
  args: list[str] = [verb]
53
62
  if test_instance.config_path:
@@ -82,14 +91,14 @@ def run_test_job(
82
91
  # Because it *also* can fail, we have ot redundantly wrap it in a try/except block.
83
92
 
84
93
  result: entrypoint_wrapper.EntrypointOutput = entrypoint_wrapper._run_command( # noqa: SLF001 # Non-public API
85
- source=connector_obj,
94
+ source=connector_obj, # type: ignore [arg-type]
86
95
  args=args,
87
96
  expecting_exception=test_instance.expect_exception,
88
97
  )
89
98
  if result.errors and not test_instance.expect_exception:
90
99
  raise AssertionError(
91
100
  "\n\n".join(
92
- [str(err.trace.error).replace("\\n", "\n") for err in result.errors],
101
+ [str(err.trace.error).replace("\\n", "\n") for err in result.errors if err.trace],
93
102
  )
94
103
  )
95
104
 
@@ -106,10 +115,16 @@ def run_test_job(
106
115
  + "\n".join([str(msg) for msg in result.connection_status_messages])
107
116
  )
108
117
  if test_instance.expect_exception:
109
- assert result.connection_status_messages[0].connectionStatus.status == Status.FAILED, (
118
+ conn_status = result.connection_status_messages[0].connectionStatus
119
+ assert conn_status, (
120
+ "Expected CONNECTION_STATUS message to be present. Got: \n"
121
+ + "\n".join([str(msg) for msg in result.connection_status_messages])
122
+ )
123
+ assert conn_status.status == Status.FAILED, (
110
124
  "Expected CONNECTION_STATUS message to be FAILED. Got: \n"
111
125
  + "\n".join([str(msg) for msg in result.connection_status_messages])
112
126
  )
127
+
113
128
  return result
114
129
 
115
130
  # For all other verbs, we assert check that an exception is raised (or not).
@@ -121,7 +136,14 @@ def run_test_job(
121
136
  if result.errors:
122
137
  raise AssertionError(
123
138
  "\n\n".join(
124
- [str(err.trace.error).replace("\\n", "\n") for err in result.errors],
139
+ [
140
+ str(err.trace.error).replace(
141
+ "\\n",
142
+ "\n",
143
+ )
144
+ for err in result.errors
145
+ if err.trace
146
+ ],
125
147
  )
126
148
  )
127
149