airbyte-cdk 6.29.1__tar.gz → 6.30.0.dev0__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 (358) hide show
  1. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/auth/jwt.py +17 -11
  3. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/datetime_helpers.py +48 -66
  4. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/pyproject.toml +1 -1
  5. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/LICENSE.txt +0 -0
  6. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/LICENSE_SHORT +0 -0
  7. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/README.md +0 -0
  8. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/__init__.py +0 -0
  9. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/cli/__init__.py +0 -0
  10. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  11. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  12. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  13. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/config_observation.py +0 -0
  14. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/connector.py +0 -0
  15. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/connector_builder/README.md +0 -0
  16. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/connector_builder/__init__.py +0 -0
  17. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  18. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/connector_builder/main.py +0 -0
  19. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  20. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/connector_builder/models.py +0 -0
  21. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/__init__.py +0 -0
  22. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/destination.py +0 -0
  23. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  24. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  25. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  26. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  27. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  28. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  29. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  30. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  31. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  32. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/entrypoint.py +0 -0
  33. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/exception_handler.py +0 -0
  34. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/logger.py +0 -0
  35. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/models/__init__.py +0 -0
  36. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  37. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  38. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  39. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/models/well_known_types.py +0 -0
  40. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/py.typed +0 -0
  41. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/__init__.py +0 -0
  42. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/abstract_source.py +0 -0
  43. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  44. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  45. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  46. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  47. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  48. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  49. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  50. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/config.py +0 -0
  51. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  52. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  53. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  54. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  55. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  56. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  57. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  58. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  59. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  60. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  61. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  62. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  63. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  64. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  65. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  66. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  67. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  68. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  69. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  70. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  71. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  72. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  73. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  74. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  75. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  76. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
  77. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  78. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  79. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  80. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  81. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  82. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  83. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  84. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  85. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  86. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  87. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  88. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  89. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  90. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  91. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  92. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  93. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  94. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  95. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  96. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  97. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  98. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  99. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  100. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  101. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  102. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  103. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  104. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  105. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  106. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  107. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  108. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  109. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  110. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  111. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  112. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  113. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  114. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  115. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  116. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  117. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  118. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  119. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  120. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  121. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  122. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  123. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  124. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
  125. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  126. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  127. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  128. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  129. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  130. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  131. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  132. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  133. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  134. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  135. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  136. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  137. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  138. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  139. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  140. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  141. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  142. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  143. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  144. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  145. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  146. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  147. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  148. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  149. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  150. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  151. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  152. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  153. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  154. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  155. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  156. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  157. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  158. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  159. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  160. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  161. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  162. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  163. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  164. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  165. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  166. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  167. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  168. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  169. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  170. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  171. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  172. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  173. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  174. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  175. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  176. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  177. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  178. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  179. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  180. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  181. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  182. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  183. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  184. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  185. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  186. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  187. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  188. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  189. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  190. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  191. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  192. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  193. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  194. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  195. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  196. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  197. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/types.py +0 -0
  198. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  199. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  200. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  201. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  202. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/embedded/runner.py +0 -0
  203. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/embedded/tools.py +0 -0
  204. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/README.md +0 -0
  205. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  206. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  207. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  208. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  209. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  210. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  211. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  212. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  213. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  214. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  215. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  216. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  217. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  218. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  219. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  220. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  221. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  222. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  223. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  224. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  225. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  226. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  227. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  228. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  229. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  230. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  231. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  232. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  233. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  234. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  235. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  236. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  237. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  238. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  239. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  240. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  241. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  242. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  243. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  244. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  245. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  246. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  247. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  248. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  249. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  250. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/file_based/types.py +0 -0
  251. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/http_config.py +0 -0
  252. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/http_logger.py +0 -0
  253. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/message/__init__.py +0 -0
  254. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/message/repository.py +0 -0
  255. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/source.py +0 -0
  256. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/__init__.py +0 -0
  257. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  258. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  259. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  260. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  261. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  262. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  263. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  264. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  265. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  266. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  267. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  268. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  269. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  270. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  271. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  272. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  273. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  274. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  275. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  276. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  277. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  278. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  279. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  280. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  281. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  282. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  283. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  284. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  285. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  286. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  287. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/core.py +0 -0
  288. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  289. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  290. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  291. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  292. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  293. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  294. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  295. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  296. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  297. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  298. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  299. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  300. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/http.py +0 -0
  301. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  302. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  303. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  304. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  305. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  306. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  307. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  308. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  309. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/types.py +0 -0
  310. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/utils/__init__.py +0 -0
  311. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/utils/casing.py +0 -0
  312. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  313. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  314. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  315. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/utils/transform.py +0 -0
  316. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sources/utils/types.py +0 -0
  317. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/__init__.py +0 -0
  318. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/_util/__init__.py +0 -0
  319. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/_util/hashing.py +0 -0
  320. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  321. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/constants.py +0 -0
  322. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/exceptions.py +0 -0
  323. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/secrets.py +0 -0
  324. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/shared/__init__.py +0 -0
  325. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  326. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  327. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/sql/types.py +0 -0
  328. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/__init__.py +0 -0
  329. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/catalog_builder.py +0 -0
  330. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  331. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  332. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  333. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  334. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/mock_http/request.py +0 -0
  335. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/mock_http/response.py +0 -0
  336. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  337. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/state_builder.py +0 -0
  338. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/utils/__init__.py +0 -0
  339. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/utils/data.py +0 -0
  340. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  341. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  342. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/test/utils/reading.py +0 -0
  343. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/__init__.py +0 -0
  344. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  345. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/analytics_message.py +0 -0
  346. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/constants.py +0 -0
  347. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  348. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/event_timing.py +0 -0
  349. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  350. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  351. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/message_utils.py +0 -0
  352. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  353. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/print_buffer.py +0 -0
  354. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  355. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/slice_hasher.py +0 -0
  356. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  357. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  358. {airbyte_cdk-6.29.1 → airbyte_cdk-6.30.0.dev0}/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.29.1
