@@ -103,7 +103,7 @@ def __init__(
103103 cursor_cls : Type [
104104 Union [AbstractConcurrentFileBasedCursor , AbstractFileBasedCursor ]
105105 ] = FileBasedConcurrentCursor ,
106- stream_permissions_reader : AbstractFileBasedStreamPermissionsReader = None ,
106+ stream_permissions_reader : Optional [ AbstractFileBasedStreamPermissionsReader ] = None ,
107107 ):
108108 self .stream_reader = stream_reader
109109 self .stream_permissions_reader = stream_permissions_reader
@@ -348,6 +348,10 @@ def _make_permissions_stream(
348348 """
349349 Creates a stream that reads permissions from files.
350350 """
351+ if not self .stream_permissions_reader :
352+ raise ValueError (
353+ "Stream permissions reader is required for streams that use permissions transfer mode."
354+ )
351355 return PermissionsFileBasedStream (
352356 config = stream_config ,
353357 catalog_schema = self .stream_schemas .get (stream_config .name ),
@@ -379,6 +383,10 @@ def _make_file_based_stream(
379383 def _make_identities_stream (
380384 self ,
381385 ) -> Stream :
386+ if not self .stream_permissions_reader :
387+ raise ValueError (
388+ "Stream permissions reader is required for streams that use permissions transfer mode."
389+ )
382390 return FileIdentitiesStream (
383391 catalog_schema = self .stream_schemas .get (FileIdentitiesStream .IDENTITIES_STREAM_NAME ),
384392 stream_permissions_reader = self .stream_permissions_reader ,
0 commit comments