DMSC Integration Testing

Last updated: September 25, 2026 08:04:50

Test: nexusfiles-scipp|odin|odin_read_detector_data|timepix3

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f8152d601a0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022385.hdf')
check_detector_events = <function _check_detector_events at 0x7f81a63c7e20>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f81522877a0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fa126403b90>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022305.hdf')
check_detector_events = <function _check_detector_events at 0x7fa17bddbe20>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7fa1264c24b0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f7a9317d550>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022255.hdf')
check_detector_events = <function _check_detector_events at 0x7f7ae71bbe20>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f7a93026ab0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fd918c0bda0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022205.hdf')
check_detector_events = <function _check_detector_events at 0x7fd96cdb7e20>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7fd918b7f6e0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fbe3f0c72f0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022205.hdf')
check_detector_events = <function _check_detector_events at 0x7fbe947b7e20>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7fbe3efad1f0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fd238f52210>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022195.hdf')
check_detector_events = <function _check_detector_events at 0x7fd28dbdfe20>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7fd2384b12b0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f004af146e0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022115.hdf')
check_detector_events = <function _check_detector_events at 0x7f0064059580>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f0061c86990>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f6996ab2fc0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022065.hdf')
check_detector_events = <function _check_detector_events at 0x7f6998f3d4e0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f699697fb00>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f67103ce600>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022065.hdf')
check_detector_events = <function _check_detector_events at 0x7f672082d4e0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f671df930e0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f0b55f27c50>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022065.hdf')
check_detector_events = <function _check_detector_events at 0x7f0b583554e0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f0b55e86420>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f6e131cfbc0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022045.hdf')
check_detector_events = <function _check_detector_events at 0x7f6e14f79440>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f6e08343e00>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fc9e414cfb0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022035.hdf')
check_detector_events = <function _check_detector_events at 0x7fc9e9cb11c0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7fc9e7cc2a20>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fcb71d7a390>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022035.hdf')
check_detector_events = <function _check_detector_events at 0x7fcb7405d1c0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7fcb71dc9910>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f278b822090>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022025.hdf')
check_detector_events = <function _check_detector_events at 0x7f278dee11c0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f278b832ea0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7ffa4bb15220>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022025.hdf')
check_detector_events = <function _check_detector_events at 0x7ffa4e05d080>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7ffa4bb56c90>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f28cffeddc0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022025.hdf')
check_detector_events = <function _check_detector_events at 0x7f28d1a311c0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f28cfb62450>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f7bb7e8a630>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021975.hdf')
check_detector_events = <function _check_detector_events at 0x7f7bba40d120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f7bb7cfea80>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f8fdaaa8320>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021911.hdf')
check_detector_events = <function _check_detector_events at 0x7f902ebd7b00>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:56: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f8fda9967b0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


