airbyte-cdk 6.61.4__tar.gz → 6.61.6__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 (461) hide show
  1. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/PKG-INFO +9 -6
  2. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/connector_builder_handler.py +7 -7
  3. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/main.py +2 -2
  4. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/test_reader/reader.py +2 -2
  5. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/Dockerfile +2 -2
  6. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/README.md +39 -3
  7. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/app.py +6 -0
  8. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/cli/_common.py +1 -0
  9. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/command_processor/processor.py +2 -5
  10. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/command_processor/utils.py +1 -1
  11. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/routers/manifest.py +1 -1
  12. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +5 -4
  13. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +4 -1
  14. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +21 -7
  15. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +1 -1
  16. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/utils/schema_helpers.py +29 -9
  17. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/utils/transform.py +25 -13
  18. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/spec_schema_transformations.py +7 -5
  19. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/pyproject.toml +15 -8
  20. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/LICENSE.txt +0 -0
  21. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/LICENSE_SHORT +0 -0
  22. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/README.md +0 -0
  23. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/__init__.py +0 -0
  24. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/__init__.py +0 -0
  25. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
  26. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/airbyte_cdk/_connector.py +0 -0
  27. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/airbyte_cdk/_image.py +0 -0
  28. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
  29. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/airbyte_cdk/_secrets.py +0 -0
  30. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
  31. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/airbyte_cdk/exceptions.py +0 -0
  32. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/source_declarative_manifest/README.md +0 -0
  33. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  34. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  35. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  36. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/config_observation.py +0 -0
  37. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector.py +0 -0
  38. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/README.md +0 -0
  39. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/__init__.py +0 -0
  40. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/models.py +0 -0
  41. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  42. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  43. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  44. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  45. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/__init__.py +0 -0
  46. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/destination.py +0 -0
  47. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  48. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  49. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  50. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  51. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  52. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  53. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  54. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  55. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  56. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/entrypoint.py +0 -0
  57. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/exception_handler.py +0 -0
  58. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/legacy/__init__.py +0 -0
  59. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/legacy/sources/__init__.py +0 -0
  60. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/legacy/sources/declarative/__init__.py +0 -0
  61. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/legacy/sources/declarative/declarative_source.py +0 -0
  62. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/legacy/sources/declarative/incremental/__init__.py +0 -0
  63. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/legacy/sources/declarative/incremental/per_partition_cursor.py +0 -0
  64. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/legacy/sources/declarative/manifest_declarative_source.py +0 -0
  65. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/logger.py +0 -0
  66. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/README.md +0 -0
  67. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
  68. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
  69. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
  70. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
  71. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
  72. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
  73. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +0 -0
  74. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
  75. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +0 -0
  76. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
  77. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/__init__.py +0 -0
  78. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/api_models/__init__.py +0 -0
  79. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/api_models/capabilities.py +0 -0
  80. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/api_models/dicts.py +0 -0
  81. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/api_models/manifest.py +0 -0
  82. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/api_models/stream.py +0 -0
  83. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/auth.py +0 -0
  84. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/cli/__init__.py +0 -0
  85. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/cli/_info.py +0 -0
  86. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/cli/_openapi.py +0 -0
  87. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/cli/_start.py +0 -0
  88. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/cli/run.py +0 -0
  89. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/command_processor/__init__.py +0 -0
  90. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/main.py +0 -0
  91. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/openapi.yaml +0 -0
  92. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/routers/__init__.py +0 -0
  93. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/routers/capabilities.py +0 -0
  94. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/manifest_server/routers/health.py +0 -0
  95. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/models/__init__.py +0 -0
  96. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  97. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  98. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/models/connector_metadata.py +0 -0
  99. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/models/well_known_types.py +0 -0
  100. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/py.typed +0 -0
  101. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/__init__.py +0 -0
  102. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/abstract_source.py +0 -0
  103. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  104. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  105. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  106. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  107. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  108. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  109. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  110. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/config.py +0 -0
  111. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  112. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  113. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  114. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  115. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  116. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  117. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  118. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  119. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  120. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  121. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  122. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  123. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  124. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  125. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  126. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  127. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  128. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  129. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  130. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  131. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  132. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  133. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  134. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  135. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  136. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
  137. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  138. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  139. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  140. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  141. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  142. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  143. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  144. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  145. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  146. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  147. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  148. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  149. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  150. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  151. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  152. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  153. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  154. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  155. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  156. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  157. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  158. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  159. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  160. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  161. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  162. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  163. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  164. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  165. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  166. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  167. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  168. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  169. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  170. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  171. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  172. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  173. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  174. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  175. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  176. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
  177. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  178. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  179. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  180. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  181. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  182. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
  183. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  184. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
  185. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  186. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  187. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  188. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  189. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  190. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  191. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  192. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  193. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  194. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  195. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  196. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  197. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  198. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  199. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  200. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  201. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  202. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  203. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  204. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  205. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  206. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  207. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  208. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  209. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  210. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  211. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  212. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  213. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  214. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  215. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  216. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  217. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  218. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  219. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  220. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  221. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  222. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  223. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  224. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  225. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  226. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  227. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  228. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  229. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  230. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  231. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  232. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  233. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  234. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  235. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  236. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  237. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  238. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  239. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  240. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/resolvers/parametrized_components_resolver.py +0 -0
  241. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  242. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  243. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
  244. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
  245. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
  246. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
  247. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
  248. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
  249. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
  250. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  251. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  252. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  253. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/schema/composite_schema_loader.py +0 -0
  254. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  255. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  256. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  257. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  258. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  259. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  260. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  261. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  262. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  263. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py +0 -0
  264. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  265. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  266. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py +0 -0
  267. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/config_transformations/add_fields.py +0 -0
  268. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/config_transformations/config_transformation.py +0 -0
  269. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/config_transformations/remap_field.py +0 -0
  270. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/config_transformations/remove_fields.py +0 -0
  271. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  272. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  273. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  274. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  275. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  276. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  277. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  278. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/types.py +0 -0
  279. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/validators/__init__.py +0 -0
  280. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/validators/dpath_validator.py +0 -0
  281. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/validators/predicate_validator.py +0 -0
  282. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py +0 -0
  283. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/validators/validation_strategy.py +0 -0
  284. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/declarative/validators/validator.py +0 -0
  285. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/README.md +0 -0
  286. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  287. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  288. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  289. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  290. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  291. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  292. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  293. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  294. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  295. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  296. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  297. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  298. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  299. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  300. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  301. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  302. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  303. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  304. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  305. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  306. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  307. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
  308. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  309. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  310. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  311. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  312. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  313. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  314. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  315. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  316. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  317. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  318. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  319. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  320. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  321. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  322. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  323. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  324. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  325. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  326. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  327. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  328. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  329. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  330. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  331. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  332. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  333. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  334. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  335. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  336. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/file_based/types.py +0 -0
  337. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/http_config.py +0 -0
  338. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/http_logger.py +0 -0
  339. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/message/__init__.py +0 -0
  340. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/message/concurrent_repository.py +0 -0
  341. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/message/repository.py +0 -0
  342. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/source.py +0 -0
  343. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  344. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/__init__.py +0 -0
  345. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  346. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  347. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  348. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  349. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  350. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  351. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  352. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  353. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  354. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  355. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  356. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  357. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  358. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  359. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  360. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  361. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  362. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  363. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  364. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  365. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  366. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  367. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  368. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  369. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  370. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  371. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  372. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  373. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  374. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  375. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  376. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/core.py +0 -0
  377. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  378. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  379. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  380. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  381. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  382. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  383. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  384. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  385. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  386. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  387. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  388. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  389. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/http.py +0 -0
  390. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  391. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  392. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  393. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  394. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  395. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  396. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  397. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  398. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  399. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/types.py +0 -0
  400. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/utils/__init__.py +0 -0
  401. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/utils/casing.py +0 -0
  402. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/utils/files_directory.py +0 -0
  403. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  404. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  405. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sources/utils/types.py +0 -0
  406. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/__init__.py +0 -0
  407. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/_util/__init__.py +0 -0
  408. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/_util/hashing.py +0 -0
  409. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  410. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/constants.py +0 -0
  411. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/exceptions.py +0 -0
  412. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/secrets.py +0 -0
  413. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/shared/__init__.py +0 -0
  414. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  415. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  416. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/sql/types.py +0 -0
  417. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/__init__.py +0 -0
  418. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/catalog_builder.py +0 -0
  419. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  420. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  421. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  422. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  423. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/mock_http/request.py +0 -0
  424. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/mock_http/response.py +0 -0
  425. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  426. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/models/__init__.py +0 -0
  427. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/models/outcome.py +0 -0
  428. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/models/scenario.py +0 -0
  429. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
  430. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
  431. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/connector_base.py +0 -0
  432. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
  433. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
  434. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/docker_base.py +0 -0
  435. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
  436. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/source_base.py +0 -0
  437. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/standard_tests/util.py +0 -0
  438. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/state_builder.py +0 -0
  439. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/utils/__init__.py +0 -0
  440. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/utils/data.py +0 -0
  441. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  442. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  443. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/test/utils/reading.py +0 -0
  444. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/__init__.py +0 -0
  445. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  446. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/analytics_message.py +0 -0
  447. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/connector_paths.py +0 -0
  448. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/constants.py +0 -0
  449. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  450. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  451. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/docker.py +0 -0
  452. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/event_timing.py +0 -0
  453. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  454. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  455. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/message_utils.py +0 -0
  456. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  457. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/print_buffer.py +0 -0
  458. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  459. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/slice_hasher.py +0 -0
  460. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  461. {airbyte_cdk-6.61.4 → airbyte_cdk-6.61.6}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.61.4
