airbyte-cdk 6.33.2.dev1__tar.gz → 6.33.4__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.
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/PKG-INFO +1 -1
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/oauth.py +6 -1
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +15 -1
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +30 -129
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -4
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +7 -2
- airbyte_cdk-6.33.4/airbyte_cdk/sources/declarative/decoders/json_decoder.py +65 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/record_selector.py +12 -3
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +6 -11
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +22 -84
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +66 -86
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/call_rate.py +148 -86
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +3 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/pyproject.toml +1 -1
- airbyte_cdk-6.33.2.dev1/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -111
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/LICENSE.txt +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/README.md +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/config_observation.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/main.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/destination.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/entrypoint.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/logger.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/airbyte_protocol.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/abstract_source.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/config.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/connector_state_manager.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/catalog.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/runner.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/embedded/tools.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/http_logger.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/core.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/http.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/types.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/record_helper.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/transform.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/datetime_helpers.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/event_timing.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/message_utils.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/stream_status_utils.py +0 -0
- {airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/utils/traced_exception.py +0 -0
{airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/auth/oauth.py
RENAMED
@@ -3,7 +3,7 @@
|
|
3
3
|
#
|
4
4
|
|
5
5
|
from dataclasses import InitVar, dataclass, field
|
6
|
-
from datetime import timedelta
|
6
|
+
from datetime import datetime, timedelta
|
7
7
|
from typing import Any, List, Mapping, MutableMapping, Optional, Union
|
8
8
|
|
9
9
|
from airbyte_cdk.sources.declarative.auth.declarative_authenticator import DeclarativeAuthenticator
|
@@ -232,8 +232,13 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
|
|
232
232
|
return self._refresh_request_headers.eval(self.config)
|
233
233
|
|
234
234
|
def get_token_expiry_date(self) -> AirbyteDateTime:
|
235
|
+
if not self._has_access_token_been_initialized():
|
236
|
+
return AirbyteDateTime.from_datetime(datetime.min)
|
235
237
|
return self._token_expiry_date # type: ignore # _token_expiry_date is an AirbyteDateTime. It is never None despite what mypy thinks
|
236
238
|
|
239
|
+
def _has_access_token_been_initialized(self) -> bool:
|
240
|
+
return self._access_token is not None
|
241
|
+
|
237
242
|
def set_token_expiry_date(self, value: Union[str, int]) -> None:
|
238
243
|
self._token_expiry_date = self._parse_token_expiration_date(value)
|
239
244
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
#
|
4
4
|
|
5
5
|
import logging
|
6
|
-
from typing import Any, Generic, Iterator, List, Mapping, Optional, Tuple
|
6
|
+
from typing import Any, Generic, Iterator, List, Mapping, MutableMapping, Optional, Tuple
|
7
7
|
|
8
8
|
from airbyte_cdk.models import (
|
9
9
|
AirbyteCatalog,
|
@@ -224,6 +224,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
224
224
|
stream_state = self._connector_state_manager.get_stream_state(
|
225
225
|
stream_name=declarative_stream.name, namespace=declarative_stream.namespace
|
226
226
|
)
|
227
|
+
stream_state = self._migrate_state(declarative_stream, stream_state)
|
227
228
|
|
228
229
|
retriever = self._get_retriever(declarative_stream, stream_state)
|
229
230
|
|
@@ -331,6 +332,8 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
331
332
|
stream_state = self._connector_state_manager.get_stream_state(
|
332
333
|
stream_name=declarative_stream.name, namespace=declarative_stream.namespace
|
333
334
|
)
|
335
|
+
stream_state = self._migrate_state(declarative_stream, stream_state)
|
336
|
+
|
334
337
|
partition_router = declarative_stream.retriever.stream_slicer._partition_router
|
335
338
|
|
336
339
|
perpartition_cursor = (
|
@@ -521,3 +524,14 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
|
|
521
524
|
if stream.stream.name not in concurrent_stream_names
|
522
525
|
]
|
523
526
|
)
|
527
|
+
|
528
|
+
@staticmethod
|
529
|
+
def _migrate_state(
|
530
|
+
declarative_stream: DeclarativeStream, stream_state: MutableMapping[str, Any]
|
531
|
+
) -> MutableMapping[str, Any]:
|
532
|
+
for state_migration in declarative_stream.state_migrations:
|
533
|
+
if state_migration.should_migrate(stream_state):
|
534
|
+
# The state variable is expected to be mutable but the migrate method returns an immutable mapping.
|
535
|
+
stream_state = dict(state_migration.migrate(stream_state))
|
536
|
+
|
537
|
+
return stream_state
|
@@ -41,11 +41,7 @@ properties:
|
|
41
41
|
concurrency_level:
|
42
42
|
"$ref": "#/definitions/ConcurrencyLevel"
|
43
43
|
api_budget:
|
44
|
-
|
45
|
-
description: Defines how many requests can be made to the API in a given time frame. This field accepts either a generic APIBudget or an HTTP-specific configuration (HTTPAPIBudget) to be applied across all streams.
|
46
|
-
anyOf:
|
47
|
-
- "$ref": "#/definitions/APIBudget"
|
48
|
-
- "$ref": "#/definitions/HTTPAPIBudget"
|
44
|
+
"$ref": "#/definitions/HTTPAPIBudget"
|
49
45
|
metadata:
|
50
46
|
type: object
|
51
47
|
description: For internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.
|
@@ -1371,40 +1367,13 @@ definitions:
|
|
1371
1367
|
$parameters:
|
1372
1368
|
type: object
|
1373
1369
|
additional_properties: true
|
1374
|
-
APIBudget:
|
1375
|
-
title: API Budget
|
1376
|
-
description: >
|
1377
|
-
A generic API budget configuration that defines the policies (rate limiting rules)
|
1378
|
-
and the maximum number of attempts to acquire a call credit. This budget does not automatically
|
1379
|
-
update itself based on HTTP response headers.
|
1380
|
-
type: object
|
1381
|
-
required:
|
1382
|
-
- type
|
1383
|
-
- policies
|
1384
|
-
properties:
|
1385
|
-
type:
|
1386
|
-
type: string
|
1387
|
-
enum: [APIBudget]
|
1388
|
-
policies:
|
1389
|
-
title: Policies
|
1390
|
-
description: List of call rate policies that define how many calls are allowed.
|
1391
|
-
type: array
|
1392
|
-
items:
|
1393
|
-
anyOf:
|
1394
|
-
- "$ref": "#/definitions/FixedWindowCallRatePolicy"
|
1395
|
-
- "$ref": "#/definitions/MovingWindowCallRatePolicy"
|
1396
|
-
- "$ref": "#/definitions/UnlimitedCallRatePolicy"
|
1397
|
-
maximum_attempts_to_acquire:
|
1398
|
-
title: Maximum Attempts to Acquire
|
1399
|
-
description: The maximum number of attempts to acquire a call before giving up.
|
1400
|
-
type: integer
|
1401
|
-
default: 100000
|
1402
|
-
additionalProperties: true
|
1403
1370
|
HTTPAPIBudget:
|
1404
1371
|
title: HTTP API Budget
|
1405
1372
|
description: >
|
1406
|
-
|
1407
|
-
|
1373
|
+
Defines how many requests can be made to the API in a given time frame. `HTTPAPIBudget` extracts the remaining
|
1374
|
+
call count and the reset time from HTTP response headers using the header names provided by
|
1375
|
+
`ratelimit_remaining_header` and `ratelimit_reset_header`. Only requests using `HttpRequester`
|
1376
|
+
are rate-limited; custom components that bypass `HttpRequester` are not covered by this budget.
|
1408
1377
|
type: object
|
1409
1378
|
required:
|
1410
1379
|
- type
|
@@ -1439,11 +1408,6 @@ definitions:
|
|
1439
1408
|
items:
|
1440
1409
|
type: integer
|
1441
1410
|
default: [429]
|
1442
|
-
maximum_attempts_to_acquire:
|
1443
|
-
title: Maximum Attempts to Acquire
|
1444
|
-
description: The maximum number of attempts to acquire a call before giving up.
|
1445
|
-
type: integer
|
1446
|
-
default: 100000
|
1447
1411
|
additionalProperties: true
|
1448
1412
|
FixedWindowCallRatePolicy:
|
1449
1413
|
title: Fixed Window Call Rate Policy
|
@@ -1451,7 +1415,6 @@ definitions:
|
|
1451
1415
|
type: object
|
1452
1416
|
required:
|
1453
1417
|
- type
|
1454
|
-
- next_reset_ts
|
1455
1418
|
- period
|
1456
1419
|
- call_limit
|
1457
1420
|
- matchers
|
@@ -1459,16 +1422,10 @@ definitions:
|
|
1459
1422
|
type:
|
1460
1423
|
type: string
|
1461
1424
|
enum: [FixedWindowCallRatePolicy]
|
1462
|
-
next_reset_ts:
|
1463
|
-
title: Next Reset Timestamp
|
1464
|
-
description: The timestamp when the rate limit will reset.
|
1465
|
-
type: string
|
1466
|
-
format: date-time
|
1467
1425
|
period:
|
1468
1426
|
title: Period
|
1469
1427
|
description: The time interval for the rate limit window.
|
1470
1428
|
type: string
|
1471
|
-
format: duration
|
1472
1429
|
call_limit:
|
1473
1430
|
title: Call Limit
|
1474
1431
|
description: The maximum number of calls allowed within the period.
|
@@ -1539,7 +1496,9 @@ definitions:
|
|
1539
1496
|
title: Interval
|
1540
1497
|
description: The time interval for the rate limit.
|
1541
1498
|
type: string
|
1542
|
-
|
1499
|
+
examples:
|
1500
|
+
- "PT1H"
|
1501
|
+
- "P1D"
|
1543
1502
|
additionalProperties: true
|
1544
1503
|
HttpRequestRegexMatcher:
|
1545
1504
|
title: HTTP Request Matcher
|
@@ -1756,7 +1715,6 @@ definitions:
|
|
1756
1715
|
anyOf:
|
1757
1716
|
- "$ref": "#/definitions/JsonDecoder"
|
1758
1717
|
- "$ref": "#/definitions/XmlDecoder"
|
1759
|
-
- "$ref": "#/definitions/CompositeRawDecoder"
|
1760
1718
|
$parameters:
|
1761
1719
|
type: object
|
1762
1720
|
additionalProperties: true
|
@@ -2340,23 +2298,6 @@ definitions:
|
|
2340
2298
|
$parameters:
|
2341
2299
|
type: object
|
2342
2300
|
additionalProperties: true
|
2343
|
-
GzipJsonDecoder:
|
2344
|
-
title: GzipJson Decoder
|
2345
|
-
description: Use this if the response is Gzip compressed Json.
|
2346
|
-
type: object
|
2347
|
-
additionalProperties: true
|
2348
|
-
required:
|
2349
|
-
- type
|
2350
|
-
properties:
|
2351
|
-
type:
|
2352
|
-
type: string
|
2353
|
-
enum: [GzipJsonDecoder]
|
2354
|
-
encoding:
|
2355
|
-
type: string
|
2356
|
-
default: utf-8
|
2357
|
-
$parameters:
|
2358
|
-
type: object
|
2359
|
-
additionalProperties: true
|
2360
2301
|
ZipfileDecoder:
|
2361
2302
|
title: Zipfile Decoder
|
2362
2303
|
description: Decoder for response data that is returned as zipfile(s).
|
@@ -2364,19 +2305,19 @@ definitions:
|
|
2364
2305
|
additionalProperties: true
|
2365
2306
|
required:
|
2366
2307
|
- type
|
2367
|
-
-
|
2308
|
+
- decoder
|
2368
2309
|
properties:
|
2369
2310
|
type:
|
2370
2311
|
type: string
|
2371
2312
|
enum: [ZipfileDecoder]
|
2372
|
-
|
2313
|
+
decoder:
|
2373
2314
|
title: Parser
|
2374
2315
|
description: Parser to parse the decompressed data from the zipfile(s).
|
2375
2316
|
anyOf:
|
2376
|
-
- "$ref": "#/definitions/
|
2377
|
-
- "$ref": "#/definitions/
|
2378
|
-
- "$ref": "#/definitions/
|
2379
|
-
- "$ref": "#/definitions/
|
2317
|
+
- "$ref": "#/definitions/CsvDecoder"
|
2318
|
+
- "$ref": "#/definitions/GzipDecoder"
|
2319
|
+
- "$ref": "#/definitions/JsonDecoder"
|
2320
|
+
- "$ref": "#/definitions/JsonlDecoder"
|
2380
2321
|
ListPartitionRouter:
|
2381
2322
|
title: List Partition Router
|
2382
2323
|
description: A Partition router that specifies a list of attributes where each attribute describes a portion of the complete data set for a stream. During a sync, each value is iterated over and can be used as input to outbound API requests.
|
@@ -3209,79 +3150,39 @@ definitions:
|
|
3209
3150
|
description: Component decoding the response so records can be extracted.
|
3210
3151
|
anyOf:
|
3211
3152
|
- "$ref": "#/definitions/CustomDecoder"
|
3153
|
+
- "$ref": "#/definitions/CsvDecoder"
|
3154
|
+
- "$ref": "#/definitions/GzipDecoder"
|
3212
3155
|
- "$ref": "#/definitions/JsonDecoder"
|
3213
3156
|
- "$ref": "#/definitions/JsonlDecoder"
|
3214
3157
|
- "$ref": "#/definitions/IterableDecoder"
|
3215
3158
|
- "$ref": "#/definitions/XmlDecoder"
|
3216
|
-
- "$ref": "#/definitions/GzipJsonDecoder"
|
3217
|
-
- "$ref": "#/definitions/CompositeRawDecoder"
|
3218
3159
|
- "$ref": "#/definitions/ZipfileDecoder"
|
3219
3160
|
$parameters:
|
3220
3161
|
type: object
|
3221
3162
|
additionalProperties: true
|
3222
|
-
|
3223
|
-
description: "(This is experimental, use at your own risk)"
|
3163
|
+
GzipDecoder:
|
3224
3164
|
type: object
|
3225
3165
|
required:
|
3226
3166
|
- type
|
3227
|
-
-
|
3167
|
+
- decoder
|
3228
3168
|
properties:
|
3229
3169
|
type:
|
3230
3170
|
type: string
|
3231
|
-
enum: [
|
3232
|
-
|
3233
|
-
anyOf:
|
3234
|
-
- "$ref": "#/definitions/GzipParser"
|
3235
|
-
- "$ref": "#/definitions/JsonParser"
|
3236
|
-
- "$ref": "#/definitions/JsonLineParser"
|
3237
|
-
- "$ref": "#/definitions/CsvParser"
|
3238
|
-
# PARSERS
|
3239
|
-
GzipParser:
|
3240
|
-
type: object
|
3241
|
-
required:
|
3242
|
-
- type
|
3243
|
-
- inner_parser
|
3244
|
-
properties:
|
3245
|
-
type:
|
3246
|
-
type: string
|
3247
|
-
enum: [GzipParser]
|
3248
|
-
inner_parser:
|
3171
|
+
enum: [GzipDecoder]
|
3172
|
+
decoder:
|
3249
3173
|
anyOf:
|
3250
|
-
- "$ref": "#/definitions/
|
3251
|
-
- "$ref": "#/definitions/
|
3252
|
-
- "$ref": "#/definitions/
|
3253
|
-
|
3254
|
-
|
3255
|
-
description: Parser used for parsing str, bytes, or bytearray data and returning data in a dictionary format.
|
3256
|
-
type: object
|
3257
|
-
required:
|
3258
|
-
- type
|
3259
|
-
properties:
|
3260
|
-
type:
|
3261
|
-
type: string
|
3262
|
-
enum: [JsonParser]
|
3263
|
-
encoding:
|
3264
|
-
type: string
|
3265
|
-
default: utf-8
|
3266
|
-
JsonLineParser:
|
3267
|
-
type: object
|
3268
|
-
required:
|
3269
|
-
- type
|
3270
|
-
properties:
|
3271
|
-
type:
|
3272
|
-
type: string
|
3273
|
-
enum: [JsonLineParser]
|
3274
|
-
encoding:
|
3275
|
-
type: string
|
3276
|
-
default: utf-8
|
3277
|
-
CsvParser:
|
3174
|
+
- "$ref": "#/definitions/CsvDecoder"
|
3175
|
+
- "$ref": "#/definitions/GzipDecoder"
|
3176
|
+
- "$ref": "#/definitions/JsonDecoder"
|
3177
|
+
- "$ref": "#/definitions/JsonlDecoder"
|
3178
|
+
CsvDecoder:
|
3278
3179
|
type: object
|
3279
3180
|
required:
|
3280
3181
|
- type
|
3281
3182
|
properties:
|
3282
3183
|
type:
|
3283
3184
|
type: string
|
3284
|
-
enum: [
|
3185
|
+
enum: [CsvDecoder]
|
3285
3186
|
encoding:
|
3286
3187
|
type: string
|
3287
3188
|
default: utf-8
|
@@ -3409,24 +3310,24 @@ definitions:
|
|
3409
3310
|
description: Component decoding the response so records can be extracted.
|
3410
3311
|
anyOf:
|
3411
3312
|
- "$ref": "#/definitions/CustomDecoder"
|
3313
|
+
- "$ref": "#/definitions/CsvDecoder"
|
3314
|
+
- "$ref": "#/definitions/GzipDecoder"
|
3412
3315
|
- "$ref": "#/definitions/JsonDecoder"
|
3413
3316
|
- "$ref": "#/definitions/JsonlDecoder"
|
3414
3317
|
- "$ref": "#/definitions/IterableDecoder"
|
3415
3318
|
- "$ref": "#/definitions/XmlDecoder"
|
3416
|
-
- "$ref": "#/definitions/GzipJsonDecoder"
|
3417
|
-
- "$ref": "#/definitions/CompositeRawDecoder"
|
3418
3319
|
- "$ref": "#/definitions/ZipfileDecoder"
|
3419
3320
|
download_decoder:
|
3420
3321
|
title: Download Decoder
|
3421
3322
|
description: Component decoding the download response so records can be extracted.
|
3422
3323
|
anyOf:
|
3423
3324
|
- "$ref": "#/definitions/CustomDecoder"
|
3325
|
+
- "$ref": "#/definitions/CsvDecoder"
|
3326
|
+
- "$ref": "#/definitions/GzipDecoder"
|
3424
3327
|
- "$ref": "#/definitions/JsonDecoder"
|
3425
3328
|
- "$ref": "#/definitions/JsonlDecoder"
|
3426
3329
|
- "$ref": "#/definitions/IterableDecoder"
|
3427
3330
|
- "$ref": "#/definitions/XmlDecoder"
|
3428
|
-
- "$ref": "#/definitions/GzipJsonDecoder"
|
3429
|
-
- "$ref": "#/definitions/CompositeRawDecoder"
|
3430
3331
|
- "$ref": "#/definitions/ZipfileDecoder"
|
3431
3332
|
$parameters:
|
3432
3333
|
type: object
|
{airbyte_cdk-6.33.2.dev1 → airbyte_cdk-6.33.4}/airbyte_cdk/sources/declarative/decoders/__init__.py
RENAMED
@@ -10,10 +10,8 @@ from airbyte_cdk.sources.declarative.decoders.composite_raw_decoder import (
|
|
10
10
|
)
|
11
11
|
from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
|
12
12
|
from airbyte_cdk.sources.declarative.decoders.json_decoder import (
|
13
|
-
GzipJsonDecoder,
|
14
13
|
IterableDecoder,
|
15
14
|
JsonDecoder,
|
16
|
-
JsonlDecoder,
|
17
15
|
)
|
18
16
|
from airbyte_cdk.sources.declarative.decoders.noop_decoder import NoopDecoder
|
19
17
|
from airbyte_cdk.sources.declarative.decoders.pagination_decoder_decorator import (
|
@@ -27,9 +25,7 @@ __all__ = [
|
|
27
25
|
"CompositeRawDecoder",
|
28
26
|
"JsonDecoder",
|
29
27
|
"JsonParser",
|
30
|
-
"JsonlDecoder",
|
31
28
|
"IterableDecoder",
|
32
|
-
"GzipJsonDecoder",
|
33
29
|
"NoopDecoder",
|
34
30
|
"PaginationDecoderDecorator",
|
35
31
|
"XmlDecoder",
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import csv
|
2
2
|
import gzip
|
3
|
+
import io
|
3
4
|
import json
|
4
5
|
import logging
|
5
6
|
from abc import ABC, abstractmethod
|
@@ -130,11 +131,15 @@ class CompositeRawDecoder(Decoder):
|
|
130
131
|
"""
|
131
132
|
|
132
133
|
parser: Parser
|
134
|
+
stream_response: bool = True
|
133
135
|
|
134
136
|
def is_stream_response(self) -> bool:
|
135
|
-
return
|
137
|
+
return self.stream_response
|
136
138
|
|
137
139
|
def decode(
|
138
140
|
self, response: requests.Response
|
139
141
|
) -> Generator[MutableMapping[str, Any], None, None]:
|
140
|
-
|
142
|
+
if self.is_stream_response():
|
143
|
+
yield from self.parser.parse(data=response.raw) # type: ignore[arg-type]
|
144
|
+
else:
|
145
|
+
yield from self.parser.parse(data=io.BytesIO(response.content))
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
|
3
|
+
#
|
4
|
+
import codecs
|
5
|
+
import logging
|
6
|
+
from dataclasses import InitVar, dataclass
|
7
|
+
from gzip import decompress
|
8
|
+
from typing import Any, Generator, List, Mapping, MutableMapping, Optional
|
9
|
+
|
10
|
+
import orjson
|
11
|
+
import requests
|
12
|
+
|
13
|
+
from airbyte_cdk.sources.declarative.decoders import CompositeRawDecoder, JsonParser
|
14
|
+
from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
|
15
|
+
|
16
|
+
logger = logging.getLogger("airbyte")
|
17
|
+
|
18
|
+
|
19
|
+
class JsonDecoder(Decoder):
|
20
|
+
"""
|
21
|
+
Decoder strategy that returns the json-encoded content of a response, if any.
|
22
|
+
|
23
|
+
Usually, we would try to instantiate the equivalent `CompositeRawDecoder(parser=JsonParser(), stream_response=False)` but there were specific historical behaviors related to the JsonDecoder that we didn't know if we could remove like the fallback on {} in case of errors.
|
24
|
+
"""
|
25
|
+
|
26
|
+
def __init__(self, parameters: Mapping[str, Any]):
|
27
|
+
self._decoder = CompositeRawDecoder(parser=JsonParser(), stream_response=False)
|
28
|
+
|
29
|
+
def is_stream_response(self) -> bool:
|
30
|
+
return self._decoder.is_stream_response()
|
31
|
+
|
32
|
+
def decode(
|
33
|
+
self, response: requests.Response
|
34
|
+
) -> Generator[MutableMapping[str, Any], None, None]:
|
35
|
+
"""
|
36
|
+
Given the response is an empty string or an emtpy list, the function will return a generator with an empty mapping.
|
37
|
+
"""
|
38
|
+
has_yielded = False
|
39
|
+
try:
|
40
|
+
for element in self._decoder.decode(response):
|
41
|
+
yield element
|
42
|
+
has_yielded = True
|
43
|
+
except Exception:
|
44
|
+
yield {}
|
45
|
+
|
46
|
+
if not has_yielded:
|
47
|
+
yield {}
|
48
|
+
|
49
|
+
|
50
|
+
@dataclass
|
51
|
+
class IterableDecoder(Decoder):
|
52
|
+
"""
|
53
|
+
Decoder strategy that returns the string content of the response, if any.
|
54
|
+
"""
|
55
|
+
|
56
|
+
parameters: InitVar[Mapping[str, Any]]
|
57
|
+
|
58
|
+
def is_stream_response(self) -> bool:
|
59
|
+
return True
|
60
|
+
|
61
|
+
def decode(
|
62
|
+
self, response: requests.Response
|
63
|
+
) -> Generator[MutableMapping[str, Any], None, None]:
|
64
|
+
for line in response.iter_lines():
|
65
|
+
yield {"record": line.decode()}
|
@@ -41,6 +41,7 @@ class RecordSelector(HttpSelector):
|
|
41
41
|
_name: Union[InterpolatedString, str] = field(init=False, repr=False, default="")
|
42
42
|
record_filter: Optional[RecordFilter] = None
|
43
43
|
transformations: List[RecordTransformation] = field(default_factory=lambda: [])
|
44
|
+
transform_before_filtering: bool = False
|
44
45
|
|
45
46
|
def __post_init__(self, parameters: Mapping[str, Any]) -> None:
|
46
47
|
self._parameters = parameters
|
@@ -104,9 +105,17 @@ class RecordSelector(HttpSelector):
|
|
104
105
|
Until we decide to move this logic away from the selector, we made this method public so that users like AsyncJobRetriever could
|
105
106
|
share the logic of doing transformations on a set of records.
|
106
107
|
"""
|
107
|
-
|
108
|
-
|
109
|
-
|
108
|
+
if self.transform_before_filtering:
|
109
|
+
transformed_data = self._transform(all_data, stream_state, stream_slice)
|
110
|
+
transformed_filtered_data = self._filter(
|
111
|
+
transformed_data, stream_state, stream_slice, next_page_token
|
112
|
+
)
|
113
|
+
else:
|
114
|
+
filtered_data = self._filter(all_data, stream_state, stream_slice, next_page_token)
|
115
|
+
transformed_filtered_data = self._transform(filtered_data, stream_state, stream_slice)
|
116
|
+
normalized_data = self._normalize_by_schema(
|
117
|
+
transformed_filtered_data, schema=records_schema
|
118
|
+
)
|
110
119
|
for data in normalized_data:
|
111
120
|
yield Record(data=data, stream_name=self.name, associated_slice=stream_slice)
|
112
121
|
|
@@ -58,8 +58,7 @@ class ConcurrentPerPartitionCursor(Cursor):
|
|
58
58
|
CurrentPerPartitionCursor expects the state of the ConcurrentCursor to follow the format {cursor_field: cursor_value}.
|
59
59
|
"""
|
60
60
|
|
61
|
-
DEFAULT_MAX_PARTITIONS_NUMBER =
|
62
|
-
SWITCH_TO_GLOBAL_LIMIT = 1000
|
61
|
+
DEFAULT_MAX_PARTITIONS_NUMBER = 10000
|
63
62
|
_NO_STATE: Mapping[str, Any] = {}
|
64
63
|
_NO_CURSOR_STATE: Mapping[str, Any] = {}
|
65
64
|
_GLOBAL_STATE_KEY = "state"
|
@@ -100,7 +99,7 @@ class ConcurrentPerPartitionCursor(Cursor):
|
|
100
99
|
self._new_global_cursor: Optional[StreamState] = None
|
101
100
|
self._lookback_window: int = 0
|
102
101
|
self._parent_state: Optional[StreamState] = None
|
103
|
-
self.
|
102
|
+
self._over_limit: int = 0
|
104
103
|
self._use_global_cursor: bool = False
|
105
104
|
self._partition_serializer = PerPartitionKeySerializer()
|
106
105
|
|
@@ -234,8 +233,8 @@ class ConcurrentPerPartitionCursor(Cursor):
|
|
234
233
|
or removed due to being the oldest.
|
235
234
|
"""
|
236
235
|
with self._lock:
|
237
|
-
self._number_of_partitions += 1
|
238
236
|
while len(self._cursor_per_partition) > self.DEFAULT_MAX_PARTITIONS_NUMBER - 1:
|
237
|
+
self._over_limit += 1
|
239
238
|
# Try removing finished partitions first
|
240
239
|
for partition_key in list(self._cursor_per_partition.keys()):
|
241
240
|
if (
|
@@ -246,7 +245,7 @@ class ConcurrentPerPartitionCursor(Cursor):
|
|
246
245
|
partition_key
|
247
246
|
) # Remove the oldest partition
|
248
247
|
logger.warning(
|
249
|
-
f"The maximum number of partitions has been reached. Dropping the oldest finished partition: {oldest_partition}. Over limit: {self.
|
248
|
+
f"The maximum number of partitions has been reached. Dropping the oldest finished partition: {oldest_partition}. Over limit: {self._over_limit}."
|
250
249
|
)
|
251
250
|
break
|
252
251
|
else:
|
@@ -255,7 +254,7 @@ class ConcurrentPerPartitionCursor(Cursor):
|
|
255
254
|
1
|
256
255
|
] # Remove the oldest partition
|
257
256
|
logger.warning(
|
258
|
-
f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self.
|
257
|
+
f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self._over_limit}."
|
259
258
|
)
|
260
259
|
|
261
260
|
def _set_initial_state(self, stream_state: StreamState) -> None:
|
@@ -356,10 +355,6 @@ class ConcurrentPerPartitionCursor(Cursor):
|
|
356
355
|
|
357
356
|
def observe(self, record: Record) -> None:
|
358
357
|
if not self._use_global_cursor and self.limit_reached():
|
359
|
-
logger.info(
|
360
|
-
f"Exceeded the 'SWITCH_TO_GLOBAL_LIMIT' of {self.SWITCH_TO_GLOBAL_LIMIT}. "
|
361
|
-
f"Switching to global cursor for {self._stream_name}."
|
362
|
-
)
|
363
358
|
self._use_global_cursor = True
|
364
359
|
|
365
360
|
if not record.associated_slice:
|
@@ -402,4 +397,4 @@ class ConcurrentPerPartitionCursor(Cursor):
|
|
402
397
|
return cursor
|
403
398
|
|
404
399
|
def limit_reached(self) -> bool:
|
405
|
-
return self.
|
400
|
+
return self._over_limit > self.DEFAULT_MAX_PARTITIONS_NUMBER
|