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.