3
+ Version: 6.30.0.dev0
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -3,6 +3,7 @@
3
3
  #
4
4
 
5
5
  import base64
6
+ import json
6
7
  from dataclasses import InitVar, dataclass
7
8
  from datetime import datetime
8
9
  from typing import Any, Mapping, Optional, Union
@@ -104,21 +105,21 @@ class JwtAuthenticator(DeclarativeAuthenticator):
104
105
  )
105
106
 
106
107
  def _get_jwt_headers(self) -> dict[str, Any]:
107
- """ "
108
+ """
108
109
  Builds and returns the headers used when signing the JWT.
109
110
  """
110
- headers = self._additional_jwt_headers.eval(self.config)
111
+ headers = self._additional_jwt_headers.eval(self.config, json_loads=json.loads)
111
112
  if any(prop in headers for prop in ["kid", "alg", "typ", "cty"]):
112
113
  raise ValueError(
113
114
  "'kid', 'alg', 'typ', 'cty' are reserved headers and should not be set as part of 'additional_jwt_headers'"
114
115
  )
115
116
 
116
117
  if self._kid:
117
- headers["kid"] = self._kid.eval(self.config)
118
+ headers["kid"] = self._kid.eval(self.config, json_loads=json.loads)
118
119
  if self._typ:
119
- headers["typ"] = self._typ.eval(self.config)
120
+ headers["typ"] = self._typ.eval(self.config, json_loads=json.loads)
120
121
  if self._cty:
121
- headers["cty"] = self._cty.eval(self.config)
122
+ headers["cty"] = self._cty.eval(self.config, json_loads=json.loads)
122
123
  headers["alg"] = self._algorithm
123
124
  return headers
124
125
 
@@ -130,18 +131,19 @@ class JwtAuthenticator(DeclarativeAuthenticator):
130
131
  exp = now + self._token_duration if isinstance(self._token_duration, int) else now
131
132
  nbf = now
132
133
 
133
- payload = self._additional_jwt_payload.eval(self.config)
134
+ payload = self._additional_jwt_payload.eval(self.config, json_loads=json.loads)
134
135
  if any(prop in payload for prop in ["iss", "sub", "aud", "iat", "exp", "nbf"]):
135
136
  raise ValueError(
136
137
  "'iss', 'sub', 'aud', 'iat', 'exp', 'nbf' are reserved properties and should not be set as part of 'additional_jwt_payload'"
137
138
  )
138
139
 
139
140
  if self._iss:
140
- payload["iss"] = self._iss.eval(self.config)
141
+ payload["iss"] = self._iss.eval(self.config, json_loads=json.loads)
141
142
  if self._sub:
142
- payload["sub"] = self._sub.eval(self.config)
143
+ payload["sub"] = self._sub.eval(self.config, json_loads=json.loads)
143
144
  if self._aud:
144
- payload["aud"] = self._aud.eval(self.config)
145
+ payload["aud"] = self._aud.eval(self.config, json_loads=json.loads)
146
+
145
147
  payload["iat"] = now
146
148
  payload["exp"] = exp
147
149
  payload["nbf"] = nbf
@@ -151,7 +153,7 @@ class JwtAuthenticator(DeclarativeAuthenticator):
151
153
  """
152
154
  Returns the secret key used to sign the JWT.
153
155
  """
154
- secret_key: str = self._secret_key.eval(self.config)
156
+ secret_key: str = self._secret_key.eval(self.config, json_loads=json.loads)
155
157
  return (
156
158
  base64.b64encode(secret_key.encode()).decode()
157
159
  if self._base64_encode_secret_key
@@ -176,7 +178,11 @@ class JwtAuthenticator(DeclarativeAuthenticator):
176
178
  """
177
179
  Returns the header prefix to be used when attaching the token to the request.
178
180
  """
179
- return self._header_prefix.eval(self.config) if self._header_prefix else None
181
+ return (
182
+ self._header_prefix.eval(self.config, json_loads=json.loads)
183
+ if self._header_prefix
184
+ else None
185
+ )
180
186
 
181
187
  @property
182
188
  def auth_header(self) -> str:
@@ -76,8 +76,8 @@ from airbyte_cdk.utils.datetime_helpers import ab_datetime_try_parse
76
76
  assert ab_datetime_try_parse("2023-03-14T15:09:26Z") # Basic UTC format
77
77
  assert ab_datetime_try_parse("2023-03-14T15:09:26-04:00") # With timezone offset
78
78
  assert ab_datetime_try_parse("2023-03-14T15:09:26+00:00") # With explicit UTC offset
79
- assert not ab_datetime_try_parse("2023-03-14 15:09:26Z") # Invalid: missing T delimiter
80
- assert not ab_datetime_try_parse("foo") # Invalid: not a datetime
79
+ assert ab_datetime_try_parse("2023-03-14 15:09:26Z") # Missing T delimiter but still parsable
80
+ assert not ab_datetime_try_parse("foo") # Invalid: not parsable, returns `None`
81
81
  ```
82
82
  """
83
83
 
@@ -138,6 +138,14 @@ class AirbyteDateTime(datetime):
138
138
  dt.tzinfo or timezone.utc,
139
139
  )
140
140
 
141
+ def to_datetime(self) -> datetime:
142
+ """Converts this AirbyteDateTime to a standard datetime object.
143
+
144
+ Today, this just returns `self` because AirbyteDateTime is a subclass of `datetime`.
145
+ In the future, we may modify our internal representation to use a different base class.
146
+ """
147
+ return self
148
+
141
149
  def __str__(self) -> str:
142
150
  """Returns the datetime in ISO8601/RFC3339 format with 'T' delimiter.
143
151
 
@@ -148,12 +156,7 @@ class AirbyteDateTime(datetime):
148
156
  str: ISO8601/RFC3339 formatted string.
149
157
  """
150
158
  aware_self = self if self.tzinfo else self.replace(tzinfo=timezone.utc)
