Source code for ewoksfluo.tasks.input.concat_bliss

from typing import Dict
from typing import List

from ewokscore import Task
from ewokscore.model import BaseInputModel
from ewokscore.model import BaseOutputModel
from pydantic import Field

from ...io.blissconcat import concatenate_bliss_scans


[docs] class Inputs(BaseInputModel): bliss_scan_uris: List[str] = Field( description="List of Bliss scan URI's to concatenate.", examples=[ [ "/data/dataset1.h5::/2.1", "/data/dataset1.h5::/4.1", "/data/dataset2.h5::/100.1", "/data/dataset2.h5::/101.1", ] ], ) bliss_scan_uri: str = Field( description="Concatenated Bliss scan URI to save.", examples=[ "/result/concatenated.h5", "/result/concatenated.h5::/2.1", ], ) virtual_axes: Dict[str, str] = Field( default_factory=dict, description="Virtual positioners which are typically the sum of scalar and moving motor positions.", examples=[{"sy": "<nsy>+<nspy>", "sz": "<nsz>+<nspz>"}], ) axes_units: Dict[str, str] = Field( default_factory=dict, description="Axes units to be used when missing.", examples=[{"nsy": "mm", "nsz": "mm", "nspy": "um", "nspz": "um"}], )
[docs] class Outputs(BaseOutputModel): bliss_scan_uri: str = Field( description="Bliss scan URI.", examples=["/result/concatenated.h5::/2.1"] )
[docs] class ConcatBliss(Task, input_model=Inputs, output_model=Outputs): """Concatenate Bliss scans."""
[docs] def run(self): self.outputs.bliss_scan_uri = concatenate_bliss_scans( self.inputs.bliss_scan_uris, self.inputs.bliss_scan_uri, virtual_axes=self.inputs.virtual_axes, axes_units=self.inputs.axes_units, )