1515from typing import Type
1616
1717from murfey .client .context import Context
18+ from murfey .client .contexts .atlas import AtlasContext
1819from murfey .client .contexts .clem import CLEMContext
1920from murfey .client .contexts .spa import SPAModularContext
2021from murfey .client .contexts .spa_metadata import SPAMetadataContext
@@ -135,7 +136,7 @@ def _find_context(self, file_path: Path) -> bool:
135136
136137 # Tomography and SPA workflow checks
137138 if "atlas" in file_path .parts :
138- self ._context = SPAMetadataContext ("epu" , self ._basepath )
139+ self ._context = AtlasContext ("epu" , self ._basepath )
139140 return True
140141
141142 if "Metadata" in file_path .parts or file_path .name == "EpuSession.dm" :
@@ -266,7 +267,7 @@ def _analyse(self):
266267 )
267268 except Exception as e :
268269 logger .error (f"Exception encountered: { e } " )
269- if "atlas" not in transferred_file . parts :
270+ if not isinstance ( self . _context , AtlasContext ) :
270271 if not dc_metadata :
271272 try :
272273 dc_metadata = self ._context .gather_metadata (
@@ -308,6 +309,10 @@ def _analyse(self):
308309 )
309310 self .post_transfer (transferred_file )
310311
312+ elif isinstance (self ._context , AtlasContext ):
313+ logger .debug (f"File { transferred_file .name !r} is part of the atlas" )
314+ self .post_transfer (transferred_file )
315+
311316 # Handle files with tomography and SPA context differently
312317 elif not self ._extension or self ._unseen_xml :
313318 valid_extension = self ._find_extension (transferred_file )
@@ -325,36 +330,35 @@ def _analyse(self):
325330 )
326331 except Exception as e :
327332 logger .error (f"Exception encountered: { e } " )
328- if "atlas" not in transferred_file .parts :
329- if not dc_metadata :
330- try :
331- dc_metadata = self ._context .gather_metadata (
332- mdoc_for_reading
333- or self ._xml_file (transferred_file ),
334- environment = self ._environment ,
335- )
336- except KeyError as e :
337- logger .error (
338- f"Metadata gathering failed with a key error for key: { e .args [0 ]} "
339- )
340- raise e
341- if not dc_metadata or not self ._force_mdoc_metadata :
342- mdoc_for_reading = None
343- self ._unseen_xml .append (transferred_file )
344- if dc_metadata :
345- self ._unseen_xml = []
346- if dc_metadata .get ("file_extension" ):
347- self ._extension = dc_metadata ["file_extension" ]
348- else :
349- dc_metadata ["file_extension" ] = self ._extension
350- dc_metadata ["acquisition_software" ] = (
351- self ._context ._acquisition_software
333+ if not dc_metadata :
334+ try :
335+ dc_metadata = self ._context .gather_metadata (
336+ mdoc_for_reading
337+ or self ._xml_file (transferred_file ),
338+ environment = self ._environment ,
352339 )
353- self .notify (
354- {
355- "form" : dc_metadata ,
356- }
340+ except KeyError as e :
341+ logger .error (
342+ f"Metadata gathering failed with a key error for key: { e .args [0 ]} "
357343 )
344+ raise e
345+ if not dc_metadata or not self ._force_mdoc_metadata :
346+ mdoc_for_reading = None
347+ self ._unseen_xml .append (transferred_file )
348+ if dc_metadata :
349+ self ._unseen_xml = []
350+ if dc_metadata .get ("file_extension" ):
351+ self ._extension = dc_metadata ["file_extension" ]
352+ else :
353+ dc_metadata ["file_extension" ] = self ._extension
354+ dc_metadata ["acquisition_software" ] = (
355+ self ._context ._acquisition_software
356+ )
357+ self .notify (
358+ {
359+ "form" : dc_metadata ,
360+ }
361+ )
358362 elif isinstance (
359363 self ._context ,
360364 (
0 commit comments