3
+ Version: 6.61.6
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
7
7
  Keywords: airbyte,connector-development-kit,cdk
8
8
  Author: Airbyte
9
9
  Author-email: contact@airbyte.io
10
- Requires-Python: >=3.10,<3.13
10
+ Requires-Python: >=3.10,<3.14
11
11
  Classifier: Development Status :: 3 - Alpha
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: License :: OSI Approved :: MIT License
@@ -15,6 +15,7 @@ Classifier: Programming Language :: Python :: 3
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
18
19
  Classifier: Topic :: Scientific/Engineering
19
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
21
  Provides-Extra: dev
@@ -31,18 +32,19 @@ Requires-Dist: backoff
31
32
  Requires-Dist: boltons (>=25.0.0,<26.0.0)
32
33
  Requires-Dist: cachetools
33
34
  Requires-Dist: click (>=8.1.8,<9.0.0)
34
- Requires-Dist: cohere (==4.21) ; extra == "vector-db-based"
35
+ Requires-Dist: cohere (>=4.21,<6.0.0) ; extra == "vector-db-based"
35
36
  Requires-Dist: cryptography (>=44.0.0,<45.0.0)
36
37
  Requires-Dist: dateparser (>=1.2.2,<2.0.0)
38
+ Requires-Dist: ddtrace (>=3.12.3,<4.0.0) ; extra == "manifest-server"
37
39
  Requires-Dist: dpath (>=2.1.6,<3.0.0)
