Source code for ewoksscxrd.tasks.createsetccdfiles

import os
import shutil
import logging
from ewokscore import Task

logger = logging.getLogger(__name__)


[docs] class CreateSetCcdFiles( Task, input_names=["output", "ccd_set_file"], output_names=["saved_files_path"], ):
[docs] def run(self): args = self.inputs saved_files = [] # Compute the destination basename using the provided logic. ext = os.path.splitext(args.ccd_set_file)[-1].lower() # Expect .set or .ccd destination_basename = os.path.basename(args.output) + ext destination_dir = os.path.dirname(args.output) logger.info(f"Starting CreateSetCcdFiles task for file: {args.ccd_set_file}") # Check if the file exists and that it is either a .set or .ccd file. if not os.path.exists(args.ccd_set_file): logger.warning(f"File {args.ccd_set_file} not found") elif ext not in (".set", ".ccd"): logger.warning(f"File {args.ccd_set_file} is not a .set or .ccd file") else: destination = os.path.join(destination_dir, destination_basename) shutil.copy(args.ccd_set_file, destination) saved_files.append(destination) logger.info(f"Created {destination}") self.outputs.saved_files_path = saved_files logger.info( "CreateSetCcdFiles task completed. Saved files: " + ", ".join(saved_files) )