151
- base = self.strftime("%Y-%m-%dT%H:%M:%S")
152
- if self.microsecond:
153
- base = f"{base}.{self.microsecond:06d}"
154
- # Format timezone as ±HH:MM
155
- offset = aware_self.strftime("%z")
156
- return f"{base}{offset[:3]}:{offset[3:]}"
159
+ return aware_self.isoformat(sep="T", timespec="auto")
157
160
 
158
161
  def __repr__(self) -> str:
159
162
  """Returns the same string representation as __str__ for consistency.
@@ -358,15 +361,15 @@ def ab_datetime_now() -> AirbyteDateTime:
358
361
  def ab_datetime_parse(dt_str: str | int) -> AirbyteDateTime:
359
362
  """Parses a datetime string or timestamp into an AirbyteDateTime with timezone awareness.
360
363
 
361
- Previously named: parse()
364
+ This implementation is as flexible as possible to handle various datetime formats.
365
+ Always returns a timezone-aware datetime (defaults to UTC if no timezone specified).
362
366
 
363
367
  Handles:
364
- - ISO8601/RFC3339 format strings (with 'T' delimiter)
368
+ - ISO8601/RFC3339 format strings (with ' ' or 'T' delimiter)
365
369
  - Unix timestamps (as integers or strings)
366
370
  - Date-only strings (YYYY-MM-DD)
367
371
  - Timezone-aware formats (+00:00 for UTC, or ±HH:MM offset)
368
-
369
- Always returns a timezone-aware datetime (defaults to UTC if no timezone specified).
372
+ - Anything that can be parsed by `dateutil.parser.parse()`
370
373
 
371
374
  Args:
372
375
  dt_str: A datetime string in ISO8601/RFC3339 format, Unix timestamp (int/str),
@@ -416,15 +419,16 @@ def ab_datetime_parse(dt_str: str | int) -> AirbyteDateTime:
416
419
  except (ValueError, TypeError):
417
420
  raise ValueError(f"Invalid date format: {dt_str}")
418
421
 
419
- # Validate datetime format
420
- if "/" in dt_str or " " in dt_str or "GMT" in dt_str:
421
- raise ValueError(f"Could not parse datetime string: {dt_str}")
422
+ # Reject time-only strings without date
423
+ if ":" in dt_str and dt_str.count("-") < 2 and dt_str.count("/") < 2:
424
+ raise ValueError(f"Missing date part in datetime string: {dt_str}")
422
425
 
423
426
  # Try parsing with dateutil for timezone handling
424
427
  try:
425
428
  parsed = parser.parse(dt_str)
426
429
  if parsed.tzinfo is None:
427
430
  parsed = parsed.replace(tzinfo=timezone.utc)
431
+
428
432
  return AirbyteDateTime.from_datetime(parsed)
429
433
  except (ValueError, TypeError):
430
434
  raise ValueError(f"Could not parse datetime string: {dt_str}")
@@ -438,7 +442,29 @@ def ab_datetime_parse(dt_str: str | int) -> AirbyteDateTime:
438
442
  raise ValueError(f"Could not parse datetime string: {dt_str}")
439
443
 
440
444
 