38
40
  Requires-Dist: dunamai (>=1.22.0,<2.0.0)
39
41
  Requires-Dist: fastapi (>=0.116.1) ; extra == "manifest-server"
40
- Requires-Dist: fastavro (>=1.8.0,<1.9.0) ; extra == "file-based"
42
+ Requires-Dist: fastavro (>=1.11.0,<2.0.0) ; extra == "file-based"
41
43
  Requires-Dist: genson (==1.3.0)
42
44
  Requires-Dist: google-cloud-secret-manager (>=2.17.0,<3.0.0)
43
45
  Requires-Dist: isodate (>=0.6.1,<0.7.0)
44
46
  Requires-Dist: jsonref (>=0.2,<0.3)
45
- Requires-Dist: jsonschema (>=4.17.3,<4.18.0)
47
+ Requires-Dist: jsonschema (>=4.17.3,<5.0)
46
48
  Requires-Dist: langchain (==0.1.16) ; extra == "vector-db-based"
47
49
  Requires-Dist: langchain_core (==0.1.42)
48
50
  Requires-Dist: markdown ; extra == "file-based"
@@ -51,7 +53,7 @@ Requires-Dist: numpy (<2)
51
53
  Requires-Dist: openai[embeddings] (==0.27.9) ; extra == "vector-db-based"
52
54
  Requires-Dist: orjson (>=3.10.7,<4.0.0)
53
55
  Requires-Dist: packaging
54
- Requires-Dist: pandas (==2.2.2)
56
+ Requires-Dist: pandas (==2.2.3)
55
57
  Requires-Dist: pdf2image (==1.16.3) ; extra == "file-based"
56
58
  Requires-Dist: pdfminer.six (==20221105) ; extra == "file-based"
57
59
  Requires-Dist: psutil (==6.1.0)
@@ -67,6 +69,7 @@ Requires-Dist: python-snappy (==0.7.3) ; extra == "file-based"
67
69
  Requires-Dist: python-ulid (>=3.0.0,<4.0.0)
68
70
  Requires-Dist: pytz (==2024.2)
69
71
  Requires-Dist: rapidfuzz (>=3.10.1,<4.0.0)
72
+ Requires-Dist: referencing (>=0.36.2)
70
73
  Requires-Dist: requests
71
74
  Requires-Dist: requests_cache
72
75
  Requires-Dist: rich
@@ -62,10 +62,10 @@ def should_normalize_manifest(config: Mapping[str, Any]) -> bool:
62
62
 
63
63
  def create_source(
64
64
  config: Mapping[str, Any],
65
- limits: TestLimits,
66
- catalog: Optional[ConfiguredAirbyteCatalog],
67
- state: Optional[List[AirbyteStateMessage]],
68
- ) -> ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]]:
65
+ limits: TestLimits | None = None,
66
+ catalog: ConfiguredAirbyteCatalog | None = None,
67
+ state: List[AirbyteStateMessage] | None = None,
68
+ ) -> ConcurrentDeclarativeSource:
69
69
  manifest = config["__injected_declarative_manifest"]
70
70
 
71
71
  # We enforce a concurrency level of 1 so that the stream is processed on a single thread
@@ -88,7 +88,7 @@ def create_source(
88
88
 
89
89
 
90
90
  def read_stream(
91
- source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]],
91
+ source: ConcurrentDeclarativeSource,
92
92
  config: Mapping[str, Any],
93
93
  configured_catalog: ConfiguredAirbyteCatalog,
94
94
  state: List[AirbyteStateMessage],
@@ -127,7 +127,7 @@ def read_stream(
127
127
 
128
128
 
129
129
  def resolve_manifest(
130
- source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]],
130
+ source: ConcurrentDeclarativeSource,
131
131
  ) -> AirbyteMessage:
132
132
  try:
