@@ -402,13 +402,14 @@ def _analyse(self, transferred_file: Path):
402402 )
403403 except KeyError as e :
404404 logger .error (
405- f"Metadata gathering failed with a key error for key: { e .args [0 ]} "
405+ "Metadata gathering failed with a key error for key: "
406+ f"{ e .args [0 ]} "
406407 )
407408 raise e
408409 if not dc_metadata :
409- mdoc_for_reading = None
410+ self . _mdoc_for_reading = None
410411 elif transferred_file .suffix == ".mdoc" :
411- mdoc_for_reading = transferred_file
412+ self . _mdoc_for_reading = transferred_file
412413 if not self ._context :
413414 if not self ._find_extension (transferred_file ):
414415 logger .debug (f"No extension found for { transferred_file } " )
@@ -446,7 +447,8 @@ def _analyse(self, transferred_file: Path):
446447 dc_metadata = {}
447448 except KeyError as e :
448449 logger .error (
449- f"Metadata gathering failed with a key error for key: { e .args [0 ]} "
450+ "Metadata gathering failed with a key error for key: "
451+ f"{ e .args [0 ]} "
450452 )
451453 raise e
452454 except ValueError as e :
@@ -468,7 +470,8 @@ def _analyse(self, transferred_file: Path):
468470 self .notify (dc_metadata )
469471 else :
470472 logger .warning (
471- "Could not determine acquisition software as context is not set"
473+ "Could not determine acquisition software as context "
474+ "is not set"
472475 )
473476
474477 # Contexts that can be immediately posted without additional work
@@ -495,36 +498,55 @@ def _analyse(self, transferred_file: Path):
495498 if self ._extension :
496499 logger .info (f"Extension found successfully for { transferred_file } " )
497500 try :
498- self ._context .post_first_transfer (
499- transferred_file ,
500- environment = self ._environment ,
501- )
501+ if self ._context is not None :
502+ self ._context .post_first_transfer (
503+ transferred_file ,
504+ environment = self ._environment ,
505+ )
506+ else :
507+ logger .warning (
508+ "Could not post first transfer as context is not set"
509+ )
502510 except Exception as e :
503511 logger .error (f"Exception encountered: { e } " )
504512 if not dc_metadata :
505513 try :
506- dc_metadata = self ._context .gather_metadata (
507- mdoc_for_reading or self ._xml_file (transferred_file ),
508- environment = self ._environment ,
509- )
514+ if self ._context is not None :
515+ dc_metadata = self ._context .gather_metadata (
516+ self ._mdoc_for_reading
517+ or self ._xml_file (transferred_file ),
518+ environment = self ._environment ,
519+ )
520+ else :
521+ logger .warning (
522+ "Could not gather metadata as context is not set"
523+ )
510524 except KeyError as e :
511525 logger .error (
512- f"Metadata gathering failed with a key error for key: { e .args [0 ]} "
526+ "Metadata gathering failed with a key error for key: "
527+ f"{ e .args [0 ]} "
513528 )
514529 raise e
515530 if not dc_metadata or not self ._force_mdoc_metadata :
516- mdoc_for_reading = None
531+ self . _mdoc_for_reading = None
517532 self ._unseen_xml .append (transferred_file )
518533 if dc_metadata :
519534 self ._unseen_xml = []
520535 if dc_metadata .get ("file_extension" ):
521536 self ._extension = dc_metadata ["file_extension" ]
522537 else :
523538 dc_metadata ["file_extension" ] = self ._extension
524- dc_metadata ["acquisition_software" ] = (
525- self ._context ._acquisition_software
526- )
527- self .notify (dc_metadata )
539+ if self ._context is not None :
540+ dc_metadata ["acquisition_software" ] = (
541+ self ._context ._acquisition_software
542+ )
543+ self .notify (dc_metadata )
544+ else :
545+ logger .warning (
546+ "Could not assign acquisition software to data collection "
547+ "metadata as context is not set"
548+ )
549+
528550 elif any (
529551 context in str (self ._context )
530552 for context in (
0 commit comments