441
- def ab_datetime_format(dt: Union[datetime, AirbyteDateTime]) -> str:
445
+ def ab_datetime_try_parse(dt_str: str) -> AirbyteDateTime | None:
446
+ """Try to parse the input as a datetime, failing gracefully instead of raising an exception.
447
+
448
+ This is a thin wrapper around `ab_datetime_parse()` that catches parsing errors and
449
+ returns `None` instead of raising an exception.
450
+ The implementation is as flexible as possible to handle various datetime formats.
451
+ Always returns a timezone-aware datetime (defaults to `UTC` if no timezone specified).
452
+
453
+ Example:
454
+ >>> ab_datetime_try_parse("2023-03-14T15:09:26Z") # Returns AirbyteDateTime
455
+ >>> ab_datetime_try_parse("2023-03-14 15:09:26Z") # Missing 'T' delimiter still parsable
456
+ >>> ab_datetime_try_parse("2023-03-14") # Returns midnight UTC time
457
+ """
458
+ try:
459
+ return ab_datetime_parse(dt_str)
460
+ except (ValueError, TypeError):
461
+ return None
462
+
463
+
464
+ def ab_datetime_format(
465
+ dt: Union[datetime, AirbyteDateTime],
466
+ format: str | None = None,
467
+ ) -> str:
442
468
  """Formats a datetime object as an ISO8601/RFC3339 string with 'T' delimiter and timezone.
443
469
 
444
470
  Previously named: format()
@@ -449,6 +475,8 @@ def ab_datetime_format(dt: Union[datetime, AirbyteDateTime]) -> str:
449
475
 
450
476
  Args:
451
477
  dt: Any datetime object to format.
478
+ format: Optional format string. If provided, calls `strftime()` with this format.
479
+ Otherwise, uses the default ISO8601/RFC3339 format, adapted for available precision.
452
480
 
453
481
  Returns:
454
482
  str: ISO8601/RFC3339 formatted datetime string.
@@ -464,54 +492,8 @@ def ab_datetime_format(dt: Union[datetime, AirbyteDateTime]) -> str:
464
492
  if dt.tzinfo is None:
465
493
  dt = dt.replace(tzinfo=timezone.utc)
466
494
 
467
- # Format with consistent timezone representation
468
- base = dt.strftime("%Y-%m-%dT%H:%M:%S")
469
- if dt.microsecond:
470
- base = f"{base}.{dt.microsecond:06d}"
471
- offset = dt.strftime("%z")
472
- return f"{base}{offset[:3]}:{offset[3:]}"
473
-
474
-
475
- def ab_datetime_try_parse(dt_str: str) -> AirbyteDateTime | None:
476
- """Try to parse the input string as an ISO8601/RFC3339 datetime, failing gracefully instead of raising an exception.
477
-
478
- Requires strict ISO8601/RFC3339 format with:
479
- - 'T' delimiter between date and time components
480
- - Valid timezone (Z for UTC or ±HH:MM offset)
481
- - Complete datetime representation (date and time)
495
+ if format:
496
+ return dt.strftime(format)
482
497
 
483
- Returns None for any non-compliant formats including:
484
- - Space-delimited datetimes
485
- - Date-only strings
486
- - Missing timezone
487
- - Invalid timezone format
488
- - Wrong date/time separators
489
-
490
- Example:
491
- >>> ab_datetime_try_parse("2023-03-14T15:09:26Z") # Returns AirbyteDateTime
492
- >>> ab_datetime_try_parse("2023-03-14 15:09:26Z") # Returns None (invalid format)
493
- >>> ab_datetime_try_parse("2023-03-14") # Returns None (missing time and timezone)
494
- """
495
- if not isinstance(dt_str, str):
496
- return None
497
- try:
498
- # Validate format before parsing
499
- if "T" not in dt_str:
500
- return None
501
- if not any(x in dt_str for x in ["Z", "+", "-"]):
502
- return None
503
- if "/" in dt_str or " " in dt_str or "GMT" in dt_str:
504
- return None
505
-
506
- # Try parsing with dateutil
507
- parsed = parser.parse(dt_str)
508
- if parsed.tzinfo is None:
509
- return None
510
-
511
- # Validate time components
512
- if not (0 <= parsed.hour <= 23 and 0 <= parsed.minute <= 59 and 0 <= parsed.second <= 59):
513
- return None
514
-
515
- return AirbyteDateTime.from_datetime(parsed)
516
- except (ValueError, TypeError):
517
- return None
498
+ # Format with consistent timezone representation and "T" delimiter
499
+ return dt.isoformat(sep="T", timespec="auto")
@@ -23,7 +23,7 @@ classifiers = [
23
23
  keywords = ["airbyte", "connector-development-kit", "cdk"]
24
24
 
25
25
  # Python CDK uses dynamic versioning: https://github.com/mtkennerly/poetry-dynamic-versioning
26
- version = "6.29.1" # Version will be calculated dynamically.
26
+ version = "6.30.0dev0" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false