2121 MissingSchemaError ,
2222 RecordParseError ,
2323 SchemaInferenceError ,
24- StopSyncPerValidationPolicy ,
24+ StopSyncPerValidationPolicy , EmptyFileSchemaInferenceError ,
2525)
2626from airbyte_cdk .sources .file_based .file_types import FileTransfer
2727from airbyte_cdk .sources .file_based .remote_file import RemoteFile
@@ -246,12 +246,12 @@ def get_json_schema(self) -> JsonSchema:
246246 exception = AirbyteTracedException (exception = config_exception ),
247247 failure_type = FailureType .config_error ,
248248 )
249+ except EmptyFileSchemaInferenceError as exc :
250+ self ._raise_schema_inference_error (exc )
249251 except AirbyteTracedException as ate :
250252 raise ate
251253 except Exception as exc :
252- raise SchemaInferenceError (
253- FileBasedSourceError .SCHEMA_INFERENCE_ERROR , stream = self .name
254- ) from exc
254+ self ._raise_schema_inference_error (exc )
255255 else :
256256 return {"type" : "object" , "properties" : {** extra_fields , ** schema ["properties" ]}}
257257
@@ -385,12 +385,17 @@ async def _infer_file_schema(self, file: RemoteFile) -> SchemaType:
385385 return await self .get_parser ().infer_schema (
386386 self .config , file , self .stream_reader , self .logger
387387 )
388+ except EmptyFileSchemaInferenceError as exc :
389+ self ._raise_schema_inference_error (exc , file )
388390 except AirbyteTracedException as ate :
389391 raise ate
390392 except Exception as exc :
391- raise SchemaInferenceError (
392- FileBasedSourceError .SCHEMA_INFERENCE_ERROR ,
393- file = file .uri ,
394- format = str (self .config .format ),
395- stream = self .name ,
396- ) from exc
393+ self ._raise_schema_inference_error (exc , file )
394+
395+ def _raise_schema_inference_error (self , exc : Exception , file : Optional [RemoteFile ] = None ) -> None :
396+ raise SchemaInferenceError (
397+ FileBasedSourceError .SCHEMA_INFERENCE_ERROR ,
398+ file = file .uri if file else None ,
399+ format = str (self .config .format ) if self .config .format else None ,
400+ stream = self .name ,
401+ ) from exc
0 commit comments