DMSC Integration Testing

Last updated: September 25, 2026 08:02:48

Test: nexusfiles-scipp|bifrost|can_compute_wavelength|all_detectors

View job log here


ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
In provider ess.reduce.nexus.workflow.load_nexus_component(
    location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
    nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f39611ea660>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00022378.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:242: in load_nexus_component
    nexus.load_component(location, nx_class=nx_class, definitions=definitions)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:99: in load_component
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f396175f710>
nx_class = <class 'scippnexus.nexus_classes.NXmoderator'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
E           In provider ess.reduce.nexus.workflow.load_nexus_component(
E               location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
E               nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
E           ) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
In provider ess.reduce.nexus.workflow.load_nexus_component(
    location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
    nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fb600196c60>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00022248.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:242: in load_nexus_component
    nexus.load_component(location, nx_class=nx_class, definitions=definitions)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:99: in load_component
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fb634c93b90>
nx_class = <class 'scippnexus.nexus_classes.NXmoderator'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
E           In provider ess.reduce.nexus.workflow.load_nexus_component(
E               location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
E               nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
E           ) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
In provider ess.reduce.nexus.workflow.load_nexus_component(
    location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
    nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fc9c4359eb0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00022118.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:242: in load_nexus_component
    nexus.load_component(location, nx_class=nx_class, definitions=definitions)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:99: in load_component
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fc9843b6090>
nx_class = <class 'scippnexus.nexus_classes.NXmoderator'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
E           In provider ess.reduce.nexus.workflow.load_nexus_component(
E               location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
E               nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
E           ) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
In provider ess.reduce.nexus.workflow.load_nexus_component(
    location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
    nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7efee531b6b0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00021978.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:242: in load_nexus_component
    nexus.load_component(location, nx_class=nx_class, definitions=definitions)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:99: in load_component
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7efe942e9370>
nx_class = <class 'scippnexus.nexus_classes.NXmoderator'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
E           In provider ess.reduce.nexus.workflow.load_nexus_component(
E               location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
E               nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
E           ) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
In provider ess.reduce.nexus.workflow.load_nexus_component(
    location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
    nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f64a2118f50>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00021834.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:242: in load_nexus_component
    nexus.load_component(location, nx_class=nx_class, definitions=definitions)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:99: in load_component
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f64981e0c50>
nx_class = <class 'scippnexus.nexus_classes.NXmoderator'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
E           In provider ess.reduce.nexus.workflow.load_nexus_component(
E               location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
E               nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
E           ) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
In provider ess.reduce.nexus.workflow.load_nexus_component(
    location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
    nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f0b9c702db0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00021704.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:242: in load_nexus_component
    nexus.load_component(location, nx_class=nx_class, definitions=definitions)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:99: in load_component
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f0b9ccaab40>
nx_class = <class 'scippnexus.nexus_classes.NXmoderator'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXmoderator group '/entry/instrument', got 0
E           In provider ess.reduce.nexus.workflow.load_nexus_component(
E               location: ess.reduce.nexus.types.NeXusComponentLocationSpec[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun],
E               nx_class: ess.reduce.nexus.types.NeXusClass[scippnexus.nexus_classes.NXsource],
E           ) -> ess.reduce.nexus.types.NeXusComponent[scippnexus.nexus_classes.NXsource, ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.mcstas.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fa4742790d0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00021554.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/mcstas.py:28: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/mcstas.py:34: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fa3f066dd90>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.mcstas.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.mcstas.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f5aa4c88830>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00021414.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/mcstas.py:28: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/mcstas.py:34: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f5a4818b920>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.mcstas.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f40746dccb0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00021274.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f403036af30>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f0779035910>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00021124.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f077a4d5340>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f3709368bc0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00020984.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f37134b5100>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7faf20bd26f0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00020704.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7faf04f93800>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f6ba1ce7320>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00020564.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f6b6049e210>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f5c2dfca6c0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00020418.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f5c083aad20>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fa1e50c7e60>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00020268.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fa1cc122840>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f7aec933290>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00020195.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f7aebc56750>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fed8ebe8f80>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00020195.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fed8b7b7590>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fd077bb7ad0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00020118.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fd050781af0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f5ed99056d0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00019975.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f5eb40eb140>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f00bbd22db0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00019808.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f0098b95100>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f66726bdeb0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00019446.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f66407c6960>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f5fb3d37d10>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00019446.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f5f9178ad20>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fbfe61b99d0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00019376.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fbffa674890>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f0f5d24ffb0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00019230.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f0f688edbe0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f175c515be0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00019099.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f172c05bb90>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fd806a038f0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00018959.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fd7ec522030>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fc447947d70>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00018819.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fc4143a77a0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f7c2749dfa0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00018679.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f7c040ae540>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f03d429d9d0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00018325.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f03dc69d940>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f04bc1bb1d0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00018325.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f04981229f0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fcd81ded550>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00018325.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fcd77313080>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f3c031f0350>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00018255.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f3bb4674080>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_instrument_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f085bb495e0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00018115.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f081c6969c0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_instrument_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.InstrumentAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0
In provider ess.bifrost.io.nexus.load_sample_angle(
    file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f1b78943b60>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00017985.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/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-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
    return self._func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f1b6df7c440>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0
E           In provider ess.bifrost.io.nexus.load_sample_angle(
E               file_spec: ess.reduce.nexus.types.NeXusFileSpec[ess.reduce.nexus.types.SampleRun],
E           ) -> ess.spectroscopy.types.SampleAngle[ess.reduce.nexus.types.SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f940f0cae10>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00017748.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f9404d80650>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f29cdcf1df0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00017660.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f29c6e4f770>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fb5e1d3b3e0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00017550.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fb5cc1b1c70>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f3d2d990590>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00017400.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f3d00535130>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f66cdf0dee0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00017260.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f66cdcbf5f0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f34b8e08890>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00017120.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f34b07be1b0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f62387858b0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00016980.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f6243758b90>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f0c0806c200>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00016850.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f0c081e9910>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f8b64784fe0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00016700.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f8b643126c0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fed183056d0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00016560.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fed18217a70>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f494198c170>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00016420.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f494c2ff7d0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f400ed290a0>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00016280.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7f3fd02e8f80>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7febe4300a70>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00016140.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:37: in load_sample_angle
    return SampleAngle[RunType](_load_experiment_parameter(file_spec, "a3"))
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7febd85d04d0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError

View job log here


ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7fba50273020>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_bifrost_999999_00016000.hdf')

    def test_can_compute_wavelength__all_detectors(
        workflow: sciline.Pipeline, coda_nexus_file_path: Path
    ) -> None:
        workflow[Filename[SampleRun]] = coda_nexus_file_path
        workflow[LookupTableFilename] = lookup_table_simulation()
    
>       result = workflow.compute(WavelengthDetector[SampleRun])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
    return self.get(tp, **kwargs).compute(reporter=reporter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/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-bifrost/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
    return self._dask_get(dsk, list(map(_to_dask_key, keys)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/threaded.py:115: in get
    results = get_async(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:547: in get_async
    raise_exception(exc, tb)
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:351: in reraise
    raise exc
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/local.py:256: in execute_task
    result = task(data)
             ^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
    return self.func(*new_argspec)
           ^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/dask/utils.py:81: in apply
    return func(*args)
           ^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:43: in load_instrument_angle
    return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:49: in _load_experiment_parameter
    with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
    yield _unique_child_group(parent, nx_class, group_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

group = <scippnexus.base.Group object at 0x7fba1801d9a0>
nx_class = <class 'scippnexus.nexus_classes.NXparameters'>, name = None

    def _unique_child_group(
        group: snx.Group, nx_class: type[snx.NXobject], name: str | None
    ) -> snx.Group:
        if name is not None:
            child = group[name]
            if isinstance(child, snx.Field):
                raise ValueError(
                    f"Expected a NeXus group as item '{name}' but got a field."
                )
            if child.nx_class != nx_class:
                raise ValueError(
                    f"The NeXus group '{name}' was expected to be a "
                    f'{nx_class} but is a {child.nx_class}.'
                )
            return child
    
        children = group[nx_class]
        if len(children) != 1:
>           raise ValueError(
                f"Expected exactly one {nx_class.__name__} group '{group.name}', "
                f"got {len(children)}"
            )
E           ValueError: Expected exactly one NXparameters group '/entry', got 0

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:384: ValueError