workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00023342.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
monitor =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* position vector3 [m] () (0, 0, -16.8)
Data:
int32
data = DataGroup(sizes={}, keys=[
])
def assemble_monitor_data(
monitor: EmptyMonitor[RunType, MonitorType],
data: NeXusData[MonitorType, RunType],
) -> RawMonitor[RunType, MonitorType]:
"""
Assemble a monitor data array with event data.
Also adds variances to the event data if they are missing.
Parameters
----------
monitor:
Calibrated monitor data array.
data:
Data array with neutron counts.
"""
> da = data.assign_coords(monitor.coords).assign_masks(monitor.masks)
^^^^^^^^^^^^^^^^^^
E AttributeError: 'DataGroup' object has no attribute 'assign_coords'
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:478: AttributeError
Test: nexusfiles-scipp|loki|can_compute_tof|beam_monitor_beam_monitor_m0
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00023202.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
monitor =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* position vector3 [m] () (0, 0, -16.8)
Data:
int32
data = DataGroup(sizes={}, keys=[
])
def assemble_monitor_data(
monitor: EmptyMonitor[RunType, MonitorType],
data: NeXusData[MonitorType, RunType],
) -> RawMonitor[RunType, MonitorType]:
"""
Assemble a monitor data array with event data.
Also adds variances to the event data if they are missing.
Parameters
----------
monitor:
Calibrated monitor data array.
data:
Data array with neutron counts.
"""
> da = data.assign_coords(monitor.coords).assign_masks(monitor.masks)
^^^^^^^^^^^^^^^^^^
E AttributeError: 'DataGroup' object has no attribute 'assign_coords'
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:478: AttributeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00023069.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
monitor =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* position vector3 [m] () (0, 0, -16.8)
Data:
int32
data = DataGroup(sizes={}, keys=[
])
def assemble_monitor_data(
monitor: EmptyMonitor[RunType, MonitorType],
data: NeXusData[MonitorType, RunType],
) -> RawMonitor[RunType, MonitorType]:
"""
Assemble a monitor data array with event data.
Also adds variances to the event data if they are missing.
Parameters
----------
monitor:
Calibrated monitor data array.
data:
Data array with neutron counts.
"""
> da = data.assign_coords(monitor.coords).assign_masks(monitor.masks)
^^^^^^^^^^^^^^^^^^
E AttributeError: 'DataGroup' object has no attribute 'assign_coords'
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:478: AttributeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00022922.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
monitor =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* position vector3 [m] () (0, 0, -16.8)
Data:
int32
data = DataGroup(sizes={}, keys=[
])
def assemble_monitor_data(
monitor: EmptyMonitor[RunType, MonitorType],
data: NeXusData[MonitorType, RunType],
) -> RawMonitor[RunType, MonitorType]:
"""
Assemble a monitor data array with event data.
Also adds variances to the event data if they are missing.
Parameters
----------
monitor:
Calibrated monitor data array.
data:
Data array with neutron counts.
"""
> da = data.assign_coords(monitor.coords).assign_masks(monitor.masks)
^^^^^^^^^^^^^^^^^^
E AttributeError: 'DataGroup' object has no attribute 'assign_coords'
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:478: AttributeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00022774.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
monitor =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* position vector3 [m] () (0, 0, -16.8)
Data:
int32
data = DataGroup(sizes={}, keys=[
])
def assemble_monitor_data(
monitor: EmptyMonitor[RunType, MonitorType],
data: NeXusData[MonitorType, RunType],
) -> RawMonitor[RunType, MonitorType]:
"""
Assemble a monitor data array with event data.
Also adds variances to the event data if they are missing.
Parameters
----------
monitor:
Calibrated monitor data array.
data:
Data array with neutron counts.
"""
> da = data.assign_coords(monitor.coords).assign_masks(monitor.masks)
^^^^^^^^^^^^^^^^^^
E AttributeError: 'DataGroup' object has no attribute 'assign_coords'
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:478: AttributeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00022634.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
monitor =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* position vector3 [m] () (0, 0, -16.8)
Data:
int32
data = DataGroup(sizes={}, keys=[
])
def assemble_monitor_data(
monitor: EmptyMonitor[RunType, MonitorType],
data: NeXusData[MonitorType, RunType],
) -> RawMonitor[RunType, MonitorType]:
"""
Assemble a monitor data array with event data.
Also adds variances to the event data if they are missing.
Parameters
----------
monitor:
Calibrated monitor data array.
data:
Data array with neutron counts.
"""
> da = data.assign_coords(monitor.coords).assign_masks(monitor.masks)
^^^^^^^^^^^^^^^^^^
E AttributeError: 'DataGroup' object has no attribute 'assign_coords'
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:478: AttributeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00022461.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00022321.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00022181.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00022034.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00021894.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00021754.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00021474.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00021334.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00021194.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_loki_999999_00021061.hdf')
monitor_name = 'beam_monitor_m0'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_m{i}" for i in range(5)])
def test_can_compute_tof__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_name: str
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(TofMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_reduction_test.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
keys = ess.reduce.time_of_flight.types.TofMonitor[ess.reduce.nexus.types.SampleRun, ess.reduce.nexus.types.IncidentMonitor]
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.reduce.time_of_flight.eto_to_tof.mask_large_uncertainty_in_lut_monitor) → ErrorLimitedTofLookupTable[IncidentMonitor] → (ess.reduce.time_of_flight.eto_to_tof.monitor_time_of_flight_data) → TofMonitor[SampleRun, IncidentMonitor]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:281: UnsatisfiedRequirement