Skip to content

Commit 1fffc69

Browse files
fix: unwrap GroupingPartitionRouter in get_partition_router() to detect parent streams
Co-Authored-By: unknown <>
1 parent c868fdb commit 1fffc69

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

airbyte_cdk/sources/streams/concurrent/default_stream.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
from airbyte_cdk.sources.declarative.incremental.concurrent_partition_cursor import (
1010
ConcurrentPerPartitionCursor,
1111
)
12+
from airbyte_cdk.sources.declarative.partition_routers.grouping_partition_router import (
13+
GroupingPartitionRouter,
14+
)
1215
from airbyte_cdk.sources.declarative.partition_routers.partition_router import PartitionRouter
1316
from airbyte_cdk.sources.declarative.stream_slicers.declarative_partition_generator import (
1417
StreamSlicerPartitionGenerator,
@@ -113,13 +116,20 @@ def block_simultaneous_read(self, value: str) -> None:
113116
self._block_simultaneous_read = value
114117

115118
def get_partition_router(self) -> PartitionRouter | None:
116-
"""Return the partition router for this stream, or None if not available."""
119+
"""Return the partition router for this stream, or None if not available.
120+
121+
If the router is a GroupingPartitionRouter, unwraps it to return the
122+
underlying router so callers can inspect parent stream relationships.
123+
"""
117124
if not isinstance(self._stream_partition_generator, StreamSlicerPartitionGenerator):
118125
return None
119126
stream_slicer = self._stream_partition_generator._stream_slicer
120127
if not isinstance(stream_slicer, ConcurrentPerPartitionCursor):
121128
return None
122-
return stream_slicer._partition_router
129+
router = stream_slicer._partition_router
130+
if isinstance(router, GroupingPartitionRouter):
131+
return router.underlying_partition_router
132+
return router
123133

124134
def check_availability(self) -> StreamAvailability:
125135
"""

0 commit comments

Comments
 (0)