Source code for blissoda.demo.processors.exafs

from typing import Any
from typing import Dict
from typing import Optional

from ...bliss_globals import setup_globals
from ...exafs import scan_utils
from ...exafs.processor import ExafsProcessor
from ...resources import resource_filename


[docs] class DemoExafsProcessor(ExafsProcessor): def __init__( self, config: Optional[Dict[str, Any]] = None, defaults: Optional[Dict[str, Any]] = None, **deprecated_defaults: Dict[str, Any], ) -> None: defaults = self._merge_defaults(deprecated_defaults, defaults) defaults.setdefault("queue", "celery") defaults.setdefault("workflow", resource_filename("exafs", "exafs.ows")) defaults.setdefault("_scan_type", "any") counters = defaults.setdefault("_counters", dict()) if self._HAS_BLISS: energy_unit = setup_globals.energy.unit or "eV" counters.setdefault( "any", { "mu_name": "mu", "energy_name": "energy", "energy_unit": energy_unit, }, ) super().__init__(config=config, defaults=defaults) def _scan_type_from_scan(self, scan: scan_utils.ScanType) -> Optional[str]: return "any" def _multi_xas_scan(self, scan: scan_utils.ScanType) -> bool: # Single scan are also considered "multi-scan" so the # data is split (eventhough there is nothing to split, # we will only have one scan) and saved in PROCESSED_DATA. return True def _multi_xas_subscan_size(self, scan: scan_utils.ScanType) -> int: # The workflow will look an monotonicity of the energy # counter to figure this out. return 0