DMSC Integration Testing

Last updated: May 27, 2026 07:24:18

Test: nexusfiles-scipp|bifrost|can_compute_wavelength|all_detectors

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
> depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , name = 'depends_on'

def __getitem__(self, name: str) -> Any:
> attr = self._attrs[name]
^^^^^^^^^^^^^^^^^
E KeyError: 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/attrs.py:18: KeyError

During handling of the above exception, another exception occurred:

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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:55: in load_analyzers
load_all_components(
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:125: in load_all_components
loaded = component[location.selection]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/base.py:399: in __getitem__
if (chain := parse_depends_on_chain(self, dg['depends_on'])) is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parent =
depends_on = DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0')

def parse_depends_on_chain(
parent: Field | Group, depends_on: DependsOn
) -> TransformationChain | None:
"""Follow a depends_on chain and return the transformations."""
chain = TransformationChain(depends_on.parent, depends_on.value)
# Use raw h5py objects to follow the chain because that avoids constructing
# expensive intermediate snx.Group objects.
file = parent.underlying.file
visited = [depends_on.absolute_path()]
try:
while not depends_on.is_terminal:
transform, base = _locate_depends_on_target(
file, depends_on, parent.definitions
)
depends_on = DependsOn(parent=base, value=transform.attrs['depends_on'])
chain.transformations[transform.name] = transform[()]
if depends_on.absolute_path() in visited:
raise ValueError(
'Circular depends_on chain detected: '
f'{[*visited, depends_on.absolute_path()]}'
)
visited.append(depends_on.absolute_path())
except KeyError as e:
> warnings.warn(
UserWarning(
f'depends_on chain {depends_on} references missing node {e}'.replace(
'\n', ''
)
),
stacklevel=2,
)
E UserWarning: depends_on chain DependsOn(parent='/entry/instrument/channel_1_arm/transformations', value='/entry/instrument/detector_tank_angle/transformations/detector_tank_angle_r0') references missing node 'depends_on'

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/scippnexus/nxtransformations.py:331: UserWarning

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:38:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/scheduler.py: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/bifrost/io/nexus.py:38: in load_instrument_angle
return InstrumentAngle[RunType](_load_experiment_parameter(file_spec, "a4"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/bifrost/io/nexus.py:44: in _load_experiment_parameter
with open_component_group(
/opt/miniforge/lib/python3.12/contextlib.py:137: in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:325: in open_component_group
yield _unique_child_group(parent, nx_class, group_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

group =
nx_class = , name = None

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

children = group[nx_class]
if len(children) != 1:
> raise ValueError(
f"Expected exactly one {nx_class.__name__} group '{group.name}', "
f"got {len(children)}"
)
E ValueError: Expected exactly one NXparameters group '/entry', got 0

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

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:34:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self =
keys = ess.reduce.unwrap.types.WavelengthDetector[ess.reduce.nexus.types.SampleRun]

def get(
self,
keys: type | Iterable[type] | "UnionType" | str, # noqa: UP037 (needed by Sphinx)
*,
scheduler: Scheduler | None = None,
handler: ErrorHandler | None = None,
max_depth: int = 4,
) -> TaskGraph:
"""
Return a TaskGraph for the given keys.

Parameters
----------
keys:
Type to compute the result for.
Can be a single type or an iterable of types.
scheduler:
Optional scheduler to use for computing the result. If not given, a
:py:class:`NaiveScheduler` is used if `dask` is not installed,
otherwise dask's threaded scheduler is used.
handler:
Handler for unsatisfied requirements. If not provided,
:py:class:`HandleAsBuildTimeException` is used, which raises an exception.
During development and debugging it can be helpful to use a handler that
raises an exception only when the graph is computed. This can be achieved
by passing :py:class:`HandleAsComputeTimeException` as the handler.
max_depth:
Maximum depth to show in the dependency tree when reporting errors.
"""
if multi := _is_multiple_keys(keys):
targets = tuple(keys) # type: ignore[arg-type]
else:
targets = (keys,)
try:
graph = to_task_graph(self, targets=targets, handler=handler) # type: ignore[arg-type]
except UnsatisfiedRequirement as e:
missing = e.args[1]
nx_graph = self.underlying_graph
if missing in nx_graph:
paths = _find_paths_to_targets(nx_graph, missing, targets)
info = _format_paths_msg(nx_graph, paths)
else:
nodes = ", ".join(map(key_name, nx_graph.nodes))
info = f'{e} Requested node not in graph. Did you mean one of: {nodes}?'
# Not raising `from e` because that includes noisy traceback of internals,
# which are not relevant to the user.
> raise type(e)(f'{info}\n\n') from None
E sciline.handler.UnsatisfiedRequirement: Missing input node 'LookupTableRelativeErrorThreshold'. Affects requested targets (via providers given in parentheses):
E 1. LookupTableRelativeErrorThreshold → (ess.spectroscopy.indirect.time_of_flight.mask_large_uncertainty_in_lut_detector) → ErrorLimitedLookupTable[NXdetector] → (ess.spectroscopy.indirect.time_of_flight.detector_wavelength_data) → WavelengthDetector[SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:34:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self =
keys = ess.reduce.unwrap.types.WavelengthDetector[ess.reduce.nexus.types.SampleRun]

def get(
self,
keys: type | Iterable[type] | "UnionType" | str, # noqa: UP037 (needed by Sphinx)
*,
scheduler: Scheduler | None = None,
handler: ErrorHandler | None = None,
max_depth: int = 4,
) -> TaskGraph:
"""
Return a TaskGraph for the given keys.

Parameters
----------
keys:
Type to compute the result for.
Can be a single type or an iterable of types.
scheduler:
Optional scheduler to use for computing the result. If not given, a
:py:class:`NaiveScheduler` is used if `dask` is not installed,
otherwise dask's threaded scheduler is used.
handler:
Handler for unsatisfied requirements. If not provided,
:py:class:`HandleAsBuildTimeException` is used, which raises an exception.
During development and debugging it can be helpful to use a handler that
raises an exception only when the graph is computed. This can be achieved
by passing :py:class:`HandleAsComputeTimeException` as the handler.
max_depth:
Maximum depth to show in the dependency tree when reporting errors.
"""
if multi := _is_multiple_keys(keys):
targets = tuple(keys) # type: ignore[arg-type]
else:
targets = (keys,)
try:
graph = to_task_graph(self, targets=targets, handler=handler) # type: ignore[arg-type]
except UnsatisfiedRequirement as e:
missing = e.args[1]
nx_graph = self.underlying_graph
if missing in nx_graph:
paths = _find_paths_to_targets(nx_graph, missing, targets)
info = _format_paths_msg(nx_graph, paths)
else:
nodes = ", ".join(map(key_name, nx_graph.nodes))
info = f'{e} Requested node not in graph. Did you mean one of: {nodes}?'
# Not raising `from e` because that includes noisy traceback of internals,
# which are not relevant to the user.
> raise type(e)(f'{info}\n\n') from None
E sciline.handler.UnsatisfiedRequirement: Missing input node 'LookupTableRelativeErrorThreshold'. Affects requested targets (via providers given in parentheses):
E 1. LookupTableRelativeErrorThreshold → (ess.spectroscopy.indirect.time_of_flight.mask_large_uncertainty_in_lut_detector) → ErrorLimitedLookupTable[NXdetector] → (ess.spectroscopy.indirect.time_of_flight.detector_wavelength_data) → WavelengthDetector[SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:34:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self =
keys = ess.reduce.unwrap.types.WavelengthDetector[ess.reduce.nexus.types.SampleRun]

def get(
self,
keys: type | Iterable[type] | "UnionType" | str, # noqa: UP037 (needed by Sphinx)
*,
scheduler: Scheduler | None = None,
handler: ErrorHandler | None = None,
max_depth: int = 4,
) -> TaskGraph:
"""
Return a TaskGraph for the given keys.

Parameters
----------
keys:
Type to compute the result for.
Can be a single type or an iterable of types.
scheduler:
Optional scheduler to use for computing the result. If not given, a
:py:class:`NaiveScheduler` is used if `dask` is not installed,
otherwise dask's threaded scheduler is used.
handler:
Handler for unsatisfied requirements. If not provided,
:py:class:`HandleAsBuildTimeException` is used, which raises an exception.
During development and debugging it can be helpful to use a handler that
raises an exception only when the graph is computed. This can be achieved
by passing :py:class:`HandleAsComputeTimeException` as the handler.
max_depth:
Maximum depth to show in the dependency tree when reporting errors.
"""
if multi := _is_multiple_keys(keys):
targets = tuple(keys) # type: ignore[arg-type]
else:
targets = (keys,)
try:
graph = to_task_graph(self, targets=targets, handler=handler) # type: ignore[arg-type]
except UnsatisfiedRequirement as e:
missing = e.args[1]
nx_graph = self.underlying_graph
if missing in nx_graph:
paths = _find_paths_to_targets(nx_graph, missing, targets)
info = _format_paths_msg(nx_graph, paths)
else:
nodes = ", ".join(map(key_name, nx_graph.nodes))
info = f'{e} Requested node not in graph. Did you mean one of: {nodes}?'
# Not raising `from e` because that includes noisy traceback of internals,
# which are not relevant to the user.
> raise type(e)(f'{info}\n\n') from None
E sciline.handler.UnsatisfiedRequirement: Missing input node 'LookupTableRelativeErrorThreshold'. Affects requested targets (via providers given in parentheses):
E 1. LookupTableRelativeErrorThreshold → (ess.spectroscopy.indirect.time_of_flight.mask_large_uncertainty_in_lut_detector) → ErrorLimitedLookupTable[NXdetector] → (ess.spectroscopy.indirect.time_of_flight.detector_wavelength_data) → WavelengthDetector[SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement

View job log here


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

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

> result = workflow.compute(WavelengthDetector[SampleRun])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/nexusfiles-scipp/bifrost/bifrost_reduction_test.py:34:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self =
keys = ess.reduce.unwrap.types.WavelengthDetector[ess.reduce.nexus.types.SampleRun]

def get(
self,
keys: type | Iterable[type] | "UnionType" | str, # noqa: UP037 (needed by Sphinx)
*,
scheduler: Scheduler | None = None,
handler: ErrorHandler | None = None,
max_depth: int = 4,
) -> TaskGraph:
"""
Return a TaskGraph for the given keys.

Parameters
----------
keys:
Type to compute the result for.
Can be a single type or an iterable of types.
scheduler:
Optional scheduler to use for computing the result. If not given, a
:py:class:`NaiveScheduler` is used if `dask` is not installed,
otherwise dask's threaded scheduler is used.
handler:
Handler for unsatisfied requirements. If not provided,
:py:class:`HandleAsBuildTimeException` is used, which raises an exception.
During development and debugging it can be helpful to use a handler that
raises an exception only when the graph is computed. This can be achieved
by passing :py:class:`HandleAsComputeTimeException` as the handler.
max_depth:
Maximum depth to show in the dependency tree when reporting errors.
"""
if multi := _is_multiple_keys(keys):
targets = tuple(keys) # type: ignore[arg-type]
else:
targets = (keys,)
try:
graph = to_task_graph(self, targets=targets, handler=handler) # type: ignore[arg-type]
except UnsatisfiedRequirement as e:
missing = e.args[1]
nx_graph = self.underlying_graph
if missing in nx_graph:
paths = _find_paths_to_targets(nx_graph, missing, targets)
info = _format_paths_msg(nx_graph, paths)
else:
nodes = ", ".join(map(key_name, nx_graph.nodes))
info = f'{e} Requested node not in graph. Did you mean one of: {nodes}?'
# Not raising `from e` because that includes noisy traceback of internals,
# which are not relevant to the user.
> raise type(e)(f'{info}\n\n') from None
E sciline.handler.UnsatisfiedRequirement: Missing input node 'LookupTableRelativeErrorThreshold'. Affects requested targets (via providers given in parentheses):
E 1. LookupTableRelativeErrorThreshold → (ess.spectroscopy.indirect.time_of_flight.mask_large_uncertainty_in_lut_detector) → ErrorLimitedLookupTable[NXdetector] → (ess.spectroscopy.indirect.time_of_flight.detector_wavelength_data) → WavelengthDetector[SampleRun]

.tox/nexusfiles-scipp-bifrost/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement