@@ -74,7 +74,7 @@ def __init__(
74
74
if messages is not None and message_file is not None :
75
75
raise ValueError ("Only one of messages or message_file can be provided" )
76
76
77
- self ._messages : list [AirbyteMessage ] | None = []
77
+ self ._messages : list [AirbyteMessage ] | None = None
78
78
self ._message_file : Path | None = message_file
79
79
if messages :
80
80
try :
@@ -106,7 +106,7 @@ def _parse_message(message: str) -> AirbyteMessage:
106
106
def records_and_state_messages (
107
107
self ,
108
108
) -> list [AirbyteMessage ]:
109
- return self ._get_message_by_types (
109
+ return self .get_message_by_types (
110
110
message_types = [Type .RECORD , Type .STATE ],
111
111
safe_iterator = False ,
112
112
)
@@ -119,14 +119,14 @@ def records_and_state_messages_iterator(
119
119
Use this instead of `records_and_state_messages` when the volume of messages could be large
120
120
enough to overload available memory.
121
121
"""
122
- return self ._get_message_by_types (
122
+ return self .get_message_by_types (
123
123
message_types = [Type .RECORD , Type .STATE ],
124
124
safe_iterator = True ,
125
125
)
126
126
127
127
@property
128
128
def records (self ) -> List [AirbyteMessage ]:
129
- return self ._get_message_by_types ([Type .RECORD ])
129
+ return self .get_message_by_types ([Type .RECORD ])
130
130
131
131
@property
132
132
def records_iterator (self ) -> Generator [AirbyteMessage , None , None ]:
@@ -135,23 +135,23 @@ def records_iterator(self) -> Generator[AirbyteMessage, None, None]:
135
135
Use this instead of `records` when the volume of records could be large
136
136
enough to overload available memory.
137
137
"""
138
- return self ._get_message_by_types ([Type .RECORD ], safe_iterator = True )
138
+ return self .get_message_by_types ([Type .RECORD ], safe_iterator = True )
139
139
140
140
@property
141
141
def state_messages (self ) -> List [AirbyteMessage ]:
142
- return self ._get_message_by_types ([Type .STATE ])
142
+ return self .get_message_by_types ([Type .STATE ])
143
143
144
144
@property
145
145
def spec_messages (self ) -> List [AirbyteMessage ]:
146
- return self ._get_message_by_types ([Type .SPEC ])
146
+ return self .get_message_by_types ([Type .SPEC ])
147
147
148
148
@property
149
149
def connection_status_messages (self ) -> List [AirbyteMessage ]:
150
- return self ._get_message_by_types ([Type .CONNECTION_STATUS ])
150
+ return self .get_message_by_types ([Type .CONNECTION_STATUS ])
151
151
152
152
@property
153
153
def most_recent_state (self ) -> AirbyteStreamState | None :
154
- state_message_iterator = self ._get_message_by_types (
154
+ state_message_iterator = self .get_message_by_types (
155
155
[Type .STATE ],
156
156
safe_iterator = True ,
157
157
)
@@ -168,11 +168,11 @@ def most_recent_state(self) -> AirbyteStreamState | None:
168
168
169
169
@property
170
170
def logs (self ) -> List [AirbyteMessage ]:
171
- return self ._get_message_by_types ([Type .LOG ])
171
+ return self .get_message_by_types ([Type .LOG ])
172
172
173
173
@property
174
174
def trace_messages (self ) -> List [AirbyteMessage ]:
175
- return self ._get_message_by_types ([Type .TRACE ])
175
+ return self .get_message_by_types ([Type .TRACE ])
176
176
177
177
@property
178
178
def analytics_messages (self ) -> List [AirbyteMessage ]:
@@ -184,7 +184,7 @@ def errors(self) -> List[AirbyteMessage]:
184
184
185
185
@property
186
186
def catalog (self ) -> AirbyteMessage :
187
- catalog = self ._get_message_by_types ([Type .CATALOG ])
187
+ catalog = self .get_message_by_types ([Type .CATALOG ])
188
188
if len (catalog ) != 1 :
189
189
raise ValueError (f"Expected exactly one catalog but got { len (catalog )} " )
190
190
return catalog [0 ]
@@ -199,7 +199,7 @@ def get_stream_statuses(self, stream_name: str) -> List[AirbyteStreamStatus]:
199
199
)
200
200
return list (status_messages )
201
201
202
- def _read_all_messages (self ) -> Generator [AirbyteMessage , None , None ]:
202
+ def get_message_iterator (self ) -> Generator [AirbyteMessage , None , None ]:
203
203
"""Creates a generator which yields messages one by one.
204
204
205
205
This will iterate over all messages in the output file (if provided) or the messages
@@ -221,35 +221,35 @@ def _read_all_messages(self) -> Generator[AirbyteMessage, None, None]:
221
221
if self ._messages is not None :
222
222
yield from self ._messages
223
223
224
- # Overloads to provide proper type hints for different usages of `_get_message_by_types `.
224
+ # Overloads to provide proper type hints for different usages of `get_message_by_types `.
225
225
226
226
@overload
227
- def _get_message_by_types (
227
+ def get_message_by_types (
228
228
self ,
229
229
message_types : list [Type ],
230
230
) -> list [AirbyteMessage ]: ...
231
231
232
232
@overload
233
- def _get_message_by_types (
233
+ def get_message_by_types (
234
234
self ,
235
235
message_types : list [Type ],
236
236
* ,
237
237
safe_iterator : Literal [False ],
238
238
) -> list [AirbyteMessage ]: ...
239
239
240
240
@overload
241
- def _get_message_by_types (
241
+ def get_message_by_types (
242
242
self ,
243
243
message_types : list [Type ],
244
244
* ,
245
245
safe_iterator : Literal [True ],
246
246
) -> Generator [AirbyteMessage , None , None ]: ...
247
247
248
- def _get_message_by_types (
248
+ def get_message_by_types (
249
249
self ,
250
250
message_types : list [Type ],
251
251
* ,
252
- safe_iterator : bool = True ,
252
+ safe_iterator : bool = False ,
253
253
) -> list [AirbyteMessage ] | Generator [AirbyteMessage , None , None ]:
254
254
"""Get messages of specific types.
255
255
@@ -259,7 +259,7 @@ def _get_message_by_types(
259
259
Use `safe_iterator=True` when the volume of messages could overload the available
260
260
memory.
261
261
"""
262
- message_generator = self ._read_all_messages ()
262
+ message_generator = self .get_message_iterator ()
263
263
264
264
if safe_iterator :
265
265
return (message for message in message_generator if message .type in message_types )
@@ -269,7 +269,7 @@ def _get_message_by_types(
269
269
def _get_trace_message_by_trace_type (self , trace_type : TraceType ) -> List [AirbyteMessage ]:
270
270
return [
271
271
message
272
- for message in self ._get_message_by_types (
272
+ for message in self .get_message_by_types (
273
273
[Type .TRACE ],
274
274
safe_iterator = True ,
275
275
)
0 commit comments