airbyte-cdk 6.23.0.dev1__py3-none-any.whl → 6.24.0.dev0__py3-none-any.whl
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/sources/declarative/parsers/model_to_component_factory.py +1 -1
- airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +22 -0
- {airbyte_cdk-6.23.0.dev1.dist-info → airbyte_cdk-6.24.0.dev0.dist-info}/METADATA +1 -1
- {airbyte_cdk-6.23.0.dev1.dist-info → airbyte_cdk-6.24.0.dev0.dist-info}/RECORD +7 -7
- {airbyte_cdk-6.23.0.dev1.dist-info → airbyte_cdk-6.24.0.dev0.dist-info}/LICENSE.txt +0 -0
- {airbyte_cdk-6.23.0.dev1.dist-info → airbyte_cdk-6.24.0.dev0.dist-info}/WHEEL +0 -0
- {airbyte_cdk-6.23.0.dev1.dist-info → airbyte_cdk-6.24.0.dev0.dist-info}/entry_points.txt +0 -0
@@ -2374,7 +2374,7 @@ class ModelToComponentFactory:
|
|
2374
2374
|
if (
|
2375
2375
|
not isinstance(stream_slicer, DatetimeBasedCursor)
|
2376
2376
|
or type(stream_slicer) is not DatetimeBasedCursor
|
2377
|
-
)
|
2377
|
+
):
|
2378
2378
|
# Many of the custom component implementations of DatetimeBasedCursor override get_request_params() (or other methods).
|
2379
2379
|
# Because we're decoupling RequestOptionsProvider from the Cursor, custom components will eventually need to reimplement
|
2380
2380
|
# their own RequestOptionsProvider. However, right now the existing StreamSlicer/Cursor still can act as the SimpleRetriever's
|
@@ -8,6 +8,7 @@ from typing import Any, List, Mapping, Optional, Union
|
|
8
8
|
import requests
|
9
9
|
|
10
10
|
from airbyte_cdk.sources.streams.http.error_handlers import ErrorHandler
|
11
|
+
from airbyte_cdk.sources.streams.http.error_handlers.backoff_strategy import BackoffStrategy
|
11
12
|
from airbyte_cdk.sources.streams.http.error_handlers.response_models import (
|
12
13
|
ErrorResolution,
|
13
14
|
ResponseAction,
|
@@ -77,3 +78,24 @@ class CompositeErrorHandler(ErrorHandler):
|
|
77
78
|
return matched_error_resolution
|
78
79
|
|
79
80
|
return create_fallback_error_resolution(response_or_exception)
|
81
|
+
|
82
|
+
@property
|
83
|
+
def backoff_strategies(self) -> Optional[List[BackoffStrategy]]:
|
84
|
+
"""
|
85
|
+
Combines backoff strategies from all child error handlers into a single flattened list.
|
86
|
+
|
87
|
+
When used with HttpRequester, note the following behavior:
|
88
|
+
- In HttpRequester.__post_init__, the entire list of backoff strategies is assigned to the error handler
|
89
|
+
- However, the error handler's backoff_time() method only ever uses the first non-None strategy in the list
|
90
|
+
- This means that if any backoff strategies are present, the first non-None strategy becomes the default
|
91
|
+
- This applies to both user-defined response filters and errors from DEFAULT_ERROR_MAPPING
|
92
|
+
- The list structure is not used to map different strategies to different error conditions
|
93
|
+
- Therefore, subsequent strategies in the list will not be used
|
94
|
+
|
95
|
+
Returns None if no handlers have strategies defined, which will result in HttpRequester using its default backoff strategy.
|
96
|
+
"""
|
97
|
+
all_strategies = []
|
98
|
+
for handler in self.error_handlers:
|
99
|
+
if hasattr(handler, "backoff_strategies") and handler.backoff_strategies:
|
100
|
+
all_strategies.extend(handler.backoff_strategies)
|
101
|
+
return all_strategies if all_strategies else None
|
@@ -115,7 +115,7 @@ airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py,sha256=958MMX6_Z
|
|
115
115
|
airbyte_cdk/sources/declarative/parsers/custom_exceptions.py,sha256=Rir9_z3Kcd5Es0-LChrzk-0qubAsiK_RSEnLmK2OXm8,553
|
116
116
|
airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py,sha256=CXwTfD3wSQq3okcqwigpprbHhSURUokh4GK2OmOyKC8,9132
|
117
117
|
airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py,sha256=IWUOdF03o-aQn0Occo1BJCxU0Pz-QILk5L67nzw2thw,6803
|
118
|
-
airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=
|
118
|
+
airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py,sha256=SdQojVgs-LmhqCemtngS3XqtzXZj2gSqAoPdRCZFEs8,121612
|
119
119
|
airbyte_cdk/sources/declarative/partition_routers/__init__.py,sha256=HJ-Syp3p7RpyR_OK0X_a2kSyISfu3W-PKrRI16iY0a8,957
|
120
120
|
airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py,sha256=n82J15S8bjeMZ5uROu--P3hnbQoxkY5v7RPHYx7g7ro,2929
|
121
121
|
airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py,sha256=c5cuVFM6NFkuQqG8Z5IwkBuwDrvXZN1CunUOM_L0ezg,6892
|
@@ -133,7 +133,7 @@ airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/hea
|
|
133
133
|
airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py,sha256=I3KYCJHhPiRfxYUzOa293YH4U3wGFISDsdY1OMHWRtw,2942
|
134
134
|
airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py,sha256=T2JTIdHdPzPiW0MpkCNYPsuaHUtF9V-ijNqUqdTDl6U,3069
|
135
135
|
airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py,sha256=ZN5kcaVAQDinX0Ld5NXA8M_7Sax5BoPsknVwH7v06as,634
|
136
|
-
airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py,sha256=
|
136
|
+
airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py,sha256=4_PegbHBUiNbqa5ndZ2n9rm69O2iEfWU-NcIhSXZDIs,4137
|
137
137
|
airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py,sha256=BGED9TcbA3mlvd9D7sog_u5AiyjWGVOUq_00aK3PNzg,5111
|
138
138
|
airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py,sha256=q0YkeYUUWO6iErUy0vjqiOkhg8_9d5YcCmtlpXAJJ9E,1314
|
139
139
|
airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py,sha256=Tan66odx8VHzfdyyXMQkXz2pJYksllGqvxmpoajgcK4,669
|
@@ -350,8 +350,8 @@ airbyte_cdk/utils/slice_hasher.py,sha256=-pHexlNYoWYPnXNH-M7HEbjmeJe9Zk7SJijdQ7d
|
|
350
350
|
airbyte_cdk/utils/spec_schema_transformations.py,sha256=-5HTuNsnDBAhj-oLeQXwpTGA0HdcjFOf2zTEMUTTg_Y,816
|
351
351
|
airbyte_cdk/utils/stream_status_utils.py,sha256=ZmBoiy5HVbUEHAMrUONxZvxnvfV9CesmQJLDTAIWnWw,1171
|
352
352
|
airbyte_cdk/utils/traced_exception.py,sha256=C8uIBuCL_E4WnBAOPSxBicD06JAldoN9fGsQDp463OY,6292
|
353
|
-
airbyte_cdk-6.
|
354
|
-
airbyte_cdk-6.
|
355
|
-
airbyte_cdk-6.
|
356
|
-
airbyte_cdk-6.
|
357
|
-
airbyte_cdk-6.
|
353
|
+
airbyte_cdk-6.24.0.dev0.dist-info/LICENSE.txt,sha256=Wfe61S4BaGPj404v8lrAbvhjYR68SHlkzeYrg3_bbuM,1051
|
354
|
+
airbyte_cdk-6.24.0.dev0.dist-info/METADATA,sha256=ErJGPCLl0n83L0TJ-IRk0RaRjz5BTSBlQHkOy3cZl7Y,6001
|
355
|
+
airbyte_cdk-6.24.0.dev0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
356
|
+
airbyte_cdk-6.24.0.dev0.dist-info/entry_points.txt,sha256=fj-e3PAQvsxsQzyyq8UkG1k8spunWnD4BAH2AwlR6NM,95
|
357
|
+
airbyte_cdk-6.24.0.dev0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|