DMSC Integration Testing

Last updated: December 16, 2025 22:41:25

Test: nexusfiles-scipp|odin|odin_read_monitor_data|beam_monitor_2

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00010672.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00010532.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00010406.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00010266.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00010133.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00009993.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00009853.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00009713.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00009573.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00009426.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/odin_999999_00009286.hdf')
monitor_name = 'beam_monitor_2'
check_monitor_data =

@pytest.mark.parametrize(
"monitor_name", ["beam_monitor_1", "beam_monitor_2", "beam_monitor_3"]
)
def test_odin_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[FrameMonitor0]] = monitor_name

> monitor = workflow.compute(RawMonitor[SampleRun, FrameMonitor0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:161:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:457: in get_calibrated_monitor
+ offset.to(unit=transform_unit),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/operations.py:314: in to
return to_unit(var, unit, copy=copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/unary.py:69: in to_unit
return _call_cpp_func(_cpp.to_unit, x=x, unit=unit, copy=copy) # type: ignore[return-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func =
args = ()
kwargs = {'copy': True, 'unit': Unit(1), 'x': () vector3 [m] (0, 0, 0)}
out = None

def call_func(
func: Callable[_P, _R],
*args: _P.args,
**kwargs: _P.kwargs,
) -> _R | DataGroup[Any]:
out = kwargs.pop('out', None)
if any(isinstance(x, DataGroup) for x in itertools.chain(args, kwargs.values())):
if out is not None:
raise ValueError(
"`out` argument is not supported for DataGroup operations."
)
return data_group_nary(func, *args, **kwargs)
if out is None:
> return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
E scipp._scipp.core.UnitError: Conversion from `m` to `dimensionless` is not valid.

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scipp/core/_cpp_wrapper_util.py:27: UnitError

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None