133
133
  return AirbyteMessage(
@@ -146,7 +146,7 @@ def resolve_manifest(
146
146
 
147
147
 
148
148
  def full_resolve_manifest(
149
- source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]], limits: TestLimits
149
+ source: ConcurrentDeclarativeSource, limits: TestLimits
150
150
  ) -> AirbyteMessage:
151
151
  try:
152
152
  manifest = {**source.resolved_manifest}
@@ -34,7 +34,7 @@ from airbyte_cdk.utils.traced_exception import AirbyteTracedException
34
34
 
35
35
  def get_config_and_catalog_from_args(
36
36
  args: List[str],
37
- ) -> Tuple[str, Mapping[str, Any], Optional[ConfiguredAirbyteCatalog], Any]:
37
+ ) -> Tuple[str, Mapping[str, Any], Optional[ConfiguredAirbyteCatalog], List[AirbyteStateMessage]]:
38
38
  # TODO: Add functionality for the `debug` logger.
39
39
  # Currently, no one `debug` level log will be displayed during `read` a stream for a connector created through `connector-builder`.
40
40
  parsed_args = AirbyteEntrypoint.parse_args(args)
@@ -70,7 +70,7 @@ def get_config_and_catalog_from_args(
70
70
 
71
71
 
72
72
  def handle_connector_builder_request(
73
- source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]],
73
+ source: ConcurrentDeclarativeSource,
74
74
  command: str,
75
75
  config: Mapping[str, Any],
76
76
  catalog: Optional[ConfiguredAirbyteCatalog],
@@ -85,7 +85,7 @@ class TestReader:
85
85
 
86
86
  def run_test_read(
87
87
  self,
88
- source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]],
88
+ source: ConcurrentDeclarativeSource,
89
89
  config: Mapping[str, Any],
90
90
  configured_catalog: ConfiguredAirbyteCatalog,
91
91
  stream_name: str,
@@ -383,7 +383,7 @@ class TestReader:
383
383
 
384
384
  def _read_stream(
385
385
  self,
386
- source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]],
386
+ source: ConcurrentDeclarativeSource,
387
387
  config: Mapping[str, Any],
388
388
  configured_catalog: ConfiguredAirbyteCatalog,
389
389
  state: List[AirbyteStateMessage],
@@ -11,7 +11,7 @@ FROM python:3.12-slim-bookworm
11
11
  RUN apt-get update && \
12
12
  apt-get install -y git && \
