Test passed, nothing to report
Test: codeshelf|odin|run_notebooks|odin-bragg-edge-reduction
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
sample_wavs = wf.compute(WavelengthDetector[SampleRun])
sample_wavs.bins.concat().hist(wavelength=300).plot()
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mValueError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
#x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:788#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
#x1B[32m 786#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
#x1B[32m 787#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m788#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:617#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
#x1B[32m 613#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
#x1B[32m 614#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
#x1B[32m 615#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
#x1B[32m 616#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
#x1B[32m--> #x1B[39m#x1B[32m617#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 618#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
#x1B[32m 619#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:413#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
#x1B[32m 407#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
#x1B[32m 408#x1B[39m x: Variable | DataArray | Dataset,
#x1B[32m 409#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 410#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
#x1B[32m 411#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
#x1B[32m 412#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
#x1B[32m--> #x1B[39m#x1B[32m413#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 414#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
#x1B[32m 415#x1B[39m }
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
#x1B[32m 385#x1B[39m stop = _upper_bound(coord)
#x1B[32m 386#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
#x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
#x1B[32m 388#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 389#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 390#x1B[39m )
#x1B[32m 391#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
#x1B[32m 392#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
#x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-417/codeshelf/src/odin/notebooks/odin-bragg-edge-reduction.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f106add9d00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-417/test_run_notebooks_odin_bragg_0')
def test_run_notebooks(
notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
):
> run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)
tests/codeshelf/codeshelf_test.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/codeshelf/conftest.py:131: in _run_codeshelf_notebook
ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:1062: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7f1069f36390>
cell = {'cell_type': 'code', 'execution_count': 5, 'id': '7', 'metadata': {'editable': True, 'slideshow': {'slide_type': ''},...e': 'sample_wavs = wf.compute(WavelengthDetector[SampleRun])\n\nsample_wavs.bins.concat().hist(wavelength=300).plot()'}
cell_index = 7
exec_reply = {'header': {'msg_id': '1ee1a539-5836280aa7661641eb864783_1125005_27', 'msg_type': 'execute_reply', 'username': 'userna...4_6', 'msg_type': 'execute_request', 'username': 'username', 'session': 'a72504f8-22fab8bbd7bd1128088b7efc', ...}, ...}
async def _check_raise_for_error(
self, cell: NotebookNode, cell_index: int, exec_reply: dict[str, t.Any] | None
) -> None:
if exec_reply is None:
return None
exec_reply_content = exec_reply["content"]
if exec_reply_content["status"] != "error":
return None
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors
or exec_reply_content.get("ename") in self.allow_error_names
or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(
self.on_cell_error, cell=cell, cell_index=cell_index, execute_reply=exec_reply
)
if not cell_allows_errors:
> raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E
E sample_wavs.bins.concat().hist(wavelength=300).plot()
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mValueError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
E #x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:788#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
E #x1B[32m 786#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
E #x1B[32m 787#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m788#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:617#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
E #x1B[32m 613#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
E #x1B[32m 614#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
E #x1B[32m 615#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
E #x1B[32m 616#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
E #x1B[32m--> #x1B[39m#x1B[32m617#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 618#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
E #x1B[32m 619#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:413#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
E #x1B[32m 407#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
E #x1B[32m 408#x1B[39m x: Variable | DataArray | Dataset,
E #x1B[32m 409#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 410#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
E #x1B[32m 411#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
E #x1B[32m 412#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
E #x1B[32m--> #x1B[39m#x1B[32m413#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 414#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
E #x1B[32m 415#x1B[39m }
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
E #x1B[32m 385#x1B[39m stop = _upper_bound(coord)
E #x1B[32m 386#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
E #x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
E #x1B[32m 388#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 389#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 390#x1B[39m )
E #x1B[32m 391#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
E #x1B[32m 392#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
E
E #x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
sample_wavs = wf.compute(WavelengthDetector[SampleRun])
sample_wavs.bins.concat().hist(wavelength=300).plot()
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mValueError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
#x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:788#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
#x1B[32m 786#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
#x1B[32m 787#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m788#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:617#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
#x1B[32m 613#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
#x1B[32m 614#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
#x1B[32m 615#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
#x1B[32m 616#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
#x1B[32m--> #x1B[39m#x1B[32m617#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 618#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
#x1B[32m 619#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:413#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
#x1B[32m 407#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
#x1B[32m 408#x1B[39m x: Variable | DataArray | Dataset,
#x1B[32m 409#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 410#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
#x1B[32m 411#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
#x1B[32m 412#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
#x1B[32m--> #x1B[39m#x1B[32m413#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 414#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
#x1B[32m 415#x1B[39m }
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
#x1B[32m 385#x1B[39m stop = _upper_bound(coord)
#x1B[32m 386#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
#x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
#x1B[32m 388#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 389#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 390#x1B[39m )
#x1B[32m 391#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
#x1B[32m 392#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
#x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-406/codeshelf/src/odin/notebooks/odin-bragg-edge-reduction.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f64158d1d00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-406/test_run_notebooks_odin_bragg_0')
def test_run_notebooks(
notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
):
> run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)
tests/codeshelf/codeshelf_test.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/codeshelf/conftest.py:128: in _run_codeshelf_notebook
ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:1062: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7f6414cf0650>
cell = {'cell_type': 'code', 'execution_count': 5, 'id': '7', 'metadata': {'editable': True, 'slideshow': {'slide_type': ''},...e': 'sample_wavs = wf.compute(WavelengthDetector[SampleRun])\n\nsample_wavs.bins.concat().hist(wavelength=300).plot()'}
cell_index = 7
exec_reply = {'header': {'msg_id': '6a7697f9-22b983d15741cfb85071a48f_1082240_27', 'msg_type': 'execute_reply', 'username': 'userna...2_6', 'msg_type': 'execute_request', 'username': 'username', 'session': '38742317-e09f5c0ec90e402dca40955a', ...}, ...}
async def _check_raise_for_error(
self, cell: NotebookNode, cell_index: int, exec_reply: dict[str, t.Any] | None
) -> None:
if exec_reply is None:
return None
exec_reply_content = exec_reply["content"]
if exec_reply_content["status"] != "error":
return None
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors
or exec_reply_content.get("ename") in self.allow_error_names
or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(
self.on_cell_error, cell=cell, cell_index=cell_index, execute_reply=exec_reply
)
if not cell_allows_errors:
> raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E
E sample_wavs.bins.concat().hist(wavelength=300).plot()
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mValueError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
E #x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:788#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
E #x1B[32m 786#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
E #x1B[32m 787#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m788#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:617#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
E #x1B[32m 613#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
E #x1B[32m 614#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
E #x1B[32m 615#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
E #x1B[32m 616#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
E #x1B[32m--> #x1B[39m#x1B[32m617#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 618#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
E #x1B[32m 619#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:413#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
E #x1B[32m 407#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
E #x1B[32m 408#x1B[39m x: Variable | DataArray | Dataset,
E #x1B[32m 409#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 410#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
E #x1B[32m 411#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
E #x1B[32m 412#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
E #x1B[32m--> #x1B[39m#x1B[32m413#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 414#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
E #x1B[32m 415#x1B[39m }
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
E #x1B[32m 385#x1B[39m stop = _upper_bound(coord)
E #x1B[32m 386#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
E #x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
E #x1B[32m 388#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 389#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 390#x1B[39m )
E #x1B[32m 391#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
E #x1B[32m 392#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
E
E #x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
sample_wavs = wf.compute(WavelengthDetector[SampleRun])
sample_wavs.bins.concat().hist(wavelength=300).plot()
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mValueError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
#x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:788#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
#x1B[32m 786#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
#x1B[32m 787#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m788#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:617#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
#x1B[32m 613#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
#x1B[32m 614#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
#x1B[32m 615#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
#x1B[32m 616#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
#x1B[32m--> #x1B[39m#x1B[32m617#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 618#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
#x1B[32m 619#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:413#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
#x1B[32m 407#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
#x1B[32m 408#x1B[39m x: Variable | DataArray | Dataset,
#x1B[32m 409#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 410#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
#x1B[32m 411#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
#x1B[32m 412#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
#x1B[32m--> #x1B[39m#x1B[32m413#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 414#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
#x1B[32m 415#x1B[39m }
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
#x1B[32m 385#x1B[39m stop = _upper_bound(coord)
#x1B[32m 386#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
#x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
#x1B[32m 388#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 389#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 390#x1B[39m )
#x1B[32m 391#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
#x1B[32m 392#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
#x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-395/codeshelf/src/odin/notebooks/odin-bragg-edge-reduction.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f4a2e6f9d00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-395/test_run_notebooks_odin_bragg_0')
def test_run_notebooks(
notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
):
> run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)
tests/codeshelf/codeshelf_test.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/codeshelf/conftest.py:128: in _run_codeshelf_notebook
ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:1062: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7f4a2d5c6360>
cell = {'cell_type': 'code', 'execution_count': 5, 'id': '7', 'metadata': {'editable': True, 'slideshow': {'slide_type': ''},...e': 'sample_wavs = wf.compute(WavelengthDetector[SampleRun])\n\nsample_wavs.bins.concat().hist(wavelength=300).plot()'}
cell_index = 7
exec_reply = {'header': {'msg_id': '58983d94-a696c99b8072bca96377145d_1040408_27', 'msg_type': 'execute_reply', 'username': 'userna...5_6', 'msg_type': 'execute_request', 'username': 'username', 'session': '1b0d34e6-e34254f0d8ecf2610aa35599', ...}, ...}
async def _check_raise_for_error(
self, cell: NotebookNode, cell_index: int, exec_reply: dict[str, t.Any] | None
) -> None:
if exec_reply is None:
return None
exec_reply_content = exec_reply["content"]
if exec_reply_content["status"] != "error":
return None
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors
or exec_reply_content.get("ename") in self.allow_error_names
or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(
self.on_cell_error, cell=cell, cell_index=cell_index, execute_reply=exec_reply
)
if not cell_allows_errors:
> raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E
E sample_wavs.bins.concat().hist(wavelength=300).plot()
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mValueError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
E #x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:788#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
E #x1B[32m 786#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
E #x1B[32m 787#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m788#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:617#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
E #x1B[32m 613#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
E #x1B[32m 614#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
E #x1B[32m 615#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
E #x1B[32m 616#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
E #x1B[32m--> #x1B[39m#x1B[32m617#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 618#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
E #x1B[32m 619#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:413#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
E #x1B[32m 407#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
E #x1B[32m 408#x1B[39m x: Variable | DataArray | Dataset,
E #x1B[32m 409#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 410#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
E #x1B[32m 411#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
E #x1B[32m 412#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
E #x1B[32m--> #x1B[39m#x1B[32m413#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 414#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
E #x1B[32m 415#x1B[39m }
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
E #x1B[32m 385#x1B[39m stop = _upper_bound(coord)
E #x1B[32m 386#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
E #x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
E #x1B[32m 388#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 389#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 390#x1B[39m )
E #x1B[32m 391#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
E #x1B[32m 392#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
E
E #x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
sample_wavs = wf.compute(WavelengthDetector[SampleRun])
sample_wavs.bins.concat().hist(wavelength=300).plot()
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mValueError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
#x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
#x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
#x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
#x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
#x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
#x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
#x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
#x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
#x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
#x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
#x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
#x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
#x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
#x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
#x1B[32m 389#x1B[39m }
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
#x1B[32m 359#x1B[39m stop = _upper_bound(coord)
#x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
#x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
#x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 364#x1B[39m )
#x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
#x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
#x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-383/codeshelf/src/odin/notebooks/odin-bragg-edge-reduction.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7fcb8a979d00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-383/test_run_notebooks_odin_bragg_0')
def test_run_notebooks(
notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
):
> run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)
tests/codeshelf/codeshelf_test.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/codeshelf/conftest.py:104: in _run_codeshelf_notebook
ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:1062: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7fcb89e2b380>
cell = {'cell_type': 'code', 'execution_count': 5, 'id': '7', 'metadata': {'editable': True, 'slideshow': {'slide_type': ''},...e': 'sample_wavs = wf.compute(WavelengthDetector[SampleRun])\n\nsample_wavs.bins.concat().hist(wavelength=300).plot()'}
cell_index = 7
exec_reply = {'header': {'msg_id': '2731fb29-aa3d3bb580cbaad443747d0d_931674_31', 'msg_type': 'execute_reply', 'username': 'usernam...7_6', 'msg_type': 'execute_request', 'username': 'username', 'session': '15e081ef-52f26dec769042a73518e8b0', ...}, ...}
async def _check_raise_for_error(
self, cell: NotebookNode, cell_index: int, exec_reply: dict[str, t.Any] | None
) -> None:
if exec_reply is None:
return None
exec_reply_content = exec_reply["content"]
if exec_reply_content["status"] != "error":
return None
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors
or exec_reply_content.get("ename") in self.allow_error_names
or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(
self.on_cell_error, cell=cell, cell_index=cell_index, execute_reply=exec_reply
)
if not cell_allows_errors:
> raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E
E sample_wavs.bins.concat().hist(wavelength=300).plot()
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mValueError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
E #x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
E #x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
E #x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
E #x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
E #x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
E #x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
E #x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
E #x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
E #x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
E #x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
E #x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
E #x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
E #x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
E #x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
E #x1B[32m 389#x1B[39m }
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
E #x1B[32m 359#x1B[39m stop = _upper_bound(coord)
E #x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
E #x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
E #x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 364#x1B[39m )
E #x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
E #x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
E
E #x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
sample_wavs = wf.compute(WavelengthDetector[SampleRun])
sample_wavs.bins.concat().hist(wavelength=300).plot()
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mValueError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
#x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
#x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
#x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
#x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
#x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
#x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
#x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
#x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
#x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
#x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
#x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
#x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
#x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
#x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
#x1B[32m 389#x1B[39m }
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
#x1B[32m 359#x1B[39m stop = _upper_bound(coord)
#x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
#x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
#x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 364#x1B[39m )
#x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
#x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
#x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-372/codeshelf/src/odin/notebooks/odin-bragg-edge-reduction.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7fc8c72ddd00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-372/test_run_notebooks_odin_bragg_0')
def test_run_notebooks(
notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
):
> run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)
tests/codeshelf/codeshelf_test.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/codeshelf/conftest.py:104: in _run_codeshelf_notebook
ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:1062: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7fc8c64396d0>
cell = {'cell_type': 'code', 'execution_count': 5, 'id': '7', 'metadata': {'editable': True, 'slideshow': {'slide_type': ''},...e': 'sample_wavs = wf.compute(WavelengthDetector[SampleRun])\n\nsample_wavs.bins.concat().hist(wavelength=300).plot()'}
cell_index = 7
exec_reply = {'header': {'msg_id': 'c9ecea1d-560554476987656bb7cc35f6_892416_31', 'msg_type': 'execute_reply', 'username': 'usernam...6_6', 'msg_type': 'execute_request', 'username': 'username', 'session': '5af8d9c0-d5900f3c71cb69e406f454e0', ...}, ...}
async def _check_raise_for_error(
self, cell: NotebookNode, cell_index: int, exec_reply: dict[str, t.Any] | None
) -> None:
if exec_reply is None:
return None
exec_reply_content = exec_reply["content"]
if exec_reply_content["status"] != "error":
return None
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors
or exec_reply_content.get("ename") in self.allow_error_names
or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(
self.on_cell_error, cell=cell, cell_index=cell_index, execute_reply=exec_reply
)
if not cell_allows_errors:
> raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E
E sample_wavs.bins.concat().hist(wavelength=300).plot()
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mValueError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
E #x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
E #x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
E #x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
E #x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
E #x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
E #x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
E #x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
E #x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
E #x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
E #x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
E #x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
E #x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
E #x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
E #x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
E #x1B[32m 389#x1B[39m }
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
E #x1B[32m 359#x1B[39m stop = _upper_bound(coord)
E #x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
E #x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
E #x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 364#x1B[39m )
E #x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
E #x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
E
E #x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
sample_wavs = wf.compute(WavelengthDetector[SampleRun])
sample_wavs.bins.concat().hist(wavelength=300).plot()
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mValueError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
#x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
#x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
#x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
#x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
#x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
#x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
#x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
#x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
#x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
#x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
#x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
#x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
#x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
#x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
#x1B[32m 389#x1B[39m }
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
#x1B[32m 359#x1B[39m stop = _upper_bound(coord)
#x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
#x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
#x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 364#x1B[39m )
#x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
#x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
#x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/home/gitlab-runner/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/.pytest_cache/codeshelf/repo/src/odin/notebooks/odin-bragg-edge-reduction.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7ff03e87a2a0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-361/test_run_notebooks_odin_bragg_0')
def test_run_notebooks(
notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
):
> run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)
tests/codeshelf/codeshelf_test.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/codeshelf/conftest.py:144: in _run_codeshelf_notebook
ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:1062: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7ff03e60aa80>
cell = {'cell_type': 'code', 'execution_count': 5, 'id': '7', 'metadata': {'editable': True, 'slideshow': {'slide_type': ''},...e': 'sample_wavs = wf.compute(WavelengthDetector[SampleRun])\n\nsample_wavs.bins.concat().hist(wavelength=300).plot()'}
cell_index = 7
exec_reply = {'header': {'msg_id': 'c7a14f9a-38aff4a7e359d74b312a06ec_847944_31', 'msg_type': 'execute_reply', 'username': 'usernam...5_6', 'msg_type': 'execute_request', 'username': 'username', 'session': '6561fb84-bff79149491de34354f47ab4', ...}, ...}
async def _check_raise_for_error(
self, cell: NotebookNode, cell_index: int, exec_reply: dict[str, t.Any] | None
) -> None:
if exec_reply is None:
return None
exec_reply_content = exec_reply["content"]
if exec_reply_content["status"] != "error":
return None
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors
or exec_reply_content.get("ename") in self.allow_error_names
or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(
self.on_cell_error, cell=cell, cell_index=cell_index, execute_reply=exec_reply
)
if not cell_allows_errors:
> raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E
E sample_wavs.bins.concat().hist(wavelength=300).plot()
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mValueError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
E #x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
E #x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
E #x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
E #x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
E #x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
E #x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
E #x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
E #x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
E #x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
E #x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
E #x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
E #x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
E #x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
E #x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
E #x1B[32m 389#x1B[39m }
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
E #x1B[32m 359#x1B[39m stop = _upper_bound(coord)
E #x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
E #x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
E #x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 364#x1B[39m )
E #x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
E #x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
E
E #x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
sample_wavs = wf.compute(WavelengthDetector[SampleRun])
sample_wavs.bins.concat().hist(wavelength=300).plot()
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mValueError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
#x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
#x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
#x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
#x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
#x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
#x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
#x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
#x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
#x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
#x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
#x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
#x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
#x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
#x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
#x1B[32m 389#x1B[39m }
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
#x1B[32m 359#x1B[39m stop = _upper_bound(coord)
#x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
#x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
#x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 364#x1B[39m )
#x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
#x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
#x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/home/gitlab-runner/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/.pytest_cache/codeshelf/repo/src/odin/notebooks/odin-bragg-edge-reduction.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f06cc1322a0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-355/test_run_notebooks_odin_bragg_0')
def test_run_notebooks(
notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
):
> run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)
tests/codeshelf/codeshelf_test.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/codeshelf/conftest.py:138: in _run_codeshelf_notebook
ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:1062: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7f06cbc49970>
cell = {'cell_type': 'code', 'execution_count': 5, 'id': '7', 'metadata': {'editable': True, 'slideshow': {'slide_type': ''},...e': 'sample_wavs = wf.compute(WavelengthDetector[SampleRun])\n\nsample_wavs.bins.concat().hist(wavelength=300).plot()'}
cell_index = 7
exec_reply = {'header': {'msg_id': '4c3d6d4b-778dfa263b1d98768a5f83b5_808372_31', 'msg_type': 'execute_reply', 'username': 'usernam...9_6', 'msg_type': 'execute_request', 'username': 'username', 'session': 'b1cf7589-2c8b6b9556e899e80633a3c2', ...}, ...}
async def _check_raise_for_error(
self, cell: NotebookNode, cell_index: int, exec_reply: dict[str, t.Any] | None
) -> None:
if exec_reply is None:
return None
exec_reply_content = exec_reply["content"]
if exec_reply_content["status"] != "error":
return None
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors
or exec_reply_content.get("ename") in self.allow_error_names
or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(
self.on_cell_error, cell=cell, cell_index=cell_index, execute_reply=exec_reply
)
if not cell_allows_errors:
> raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E
E sample_wavs.bins.concat().hist(wavelength=300).plot()
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mValueError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
E #x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
E #x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
E #x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
E #x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
E #x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
E #x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
E #x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
E #x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
E #x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
E #x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
E #x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
E #x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
E #x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
E #x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
E #x1B[32m 389#x1B[39m }
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
E #x1B[32m 359#x1B[39m stop = _upper_bound(coord)
E #x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
E #x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
E #x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 364#x1B[39m )
E #x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
E #x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
E
E #x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
sample_wavs = wf.compute(WavelengthDetector[SampleRun])
sample_wavs.bins.concat().hist(wavelength=300).plot()
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mValueError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
#x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
#x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
#x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
#x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
#x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
#x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
#x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
#x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
#x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
#x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
#x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
#x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
#x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
#x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
#x1B[32m 389#x1B[39m }
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
#x1B[32m 359#x1B[39m stop = _upper_bound(coord)
#x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
#x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
#x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 364#x1B[39m )
#x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
#x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
#x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/home/gitlab-runner/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/.pytest_cache/codeshelf/repo/src/odin/notebooks/odin-bragg-edge-reduction.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7ffb53e28220>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-348/test_run_notebooks_odin_bragg_0')
def test_run_notebooks(
notebook: Path, run_codeshelf_notebook: Callable, tmp_path: Path
):
> run_codeshelf_notebook(notebook_path=notebook, run_path=tmp_path)
tests/codeshelf/codeshelf_test.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/codeshelf/conftest.py:138: in _run_codeshelf_notebook
ep.preprocess(nb, {"metadata": {"path": run_path}})
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-odin/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/jupyter_core/utils/__init__.py:165: in wrapped
return loop.run_until_complete(inner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/miniforge/lib/python3.12/asyncio/base_events.py:687: in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:1062: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <nbconvert.preprocessors.execute.ExecutePreprocessor object at 0x7ffb53db5ac0>
cell = {'cell_type': 'code', 'execution_count': 5, 'id': '7', 'metadata': {'editable': True, 'slideshow': {'slide_type': ''},...e': 'sample_wavs = wf.compute(WavelengthDetector[SampleRun])\n\nsample_wavs.bins.concat().hist(wavelength=300).plot()'}
cell_index = 7
exec_reply = {'header': {'msg_id': 'e2602f41-eb0e09f8ae0504170b09b609_768494_31', 'msg_type': 'execute_reply', 'username': 'usernam...5_6', 'msg_type': 'execute_request', 'username': 'username', 'session': '9daed4f9-4970e2bd69e485917b1bc1ef', ...}, ...}
async def _check_raise_for_error(
self, cell: NotebookNode, cell_index: int, exec_reply: dict[str, t.Any] | None
) -> None:
if exec_reply is None:
return None
exec_reply_content = exec_reply["content"]
if exec_reply_content["status"] != "error":
return None
cell_allows_errors = (not self.force_raise_errors) and (
self.allow_errors
or exec_reply_content.get("ename") in self.allow_error_names
or "raises-exception" in cell.metadata.get("tags", [])
)
await run_hook(
self.on_cell_error, cell=cell, cell_index=cell_index, execute_reply=exec_reply
)
if not cell_allows_errors:
> raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)
E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E
E sample_wavs.bins.concat().hist(wavelength=300).plot()
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mValueError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[5]#x1B[39m#x1B[32m, line 3#x1B[39m
E #x1B[32m 1#x1B[39m sample_wavs = wf.compute(WavelengthDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m3#x1B[39m sample_wavs.bins.concat().hist(wavelength=#x1B[32m300#x1B[39m).plot()
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/data_group.py:755#x1B[39m, in #x1B[36mdata_group_overload.<locals>.impl#x1B[39m#x1B[34m(data, *args, **kwargs)#x1B[39m
E #x1B[32m 753#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(data, DataGroup):
E #x1B[32m 754#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m data.apply(impl, *args, **kwargs) #x1B[38;5;66;03m# type: ignore[arg-type]#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m755#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43margs#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:586#x1B[39m, in #x1B[36mhist#x1B[39m#x1B[34m(x, arg_dict, dim, **kwargs)#x1B[39m
E #x1B[32m 582#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, DataGroup):
E #x1B[32m 583#x1B[39m #x1B[38;5;66;03m# Only to make mypy happy because we have `DataGroup` in annotation of `x`#x1B[39;00m
E #x1B[32m 584#x1B[39m #x1B[38;5;66;03m# so that Sphinx shows it.#x1B[39;00m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mTypeError#x1B[39;00m(#x1B[33m"#x1B[39m#x1B[33mInternal error: input should not be a DataGroup#x1B[39m#x1B[33m"#x1B[39m)
E #x1B[32m--> #x1B[39m#x1B[32m586#x1B[39m edges = #x1B[30;43m_make_edges#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg_dict#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 587#x1B[39m erase = _find_replaced_dims(x, dims=edges, dim=dim)
E #x1B[32m 588#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(x, Variable) #x1B[38;5;129;01mand#x1B[39;00m #x1B[38;5;28mlen#x1B[39m(edges) != #x1B[32m1#x1B[39m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:387#x1B[39m, in #x1B[36m_make_edges#x1B[39m#x1B[34m(x, arg_dict, kwargs)#x1B[39m
E #x1B[32m 381#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_make_edges#x1B[39m(
E #x1B[32m 382#x1B[39m x: Variable | DataArray | Dataset,
E #x1B[32m 383#x1B[39m arg_dict: IntoStrDict[SupportsIndex | Variable] | #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 384#x1B[39m kwargs: Mapping[#x1B[38;5;28mstr#x1B[39m, SupportsIndex | Variable],
E #x1B[32m 385#x1B[39m ) -> #x1B[38;5;28mdict#x1B[39m[#x1B[38;5;28mstr#x1B[39m, Variable]:
E #x1B[32m 386#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {
E #x1B[32m--> #x1B[39m#x1B[32m387#x1B[39m name: #x1B[30;43m_parse_coords_arg#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mx#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mname#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43marg#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 388#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, arg #x1B[38;5;129;01min#x1B[39;00m combine_dict_args(arg_dict, kwargs).items()
E #x1B[32m 389#x1B[39m }
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scipp/core/binning.py:361#x1B[39m, in #x1B[36m_parse_coords_arg#x1B[39m#x1B[34m(x, name, arg)#x1B[39m
E #x1B[32m 359#x1B[39m stop = _upper_bound(coord)
E #x1B[32m 360#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start > stop:
E #x1B[32m--> #x1B[39m#x1B[32m361#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mValueError#x1B[39;00m(
E #x1B[32m 362#x1B[39m #x1B[33m'#x1B[39m#x1B[33mEmpty data range, cannot automatically determine bounds. #x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 363#x1B[39m #x1B[33m'#x1B[39m#x1B[33mMust provide concrete bin edges.#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 364#x1B[39m )
E #x1B[32m 365#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(arg, Variable):
E #x1B[32m 366#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m start.dtype == DType.datetime64:
E
E #x1B[31mValueError#x1B[39m: Empty data range, cannot automatically determine bounds. Must provide concrete bin edges.
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError