DMSC Integration Testing

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

Test: nexusfiles-scipp|bifrost|bifrost_read_choppers|

None

None

None

None

None

None

None

None

None

None

None

None

None

None

None

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00008574.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
choppers = workflow.compute(RawChoppers[SampleRun])

assert len(choppers) == 6
for chopper in choppers.values():
assert "position" in chopper
assert "rotation_speed" in chopper
assert "rotation_speed_setpoint" in chopper
assert "slit_edges" in chopper
> assert "delay" in chopper
E AssertionError: assert 'delay' in DataGroup(sizes={'time': None, 'dim_0': 2}, keys=[\n type: Chopper type single,\n position: Variable({}),\n transform: Variable({}),\n depends_on: TransformationChain(parent='/entry/instrument/005_PulseShapingChopper', value='/entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0', transformations=DataGroup(sizes={}, keys=[\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_r: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_t: Transform({}),\n])),\n phase: DataArray({}),\n radius: Variable({}),\n rotation_speed: DataArray({'time': 606}),\n rotation_speed_setpoint: DataArray({'time': 606}),\n slit_angle: Variable({}),\n slit_edges: Variable({'dim_0': 2}),\n slit_height: Variable({}),\n slits: 1,\n top_dead_center: DataArray({'time': 0}),\n transformations: DataGroup(3, {}),\n nexus_component_name: 005_PulseShapingChopper,\n])

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:116: AssertionError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00008434.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
choppers = workflow.compute(RawChoppers[SampleRun])

assert len(choppers) == 6
for chopper in choppers.values():
assert "position" in chopper
assert "rotation_speed" in chopper
assert "rotation_speed_setpoint" in chopper
assert "slit_edges" in chopper
> assert "delay" in chopper
E AssertionError: assert 'delay' in DataGroup(sizes={'time': None, 'dim_0': 2}, keys=[\n type: Chopper type single,\n position: Variable({}),\n transform: Variable({}),\n depends_on: TransformationChain(parent='/entry/instrument/005_PulseShapingChopper', value='/entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0', transformations=DataGroup(sizes={}, keys=[\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_r: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_t: Transform({}),\n])),\n phase: DataArray({}),\n radius: Variable({}),\n rotation_speed: DataArray({'time': 675}),\n rotation_speed_setpoint: DataArray({'time': 675}),\n slit_angle: Variable({}),\n slit_edges: Variable({'dim_0': 2}),\n slit_height: Variable({}),\n slits: 1,\n top_dead_center: DataArray({'time': 0}),\n transformations: DataGroup(3, {}),\n nexus_component_name: 005_PulseShapingChopper,\n])

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:116: AssertionError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00008294.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
choppers = workflow.compute(RawChoppers[SampleRun])

assert len(choppers) == 6
for chopper in choppers.values():
assert "position" in chopper
assert "rotation_speed" in chopper
assert "rotation_speed_setpoint" in chopper
assert "slit_edges" in chopper
> assert "delay" in chopper
E AssertionError: assert 'delay' in DataGroup(sizes={'time': None, 'dim_0': 2}, keys=[\n type: Chopper type single,\n position: Variable({}),\n transform: Variable({}),\n depends_on: TransformationChain(parent='/entry/instrument/005_PulseShapingChopper', value='/entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0', transformations=DataGroup(sizes={}, keys=[\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_r: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_t: Transform({}),\n])),\n phase: DataArray({}),\n radius: Variable({}),\n rotation_speed: DataArray({'time': 780}),\n rotation_speed_setpoint: DataArray({'time': 780}),\n slit_angle: Variable({}),\n slit_edges: Variable({'dim_0': 2}),\n slit_height: Variable({}),\n slits: 1,\n top_dead_center: DataArray({'time': 0}),\n transformations: DataGroup(3, {}),\n nexus_component_name: 005_PulseShapingChopper,\n])

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:116: AssertionError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00008168.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
choppers = workflow.compute(RawChoppers[SampleRun])

assert len(choppers) == 6
for chopper in choppers.values():
assert "position" in chopper
assert "rotation_speed" in chopper
assert "rotation_speed_setpoint" in chopper
assert "slit_edges" in chopper
> assert "delay" in chopper
E AssertionError: assert 'delay' in DataGroup(sizes={'time': 0, 'dim_0': 2}, keys=[\n type: Chopper type single,\n position: Variable({}),\n transform: Variable({}),\n depends_on: TransformationChain(parent='/entry/instrument/005_PulseShapingChopper', value='/entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0', transformations=DataGroup(sizes={}, keys=[\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_r: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_t: Transform({}),\n])),\n phase: DataArray({'time': 0}),\n radius: Variable({}),\n rotation_speed: DataArray({'time': 0}),\n rotation_speed_setpoint: DataArray({'time': 0}),\n slit_angle: Variable({}),\n slit_edges: Variable({'dim_0': 2}),\n slit_height: Variable({}),\n slits: 1,\n top_dead_center: DataArray({'time': 0}),\n transformations: DataGroup(3, {}),\n nexus_component_name: 005_PulseShapingChopper,\n])

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:116: AssertionError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00008021.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
choppers = workflow.compute(RawChoppers[SampleRun])

assert len(choppers) == 6
for chopper in choppers.values():
assert "position" in chopper
assert "rotation_speed" in chopper
assert "rotation_speed_setpoint" in chopper
assert "slit_edges" in chopper
> assert "delay" in chopper
E AssertionError: assert 'delay' in DataGroup(sizes={'time': 0, 'dim_0': 2}, keys=[\n type: Chopper type single,\n position: Variable({}),\n transform: Variable({}),\n depends_on: TransformationChain(parent='/entry/instrument/005_PulseShapingChopper', value='/entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0', transformations=DataGroup(sizes={}, keys=[\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_r0: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_r: Transform({}),\n /entry/instrument/005_PulseShapingChopper/transformations/PulseShapingChopper_t0_t: Transform({}),\n])),\n phase: DataArray({'time': 0}),\n radius: Variable({}),\n rotation_speed: DataArray({'time': 0}),\n rotation_speed_setpoint: DataArray({'time': 0}),\n slit_angle: Variable({}),\n slit_edges: Variable({'dim_0': 2}),\n slit_height: Variable({}),\n slits: 1,\n top_dead_center: DataArray({'time': 0}),\n transformations: DataGroup(3, {}),\n nexus_component_name: 005_PulseShapingChopper,\n])

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:116: AssertionError

None

None

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00007608.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00007475.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00007335.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00007195.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00007062.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00006929.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00006782.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00006649.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00006509.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00006362.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00006222.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00006082.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/bifrost_999999_00005935.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00005791.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00005659.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00005519.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00005379.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:494: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:495: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00005246.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:489: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:490: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00005106.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:489: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:490: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00004959.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:489: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:490: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00004679.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:528: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:529: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00004539.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:528: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:529: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00004392.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:528: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:529: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00004252.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:528: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:529: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00004105.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:528: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:529: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00003965.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:528: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:529: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError

workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/bifrost_999999_00003893.hdf')

def test_bifrost_read_choppers(
workflow: sciline.Pipeline, coda_nexus_file_path: Path
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
> choppers = workflow.compute(RawChoppers[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_load_nexus_test.py:108:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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:64: in get
results[t] = reporter.call_provider_with_reporting(graph[t], results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/reporter.py:398: in call_provider_with_reporting
return provider.call(values)
^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/_provider.py:144: in call
return self._func(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:528: in parse_disk_choppers
choppers.apply(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:268: in apply
return DataGroup({key: func(v, *args, **kwargs) for key, v in self.items()})
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:529: in
lambda chopper: extract_chopper_from_nexus(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:37: in extract_chopper_from_nexus
**{key: _parse_field(key, val) for key, val in chopper.items()},
^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:44: in _parse_field
return _parse_tdc(value)
^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippneutron/chopper/nexus_chopper.py:53: in _parse_tdc
return tdc["time"]
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = DataGroup(sizes={'time': 0}, keys=[
value: DataArray({'time': 0}),
alarm: DataArray({'time': 0}),
connection_status: DataArray({'time': 0}),
])
name = 'time'

def __getitem__(self, name: Any) -> Any:
"""Return item of given name or index all items.

When ``name`` is a string, return the item of the given name. Otherwise, this
returns a new DataGroup, with items created by indexing the items in this
DataGroup. This may perform, e.g., Scipp's positional indexing, label-based
indexing, or advanced indexing on items that are scipp.Variable or
scipp.DataArray.

Label-based indexing is only possible when all items have a coordinate for the
indexed dimension.

Advanced indexing comprises integer-array indexing and boolean-variable
indexing. Unlike positional indexing, integer-array indexing works even when
the item shapes are inconsistent for the indexed dimensions, provided that all
items contain the maximal index in the integer array. Boolean-variable indexing
is only possible when the shape of all items is compatible with the boolean
variable.
"""
from .bins import Bins

if isinstance(name, str):
> return self._items[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'time'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scipp/core/data_group.py:164: KeyError