13
13
  rm -rf /var/lib/apt/lists/* && \
14
- pip install poetry==1.8.3
14
+ pip install poetry==2.0.1
15
15
 
16
16
  # Configure poetry to not create virtual environments and disable interactive mode
17
17
  ENV POETRY_NO_INTERACTION=1 \
@@ -42,4 +42,4 @@ USER airbyte:airbyte
42
42
 
43
43
  EXPOSE 8080
44
44
 
45
- CMD ["uvicorn", "airbyte_cdk.manifest_server.app:app", "--host", "0.0.0.0", "--port", "8080"]
45
+ CMD ["uvicorn", "airbyte_cdk.manifest_server.app:app", "--host", "0.0.0.0", "--port", "8080"]
@@ -37,26 +37,31 @@ The server will start on `http://localhost:8000` by default.
37
37
  ## API Endpoints
38
38
 
39
39
  ### `/v1/manifest/test_read`
40
+
40
41
  Test reading from a specific stream in the manifest.
41
42
 
42
43
  **POST** - Test stream reading with configurable limits for records, pages, and slices.
43
44
 
44
45
  ### `/v1/manifest/check`
46
+
45
47
  Check configuration against a manifest.
46
48
 
47
49
  **POST** - Validates connector configuration and returns success/failure status with message.
48
50
 
49
51
  ### `/v1/manifest/discover`
52
+
50
53
  Discover streams from a manifest.
51
54
 
52
55
  **POST** - Returns the catalog of available streams from the manifest.
53
56
 
54
- ### `/v1/manifest/resolve`
57
+ ### `/v1/manifest/resolve`
58
+
55
59
  Resolve a manifest to its final configuration.
56
60
 
57
61
  **POST** - Returns the resolved manifest without dynamic stream generation.
58
62
 
59
63
  ### `/v1/manifest/full_resolve`
64
+
60
65
  Fully resolve a manifest including dynamic streams.
61
66
 
62
67
  **POST** - Generates dynamic streams up to specified limits and includes them in the resolved manifest.
@@ -68,6 +73,7 @@ The manifest server supports custom Python components, but this feature is **dis
68
73
  ### Enabling Custom Components
69
74
 
70
75
  To allow custom Python components in your manifest files, set the environment variable:
76
+
71
77
  ```bash
72
78
  export AIRBYTE_ENABLE_UNSAFE_CODE=true
73
79
  ```
@@ -77,20 +83,25 @@ export AIRBYTE_ENABLE_UNSAFE_CODE=true
77
83
  The manifest server supports optional JWT bearer token authentication:
78
84
 
79
85
  ### Configuration
86
+
80
87
  Set the environment variable to enable authentication:
88
+
81
89
  ```bash
82
90
  export AB_JWT_SIGNATURE_SECRET="your-jwt-secret-key"
83
91
  ```
84
92
 
85
93
  ### Usage
94
+
86
95
  When authentication is enabled, include a valid JWT token in the Authorization header:
96
+
87
97
  ```bash
88
98
  curl -H "Authorization: Bearer <your-jwt-token>" \
89
99
  http://localhost:8000/v1/manifest/test_read
90
100
  ```
91
101
 
92
102
  ### Behavior
93
- - **Without `AB_JWT_SIGNATURE_SECRET`**: All requests pass through
103
+
104
+ - **Without `AB_JWT_SIGNATURE_SECRET`**: All requests pass through
94
105
  - **With `AB_JWT_SIGNATURE_SECRET`**: Requires valid JWT bearer token using HS256 algorithm
95
106
 
96
107
  ## OpenAPI Specification
@@ -98,6 +109,7 @@ curl -H "Authorization: Bearer <your-jwt-token>" \
98
109
  The manifest server provides an OpenAPI specification for API client generation:
99
110
 
100
111
  ### Generating the OpenAPI Spec
112
+
101
113
  ```bash
102
114
  # Generate OpenAPI YAML (default location)
103
115
  manifest-server generate-openapi
@@ -107,6 +119,7 @@ manifest-server generate-openapi --output /path/to/openapi.yaml
107
119
  ```
108
120
 
109
121
  The generated OpenAPI specification is consumed by other applications and tools to:
122
+
110
123
  - Generate API clients in various programming languages
111
124
  - Create SDK bindings for the manifest server
112
125
  - Provide API documentation and validation
@@ -115,6 +128,7 @@ The generated OpenAPI specification is consumed by other applications and tools
115
128
  ### Interactive API Documentation
116
129
 
117
130
  When running, interactive API documentation is available at:
131
+
118
132
  - Swagger UI: `http://localhost:8000/docs`
119
133
  - ReDoc: `http://localhost:8000/redoc`
120
134
 
@@ -139,4 +153,26 @@ docker build -f airbyte_cdk/manifest_server/Dockerfile -t manifest-server .
139
153
  docker run -p 8080:8080 manifest-server
140
154
  ```
141
155
 
142
- Note: The container runs on port 8080 by default.
156
+ Note: The container runs on port 8080 by default.
157
+
158
+ ## Datadog APM
159
+
160
+ The manifest server supports Datadog APM tracing for monitoring and observability:
161
+
162
+ ### Configuration
163
+
164
+ To enable Datadog tracing, set the environment variable:
165
+
166
+ ```bash
167
+ export DD_ENABLED=true
168
+ ```
169
+
170
+ This requires the `ddtrace` dependency, which is included in the `manifest-server` extra. For additional configuration options via environment variables, see [ddtrace configuration](https://ddtrace.readthedocs.io/en/stable/configuration.html).
171
+
172
+ ### Usage
173
+
174
+ ```bash
175
+ # Run with Datadog tracing enabled
176
+ DD_ENABLED=true manifest-server start
177
+ ```
178
+
@@ -1,3 +1,9 @@
1
+ import os
2
+
3
+ if os.getenv("DD_ENABLED", "false").lower() == "true":
4
+ # Auto-instrumentation should be imported as early as possible.
5
+ import ddtrace.auto # noqa: F401
6
+
1
7
  from fastapi import FastAPI
2
8
 
3
9
  from .routers import capabilities, health, manifest
@@ -7,6 +7,7 @@ import rich_click as click
7
7
 
8
8
  # Import server dependencies with graceful fallback
9
9
  try:
10
+ import ddtrace # noqa: F401
10
11
  import fastapi # noqa: F401
11
12
  import uvicorn # noqa: F401
12
13
 
@@ -21,12 +21,10 @@ from airbyte_cdk.test.entrypoint_wrapper import AirbyteEntrypointException, Entr
21
21
 
22
22
 
23
23
  class ManifestCommandProcessor:
24
- _source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]]
24
+ _source: ConcurrentDeclarativeSource
25
25
  _logger = logging.getLogger("airbyte.manifest-server")
26
26
 
27
- def __init__(
28
- self, source: ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]]
29
- ) -> None:
27
+ def __init__(self, source: ConcurrentDeclarativeSource) -> None:
30
28
  self._source = source
31
29
 
32
30
  def test_read(
@@ -41,7 +39,6 @@ class ManifestCommandProcessor:
41
39
  """
42
40
  Test the read method of the source.
43
41
  """
44
-
45
42
  test_read_handler = TestReader(
46
43
  max_pages_per_slice=page_limit,
47
44
  max_slices=slice_limit,
@@ -63,7 +63,7 @@ def build_source(
63
63
  record_limit: Optional[int] = None,
64
64
  page_limit: Optional[int] = None,
65
65
  slice_limit: Optional[int] = None,
66
- ) -> ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]]:
66
+ ) -> ConcurrentDeclarativeSource:
67
67
  # We enforce a concurrency level of 1 so that the stream is processed on a single thread
68
68
  # to retain ordering for the grouping of the builder message responses.
69
69
  definition = copy.deepcopy(manifest)
@@ -40,7 +40,7 @@ def safe_build_source(
40
40
  page_limit: Optional[int] = None,
41
41
  slice_limit: Optional[int] = None,
42
42
  record_limit: Optional[int] = None,
43
- ) -> ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]]:
43
+ ) -> ConcurrentDeclarativeSource:
44
44
  """Wrapper around build_source that converts ValidationError to HTTPException."""
45
45
  try:
46
46
  return build_source(
@@ -162,16 +162,17 @@ def _get_declarative_component_schema() -> Dict[str, Any]:
162
162
  # is no longer inherited from since the only external dependency is from that class.
163
163
  #
164
164
  # todo: It is worth investigating removal of the Generic[TState] since it will always be Optional[List[AirbyteStateMessage]]
165
- class ConcurrentDeclarativeSource(AbstractSource, Generic[TState]):
165
+ class ConcurrentDeclarativeSource(AbstractSource):
166
166
  # By default, we defer to a value of 2. A value lower than could cause a PartitionEnqueuer to be stuck in a state of deadlock
167
167
  # because it has hit the limit of futures but not partition reader is consuming them.
168
168
  _LOWEST_SAFE_CONCURRENCY_LEVEL = 2
169
169
 
170
170
  def __init__(
171
171
  self,
172
- catalog: Optional[ConfiguredAirbyteCatalog],
173
- config: Optional[Mapping[str, Any]],
174
- state: TState,
172
+ catalog: Optional[ConfiguredAirbyteCatalog] = None,
173
+ config: Optional[Mapping[str, Any]] = None,
174
+ state: Optional[List[AirbyteStateMessage]] = None,
175
+ *,
175
176
  source_config: ConnectionDefinition,
176
177
  debug: bool = False,
177
178
  emit_connector_builder_messages: bool = False,
@@ -149,6 +149,7 @@ class CartesianProductStreamSlicer(PartitionRouter):
149
149
  for stream_slice_tuple in product:
150
150
  partition = dict(ChainMap(*[s.partition for s in stream_slice_tuple])) # type: ignore # ChainMap expects a MutableMapping[Never, Never] for reasons
151
151
  cursor_slices = [s.cursor_slice for s in stream_slice_tuple if s.cursor_slice]
152
+ extra_fields = dict(ChainMap(*[s.extra_fields for s in stream_slice_tuple])) # type: ignore # ChainMap expects a MutableMapping[Never, Never] for reasons
152
153
  if len(cursor_slices) > 1:
153
154
  raise ValueError(
154
155
  f"There should only be a single cursor slice. Found {cursor_slices}"
@@ -157,7 +158,9 @@ class CartesianProductStreamSlicer(PartitionRouter):
157
158
  cursor_slice = cursor_slices[0]
158
159
  else:
159
160
  cursor_slice = {}
160
- yield StreamSlice(partition=partition, cursor_slice=cursor_slice)
161
+ yield StreamSlice(
162
+ partition=partition, cursor_slice=cursor_slice, extra_fields=extra_fields
163
+ )
161
164
 
162
165
  def set_initial_state(self, stream_state: StreamState) -> None:
163
166
  """
@@ -14,10 +14,21 @@ from airbyte_cdk.sources.streams.concurrent.partitions.stream_slicer import Stre
14
14
  from airbyte_cdk.sources.types import Record, StreamSlice
15
15
  from airbyte_cdk.utils.slice_hasher import SliceHasher
16
16
 
17
+
17
18
  # For Connector Builder test read operations, we track the total number of records
18
- # read for the stream at the global level so that we can stop reading early if we
19
- # exceed the record limit
20
- total_record_counter = 0
19
+ # read for the stream so that we can stop reading early if we exceed the record limit.
20
+ class RecordCounter:
21
+ def __init__(self) -> None:
22
+ self.total_record_counter = 0
23
+
24
+ def increment(self) -> None:
25
+ self.total_record_counter += 1
26
+
27
+ def reset(self) -> None:
28
+ self.total_record_counter = 0
29
+
30
+ def get_total_records(self) -> int:
31
+ return self.total_record_counter
21
32
 
22
33
 
23
34
  class SchemaLoaderCachingDecorator(SchemaLoader):
@@ -51,6 +62,7 @@ class DeclarativePartitionFactory:
51
62
  self._retriever = retriever
52
63
  self._message_repository = message_repository
53
64
  self._max_records_limit = max_records_limit
65
+ self._record_counter = RecordCounter()
54
66
 
55
67
  def create(self, stream_slice: StreamSlice) -> Partition:
56
68
  return DeclarativePartition(
@@ -60,6 +72,7 @@ class DeclarativePartitionFactory:
60
72
  message_repository=self._message_repository,
61
73
  max_records_limit=self._max_records_limit,
62
74
  stream_slice=stream_slice,
75
+ record_counter=self._record_counter,
63
76
  )
64
77
 
65
78
 
@@ -72,6 +85,7 @@ class DeclarativePartition(Partition):
72
85
  message_repository: MessageRepository,
73
86
  max_records_limit: Optional[int],
74
87
  stream_slice: StreamSlice,
88
+ record_counter: RecordCounter,
75
89
  ):
76
90
  self._stream_name = stream_name
77
91
  self._schema_loader = schema_loader
@@ -80,17 +94,17 @@ class DeclarativePartition(Partition):
80
94
  self._max_records_limit = max_records_limit
81
95
  self._stream_slice = stream_slice
82
96
  self._hash = SliceHasher.hash(self._stream_name, self._stream_slice)
97
+ self._record_counter = record_counter
83
98
 
84
99
  def read(self) -> Iterable[Record]:
85
100
  if self._max_records_limit is not None:
86
- global total_record_counter
87
- if total_record_counter >= self._max_records_limit:
101
+ if self._record_counter.get_total_records() >= self._max_records_limit:
88
102
  return
89
103
  for stream_data in self._retriever.read_records(
90
104
  self._schema_loader.get_json_schema(), self._stream_slice
91
105
  ):
92
106
  if self._max_records_limit is not None:
93
- if total_record_counter >= self._max_records_limit:
107
+ if self._record_counter.get_total_records() >= self._max_records_limit:
94
108
  break
95
109
 
96
110
  if isinstance(stream_data, Mapping):
@@ -108,7 +122,7 @@ class DeclarativePartition(Partition):
108
122
  self._message_repository.emit_message(stream_data)
109
123
 
110
124
  if self._max_records_limit is not None:
111
- total_record_counter += 1
125
+ self._record_counter.increment()
112
126
 
113
127
  def to_slice(self) -> Optional[Mapping[str, Any]]:
114
128
  return self._stream_slice
@@ -14,7 +14,7 @@ from airbyte_cdk.sources.declarative.concurrent_declarative_source import (
14
14
  from airbyte_cdk.sources.types import ConnectionDefinition
15
15
 
16
16
 
17
- class YamlDeclarativeSource(ConcurrentDeclarativeSource[List[AirbyteStateMessage]]):
17
+ class YamlDeclarativeSource(ConcurrentDeclarativeSource):
18
18
  """Declarative source defined by a yaml file"""
19
19
 
20
20
  def __init__(
@@ -7,12 +7,16 @@ import importlib
7
7
  import json
8
8
  import os
9
9
  import pkgutil
10
- from typing import Any, ClassVar, Dict, List, Mapping, MutableMapping, Optional, Tuple
10
+ from copy import deepcopy
11
+ from typing import TYPE_CHECKING, Any, ClassVar, Dict, List, Mapping, MutableMapping, Tuple, cast
11
12
 
12
13
  import jsonref
13
- from jsonschema import RefResolver, validate
14
+ from jsonschema import validate
14
15
  from jsonschema.exceptions import ValidationError
15
16
  from pydantic.v1 import BaseModel, Field
17
+ from referencing import Registry, Resource
18
+ from referencing._core import Resolver # used for type hints
19
+ from referencing.jsonschema import DRAFT7
16
20
 
17
21
  from airbyte_cdk.models import ConnectorSpecification, FailureType
18
22
  from airbyte_cdk.utils.traced_exception import AirbyteTracedException
@@ -63,18 +67,30 @@ def resolve_ref_links(obj: Any) -> Any:
63
67
  return obj
64
68
 
65
69
 
66
- def _expand_refs(schema: Any, ref_resolver: Optional[RefResolver] = None) -> None:
70
+ def get_ref_resolver_registry(schema: dict[str, Any]) -> Registry:
71
+ """Get a reference resolver registry for the given schema."""
72
+ resource: Resource = Resource.from_contents(
73
+ contents=schema,
74
+ default_specification=DRAFT7,
75
+ )
76
+ return cast( # Mypy has a hard time detecting this return type.
77
+ "Registry",
78
+ Registry().with_resource(
79
+ uri="",
80
+ resource=resource,
81
+ ),
82
+ )
83
+
84
+
85
+ def _expand_refs(schema: Any, ref_resolver: Resolver) -> None:
67
86
  """Internal function to iterate over schema and replace all occurrences of $ref with their definitions. Recursive.
68
87
 
69
88
  :param schema: schema that will be patched
70
- :param ref_resolver: resolver to get definition from $ref, if None pass it will be instantiated
71
89
  """
72
- ref_resolver = ref_resolver or RefResolver.from_schema(schema)
73
-
74
90
  if isinstance(schema, MutableMapping):
75
91
  if "$ref" in schema:
76
92
  ref_url = schema.pop("$ref")
77
- _, definition = ref_resolver.resolve(ref_url)
93
+ definition = ref_resolver.lookup(ref_url).contents
78
94
  _expand_refs(
79
95
  definition, ref_resolver=ref_resolver
80
96
  ) # expand refs in definitions as well
@@ -90,10 +106,14 @@ def _expand_refs(schema: Any, ref_resolver: Optional[RefResolver] = None) -> Non
90
106
  def expand_refs(schema: Any) -> None:
91
107
  """Iterate over schema and replace all occurrences of $ref with their definitions.
92
108
 
109
+ If a "definitions" section is present at the root of the schema, it will be removed
110
+ after $ref resolution is complete.
111
+
93
112
  :param schema: schema that will be patched
94
113
  """
95
- _expand_refs(schema)
96
- schema.pop("definitions", None) # remove definitions created by $ref
114
+ ref_resolver = get_ref_resolver_registry(schema).resolver()
115
+ _expand_refs(schema, ref_resolver)
116
+ schema.pop("definitions", None)
97
117
 
98
118
 
99
119
  def rename_key(schema: Any, old_key: str, new_key: str) -> None:
@@ -3,10 +3,25 @@
3
3
  #
4
4
 
5
5
  import logging
6
+ from copy import deepcopy
6
7
  from enum import Flag, auto
7
- from typing import Any, Callable, Dict, Generator, Mapping, Optional, cast
8
+ from typing import TYPE_CHECKING, Any, Callable, Dict, Generator, Mapping, Optional, cast
9
+
10
+ from jsonschema import Draft7Validator, ValidationError, validators
11
+ from referencing import Registry, Resource
12
+ from referencing._core import Resolver
13
+ from referencing.exceptions import Unresolvable
14
+ from referencing.jsonschema import DRAFT7
15
+
16
+ from airbyte_cdk.sources.utils.schema_helpers import expand_refs
17
+
18
+ from .schema_helpers import get_ref_resolver_registry
19
+
20
+ try:
21
+ from jsonschema.validators import Validator
22
+ except:
23
+ from jsonschema import Validator
8
24
 
9
- from jsonschema import Draft7Validator, RefResolver, ValidationError, Validator, validators
10
25
 
11
26
  MAX_NESTING_DEPTH = 3
12
27
  json_to_python_simple = {
@@ -191,15 +206,14 @@ class TypeTransformer:
191
206
  validators parameter for detailed description.
192
207
  :
193
208
  """
209
+ # Very first step is to expand $refs in the schema itself:
210
+ expand_refs(schema)
211
+
212
+ # Now we can expand $refs in the property value:
213
+ if isinstance(property_value, dict):
214
+ expand_refs(property_value)
194
215
 
195
- def resolve(subschema: dict[str, Any]) -> dict[str, Any]:
196
- if "$ref" in subschema:
197
- _, resolved = cast(
198
- RefResolver,
199
- validator_instance.resolver,
200
- ).resolve(subschema["$ref"])
201
- return cast(dict[str, Any], resolved)
202
- return subschema
216
+ # Now we can validate and normalize the values:
203
217
 
204
218
  # Transform object and array values before running json schema type checking for each element.
205
219
  # Recursively normalize every value of the "instance" sub-object,
@@ -207,14 +221,12 @@ class TypeTransformer:
207
221
  if schema_key == "properties" and isinstance(instance, dict):
208
222
  for k, subschema in property_value.items():
209
223
  if k in instance:
210
- subschema = resolve(subschema)
211
224
  instance[k] = self.__normalize(instance[k], subschema)
212
225
  # Recursively normalize every item of the "instance" sub-array,
213
226
  # if "instance" is an incorrect type - skip recursive normalization of "instance"
214
227
  elif schema_key == "items" and isinstance(instance, list):
215
- subschema = resolve(property_value)
216
228
  for index, item in enumerate(instance):
217
- instance[index] = self.__normalize(item, subschema)
229
+ instance[index] = self.__normalize(item, property_value)
218
230
 
219
231
  # Running native jsonschema traverse algorithm after field normalization is done.
220
232
  yield from original_validator(
@@ -6,7 +6,8 @@ import json
6
6
  import re
7
7
  from typing import Any
8
8
 
9
- from jsonschema import RefResolver
9
+ from referencing import Registry, Resource
10
+ from referencing.jsonschema import DRAFT7
10
11
 
11
12
 
12
13
  def resolve_refs(schema: dict[str, Any]) -> dict[str, Any]:
@@ -14,13 +15,14 @@ def resolve_refs(schema: dict[str, Any]) -> dict[str, Any]:
14
15
  For spec schemas generated using Pydantic models, the resulting JSON schema can contain refs between object
15
16
  relationships.
16
17
  """
17
- json_schema_ref_resolver = RefResolver.from_schema(schema)
18
+ resource = Resource.from_contents(schema, default_specification=DRAFT7)
19
+ registry = Registry().with_resource("", resource)
20
+ resolver = registry.resolver()
18
21
  str_schema = json.dumps(schema)
19
22
  for ref_block in re.findall(r'{"\$ref": "#\/definitions\/.+?(?="})"}', str_schema):
20
23
  ref = json.loads(ref_block)["$ref"]
21
- str_schema = str_schema.replace(
22
- ref_block, json.dumps(json_schema_ref_resolver.resolve(ref)[1])
23
- )
24
+ resolved = resolver.lookup(ref).contents
25
+ str_schema = str_schema.replace(ref_block, json.dumps(resolved))
24
26
  pyschema: dict[str, Any] = json.loads(str_schema)
25
27
  del pyschema["definitions"]
26
28
  return pyschema