KeyError: 'event_mode_detectors'
In provider ess.reduce.nexus.workflow.load_nexus_data(
    location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f112ababbc0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021911.hdf')
check_detector_events = <function _check_detector_events at 0x7f112de41120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
>       result = workflow.compute(NeXusData[NXdetector, SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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:140: 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:115: in get
    results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:279: in load_nexus_data
    nexus.load_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:560: in load_data
    component = instrument[component_name]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:367: in __getitem__
    return self[grp][sel_path.relative_to(grp).as_posix()]
           ^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <scippnexus.base.Group object at 0x7f112ab1c4d0>
sel = 'event_mode_detectors'

    def __getitem__(self, sel):
        """
        Get a child group or child dataset, a selection of child groups, or load and
        return the current group.
    
        Three cases are supported:
    
        - String name: The child group or child dataset of that name is returned.
        - Class such as ``NXdata`` or ``NXlog``: A dict containing all direct children
          with a matching ``NX_class`` attribute are returned. Also accepts a tuple of
          classes. ``Field`` selects all child fields, i.e., all datasets but not
          groups.
        - Scipp-style index: Load the specified slice of the current group, returning
          a :class:`scipp.DataArray` or :class:`scipp.DataGroup`.
    
        Parameters
        ----------
        sel:
            Child name, class, or index.
    
        Returns
        -------
        :
            Field, group, dict of fields, or loaded data.
        """
        if isinstance(sel, str):
            # We cannot get the child directly from the HDF5 group, since we need to
            # create the parent group, to ensure that fields get the correct properties
            # such as sizes and dtype.
            if '/' in sel:
                sel_path = PurePosixPath(sel)
                if sel_path.is_absolute():
                    return self.file[sel_path.relative_to('/').as_posix()]
                # If the path is a single name, we can directly access the child
                elif len(sel_path.parts) == 1:
                    return self[sel_path.as_posix()]
                else:
                    grp = sel_path.parts[0]
                    return self[grp][sel_path.relative_to(grp).as_posix()]
            elif sel == '..':
                return self.parent
>           child = self._children[sel]
                    ^^^^^^^^^^^^^^^^^^^
E           KeyError: 'event_mode_detectors'
E           In provider ess.reduce.nexus.workflow.load_nexus_data(
E               location: ess.reduce.nexus.types.NeXusDataLocationSpec[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun],
E           ) -> ess.reduce.nexus.types.NeXusData[scippnexus.nxdetector.NXdetector, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/scippnexus/base.py:370: KeyError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f368c4ed5b0>.size
 +            where <scipp.core.bins.Bins object at 0x7f368c4ed5b0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f368c4efb00>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021901.hdf')
check_detector_events = <function _check_detector_events at 0x7f368e739120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f368c4ed5b0>.size
E        +            where <scipp.core.bins.Bins object at 0x7f368c4ed5b0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f3c618bb620>.size
 +            where <scipp.core.bins.Bins object at 0x7f3c618bb620> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f3c6178b890>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021701.hdf')
check_detector_events = <function _check_detector_events at 0x7f3c6376cfe0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f3c618bb620>.size
E        +            where <scipp.core.bins.Bins object at 0x7f3c618bb620> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f6643a21460>.size
 +            where <scipp.core.bins.Bins object at 0x7f6643a21460> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f6643c09bb0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021561.hdf')
check_detector_events = <function _check_detector_events at 0x7f6645c1cfe0>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f6643a21460>.size
E        +            where <scipp.core.bins.Bins object at 0x7f6643a21460> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f0591a4c740>.size
 +            where <scipp.core.bins.Bins object at 0x7f0591a4c740> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f05919d7bc0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021511.hdf')
check_detector_events = <function _check_detector_events at 0x7f0593c41120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f0591a4c740>.size
E        +            where <scipp.core.bins.Bins object at 0x7f0591a4c740> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f43658869c0>.size
 +            where <scipp.core.bins.Bins object at 0x7f43658869c0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f4365887140>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021411.hdf')
check_detector_events = <function _check_detector_events at 0x7f43673a5120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f43658869c0>.size
E        +            where <scipp.core.bins.Bins object at 0x7f43658869c0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f081302f860>.size
 +            where <scipp.core.bins.Bins object at 0x7f081302f860> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f0812fd4950>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021271.hdf')
check_detector_events = <function _check_detector_events at 0x7f0815a11120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f081302f860>.size
E        +            where <scipp.core.bins.Bins object at 0x7f081302f860> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f31c4825a00>.size
 +            where <scipp.core.bins.Bins object at 0x7f31c4825a00> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f31c481bbc0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00021131.hdf')
check_detector_events = <function _check_detector_events at 0x7f31c6899120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f31c4825a00>.size
E        +            where <scipp.core.bins.Bins object at 0x7f31c4825a00> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f69fde6ba40>.size
 +            where <scipp.core.bins.Bins object at 0x7f69fde6ba40> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f69fdedd070>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020911.hdf')
check_detector_events = <function _check_detector_events at 0x7f69ffe19120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f69fde6ba40>.size
E        +            where <scipp.core.bins.Bins object at 0x7f69fde6ba40> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7efcdf5fac00>.size
 +            where <scipp.core.bins.Bins object at 0x7efcdf5fac00> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7efcdf187bc0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020911.hdf')
check_detector_events = <function _check_detector_events at 0x7efce14d9120>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7efcdf5fac00>.size
E        +            where <scipp.core.bins.Bins object at 0x7efcdf5fac00> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f0f3341f3b0>.size
 +            where <scipp.core.bins.Bins object at 0x7f0f3341f3b0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f0f3341f7a0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020561.hdf')
check_detector_events = <function _check_detector_events at 0x7f0f3584b380>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f0f3341f3b0>.size
E        +            where <scipp.core.bins.Bins object at 0x7f0f3341f3b0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f83a1e7c080>.size
 +            where <scipp.core.bins.Bins object at 0x7f83a1e7c080> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f83a1e7d730>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020415.hdf')
check_detector_events = <function _check_detector_events at 0x7f83a411b240>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f83a1e7c080>.size
E        +            where <scipp.core.bins.Bins object at 0x7f83a1e7c080> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f4fc32919a0>.size
 +            where <scipp.core.bins.Bins object at 0x7f4fc32919a0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f4fc32f5520>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020275.hdf')
check_detector_events = <function _check_detector_events at 0x7f4fc3d29260>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f4fc32919a0>.size
E        +            where <scipp.core.bins.Bins object at 0x7f4fc32919a0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7fd194713b90>.size
 +            where <scipp.core.bins.Bins object at 0x7fd194713b90> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fd194534e60>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020202.hdf')
check_detector_events = <function _check_detector_events at 0x7fd197fc2980>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7fd194713b90>.size
E        +            where <scipp.core.bins.Bins object at 0x7fd194713b90> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7fecda4a47d0>.size
 +            where <scipp.core.bins.Bins object at 0x7fecda4a47d0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fecda38b9e0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020202.hdf')
check_detector_events = <function _check_detector_events at 0x7fecdde02980>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7fecda4a47d0>.size
E        +            where <scipp.core.bins.Bins object at 0x7fecda4a47d0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f70fa9875f0>.size
 +            where <scipp.core.bins.Bins object at 0x7f70fa9875f0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f70fabd60f0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020202.hdf')
check_detector_events = <function _check_detector_events at 0x7f70fb61d260>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f70fa9875f0>.size
E        +            where <scipp.core.bins.Bins object at 0x7f70fa9875f0> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f987a0a9820>.size
 +            where <scipp.core.bins.Bins object at 0x7f987a0a9820> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f9879e5fef0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020202.hdf')
check_detector_events = <function _check_detector_events at 0x7f987ab2d260>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f987a0a9820>.size
E        +            where <scipp.core.bins.Bins object at 0x7f987a0a9820> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError

View job log here


AssertionError: assert np.int64(0) > 0
 +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
 +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
 +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
 +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
 +          where size = <scipp.core.bins.Bins object at 0x7f720215a270>.size
 +            where <scipp.core.bins.Bins object at 0x7f720215a270> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f72023317c0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00020202.hdf')
check_detector_events = <function _check_detector_events at 0x7f7202e21260>

    def test_odin_read_detector_data__timepix3(
        workflow: sciline.Pipeline,
        coda_nexus_file_path: Path,
        check_detector_events: Callable,
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[NeXusDetectorName] = "event_mode_detectors/timepix3"
    
        result = workflow.compute(NeXusData[NXdetector, SampleRun])
    
>       check_detector_events(result)

tests/nexusfiles-scipp/odin/odin_load_nexus_test.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

da = <scipp.DataArray>
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero         datetime64            ... dims=(event: 0),
          data=float32[counts],
          coords={'event_time_offset':int32[ns], 'event_id':int32})



    def _check_detector_events(da: sc.DataArray) -> None:
        assert "event_time_offset" in da.bins.coords
        assert "event_id" in da.bins.coords
        assert "event_time_zero" in da.coords
>       assert da.bins.size().sum().value > 0
E       AssertionError: assert np.int64(0) > 0
E        +  where np.int64(0) = <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n.value
E        +    where <scipp.DataArray>\nDimensions: Sizes[]\nData:\n                              int64        <no unit>  ()  0\n\n = sum()
E        +      where sum = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n.sum
E        +        where <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                              int64        <no unit>  (event_time_zero)  []\n\n = size()
E        +          where size = <scipp.core.bins.Bins object at 0x7f720215a270>.size
E        +            where <scipp.core.bins.Bins object at 0x7f720215a270> = <scipp.DataArray>\nDimensions: Sizes[event_time_zero:0, ]\nCoordinates:\n* event_time_zero         datetime64             [ns]  (event_time_zero)  []\nData:\n                          DataArrayView        <no unit>  (event_time_zero)  binned data: dim='event', content=DataArray(\n          dims=(event: 0),\n          data=float32[counts],\n          coords={'event_time_offset':int32[ns], 'event_id':int32})\n\n.bins

.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:25: AssertionError