airbyte_cdk.sources.declarative.retrievers.request_window_splitting

 1#
 2# Copyright (c) 2026 Airbyte, Inc., all rights reserved.
 3#
 4
 5import datetime
 6from dataclasses import dataclass
 7from typing import Optional
 8
 9
10@dataclass(frozen=True)
11class RequestWindowSplitting:
12    """
13    Configuration for the `request_window_splitting` retriever field - created once per stream and shared,
14    mirroring `PageSizeReduction`. Unlike `PageSizeReducer`, there is no per-partition mutable counterpart: a
15    split window is either split again (recursion) or the sync fails, so a plain config object is enough.
16    """
17
18    failure_message: Optional[str] = None
19    # Independent of, and typically looser than, the cursor's own granularity floor - useful when a cursor
20    # could split further but the API's rate limit makes many small requests worse than a few large ones.
21    min_split_window: Optional[datetime.timedelta] = None
@dataclass(frozen=True)
class RequestWindowSplitting:
11@dataclass(frozen=True)
12class RequestWindowSplitting:
13    """
14    Configuration for the `request_window_splitting` retriever field - created once per stream and shared,
15    mirroring `PageSizeReduction`. Unlike `PageSizeReducer`, there is no per-partition mutable counterpart: a
16    split window is either split again (recursion) or the sync fails, so a plain config object is enough.
17    """
18
19    failure_message: Optional[str] = None
20    # Independent of, and typically looser than, the cursor's own granularity floor - useful when a cursor
21    # could split further but the API's rate limit makes many small requests worse than a few large ones.
22    min_split_window: Optional[datetime.timedelta] = None

Configuration for the request_window_splitting retriever field - created once per stream and shared, mirroring PageSizeReduction. Unlike PageSizeReducer, there is no per-partition mutable counterpart: a split window is either split again (recursion) or the sync fails, so a plain config object is enough.

RequestWindowSplitting( failure_message: Optional[str] = None, min_split_window: Optional[datetime.timedelta] = None)
failure_message: Optional[str] = None
min_split_window: Optional[datetime.timedelta] = None