Test passed, nothing to report
Test: codeshelf|odin|run_notebooks|flight_path_calibration
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
masked = wf.compute(CorrectedDetector[SampleRun])
masked.hist().plot(aspect='equal', ignore_size=True)
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
#x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
#x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
#x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
#x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 174#x1B[39m **kwargs: Any,
#x1B[32m 175#x1B[39m ) -> Any:
#x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
#x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
#x1B[32m 178#x1B[39m
#x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
#x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
#x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
#x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#x1B[39m]
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
#x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
#x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#x1B[39m):
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
#x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
#x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #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[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
#x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
#x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
#x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
#x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
#x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
#x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
#x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 255#x1B[39m task, data = loads(task_info)
#x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
#x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#x1B[39m))
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
#x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
#x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
#x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
#x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
#x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
#x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#x1B[39m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
#x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
#x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
#x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
#x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 348#x1B[39m )
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
#x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
#x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#x1B[39m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
#x1B[32m 684#x1B[39m val = val.squeeze()
#x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
#x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
#x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 688#x1B[39m )
#x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
#x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
In provider ess.reduce.nexus.workflow.to_disk_choppers(
choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.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/flight_path_calibration.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f106add9d00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-417/test_run_notebooks_flight_path0')
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 0x7f106a2019a0>
cell = {'cell_type': 'code', 'execution_count': 9, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T14... 'source': "masked = wf.compute(CorrectedDetector[SampleRun])\n\nmasked.hist().plot(aspect='equal', ignore_size=True)"}
cell_index = 13
exec_reply = {'header': {'msg_id': '72b1f668-402dfa97891c3bc9484d410c_1123748_93', 'msg_type': 'execute_reply', 'username': 'userna..._10', 'msg_type': 'execute_request', 'username': 'username', 'session': '6d2e06c7-0cbb14e9c87c149ce91e3d66', ...}, ...}
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 masked = wf.compute(CorrectedDetector[SampleRun])
E
E masked.hist().plot(aspect='equal', ignore_size=True)
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
E #x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
E #x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
E #x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
E #x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 174#x1B[39m **kwargs: Any,
E #x1B[32m 175#x1B[39m ) -> Any:
E #x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
E #x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
E #x1B[32m 178#x1B[39m
E #x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
E #x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
E #x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
E #x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#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/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
E #x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
E #x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#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/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
E #x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
E #x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #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 #x1B[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
E #x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
E #x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
E #x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
E #x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
E #x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
E #x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
E #x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 255#x1B[39m task, data = loads(task_info)
E #x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
E #x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#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/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
E #x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
E #x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
E #x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
E #x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
E #x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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 #x1B[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#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/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
E #x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
E #x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
E #x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
E #x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 348#x1B[39m )
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
E #x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
E #x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#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/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
E #x1B[32m 684#x1B[39m val = val.squeeze()
E #x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
E #x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
E #x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 688#x1B[39m )
E #x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
E
E #x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
E In provider ess.reduce.nexus.workflow.to_disk_choppers(
E choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
E ) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
masked = wf.compute(CorrectedDetector[SampleRun])
masked.hist().plot(aspect='equal', ignore_size=True)
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
#x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
#x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
#x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
#x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 174#x1B[39m **kwargs: Any,
#x1B[32m 175#x1B[39m ) -> Any:
#x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
#x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
#x1B[32m 178#x1B[39m
#x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
#x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
#x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
#x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#x1B[39m]
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
#x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
#x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#x1B[39m):
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
#x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
#x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #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[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
#x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
#x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
#x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
#x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
#x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
#x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
#x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 255#x1B[39m task, data = loads(task_info)
#x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
#x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#x1B[39m))
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
#x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
#x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
#x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
#x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
#x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
#x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#x1B[39m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
#x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
#x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
#x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
#x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 348#x1B[39m )
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
#x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
#x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#x1B[39m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
#x1B[32m 684#x1B[39m val = val.squeeze()
#x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
#x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
#x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 688#x1B[39m )
#x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
#x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
In provider ess.reduce.nexus.workflow.to_disk_choppers(
choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.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/flight_path_calibration.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f64158d1d00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-406/test_run_notebooks_flight_path0')
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 0x7f6414c4e9f0>
cell = {'cell_type': 'code', 'execution_count': 9, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T14... 'source': "masked = wf.compute(CorrectedDetector[SampleRun])\n\nmasked.hist().plot(aspect='equal', ignore_size=True)"}
cell_index = 13
exec_reply = {'header': {'msg_id': '5a1ed1db-9b6abe35ca49fe2ae2c314a7_1081104_93', 'msg_type': 'execute_reply', 'username': 'userna..._10', 'msg_type': 'execute_request', 'username': 'username', 'session': '4d4a73bc-3c9a0c2e6dc6223fbd0b5af3', ...}, ...}
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 masked = wf.compute(CorrectedDetector[SampleRun])
E
E masked.hist().plot(aspect='equal', ignore_size=True)
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
E #x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
E #x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
E #x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
E #x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 174#x1B[39m **kwargs: Any,
E #x1B[32m 175#x1B[39m ) -> Any:
E #x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
E #x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
E #x1B[32m 178#x1B[39m
E #x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
E #x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
E #x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
E #x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#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/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
E #x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
E #x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#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/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
E #x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
E #x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #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 #x1B[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
E #x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
E #x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
E #x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
E #x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
E #x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
E #x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
E #x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 255#x1B[39m task, data = loads(task_info)
E #x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
E #x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#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/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
E #x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
E #x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
E #x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
E #x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
E #x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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 #x1B[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#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/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
E #x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
E #x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/3/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
E #x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
E #x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 348#x1B[39m )
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
E #x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
E #x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#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/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
E #x1B[32m 684#x1B[39m val = val.squeeze()
E #x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
E #x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
E #x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 688#x1B[39m )
E #x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
E
E #x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
E In provider ess.reduce.nexus.workflow.to_disk_choppers(
E choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
E ) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
masked = wf.compute(CorrectedDetector[SampleRun])
masked.hist().plot(aspect='equal', ignore_size=True)
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
#x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
#x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
#x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
#x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 174#x1B[39m **kwargs: Any,
#x1B[32m 175#x1B[39m ) -> Any:
#x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
#x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
#x1B[32m 178#x1B[39m
#x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
#x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
#x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
#x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#x1B[39m]
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
#x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
#x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#x1B[39m):
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
#x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
#x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #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[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
#x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
#x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
#x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
#x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
#x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
#x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
#x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 255#x1B[39m task, data = loads(task_info)
#x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
#x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#x1B[39m))
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
#x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
#x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
#x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
#x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
#x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
#x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#x1B[39m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
#x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
#x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
#x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
#x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 348#x1B[39m )
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
#x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
#x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#x1B[39m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
#x1B[32m 684#x1B[39m val = val.squeeze()
#x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
#x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
#x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 688#x1B[39m )
#x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
#x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
In provider ess.reduce.nexus.workflow.to_disk_choppers(
choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.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/flight_path_calibration.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f4a2e6f9d00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-395/test_run_notebooks_flight_path0')
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 0x7f4a2dafcfe0>
cell = {'cell_type': 'code', 'execution_count': 9, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T13... 'source': "masked = wf.compute(CorrectedDetector[SampleRun])\n\nmasked.hist().plot(aspect='equal', ignore_size=True)"}
cell_index = 13
exec_reply = {'header': {'msg_id': 'f7f210d1-367b9b63984a69dd025cac5d_1039250_93', 'msg_type': 'execute_reply', 'username': 'userna..._10', 'msg_type': 'execute_request', 'username': 'username', 'session': '836f0c49-c4e24ea963ebb1d2a15a63e9', ...}, ...}
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 masked = wf.compute(CorrectedDetector[SampleRun])
E
E masked.hist().plot(aspect='equal', ignore_size=True)
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
E #x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
E #x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
E #x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
E #x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 174#x1B[39m **kwargs: Any,
E #x1B[32m 175#x1B[39m ) -> Any:
E #x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
E #x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
E #x1B[32m 178#x1B[39m
E #x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
E #x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
E #x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
E #x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#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/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
E #x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
E #x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#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/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
E #x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
E #x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #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 #x1B[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
E #x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
E #x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
E #x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
E #x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
E #x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
E #x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
E #x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 255#x1B[39m task, data = loads(task_info)
E #x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
E #x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#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/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
E #x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
E #x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
E #x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
E #x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
E #x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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 #x1B[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#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/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
E #x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
E #x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
E #x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
E #x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 348#x1B[39m )
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
E #x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
E #x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#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/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
E #x1B[32m 684#x1B[39m val = val.squeeze()
E #x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
E #x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
E #x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 688#x1B[39m )
E #x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
E
E #x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
E In provider ess.reduce.nexus.workflow.to_disk_choppers(
E choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
E ) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
masked = wf.compute(CorrectedDetector[SampleRun])
masked.hist().plot(aspect='equal', ignore_size=True)
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
#x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
#x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
#x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
#x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 174#x1B[39m **kwargs: Any,
#x1B[32m 175#x1B[39m ) -> Any:
#x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
#x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
#x1B[32m 178#x1B[39m
#x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
#x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
#x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
#x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#x1B[39m]
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
#x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
#x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#x1B[39m):
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
#x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
#x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #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[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
#x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
#x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
#x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
#x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
#x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
#x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
#x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 255#x1B[39m task, data = loads(task_info)
#x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
#x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#x1B[39m))
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
#x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
#x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
#x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
#x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
#x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
#x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#x1B[39m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
#x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
#x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
#x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
#x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 348#x1B[39m )
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
#x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
#x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#x1B[39m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
#x1B[32m 684#x1B[39m val = val.squeeze()
#x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
#x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
#x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 688#x1B[39m )
#x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
#x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
In provider ess.reduce.nexus.workflow.to_disk_choppers(
choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.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/flight_path_calibration.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7fcb8a979d00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-383/test_run_notebooks_flight_path0')
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 0x7fcb89d45a90>
cell = {'cell_type': 'code', 'execution_count': 9, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T09... 'source': "masked = wf.compute(CorrectedDetector[SampleRun])\n\nmasked.hist().plot(aspect='equal', ignore_size=True)"}
cell_index = 13
exec_reply = {'header': {'msg_id': '3d1ebd51-378caf639b2d90fa57a82162_930815_97', 'msg_type': 'execute_reply', 'username': 'usernam..._10', 'msg_type': 'execute_request', 'username': 'username', 'session': '8e67202d-1901d32653b5a8902173b3de', ...}, ...}
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 masked = wf.compute(CorrectedDetector[SampleRun])
E
E masked.hist().plot(aspect='equal', ignore_size=True)
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
E #x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
E #x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
E #x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
E #x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 174#x1B[39m **kwargs: Any,
E #x1B[32m 175#x1B[39m ) -> Any:
E #x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
E #x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
E #x1B[32m 178#x1B[39m
E #x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
E #x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
E #x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
E #x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#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/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
E #x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
E #x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#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/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
E #x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
E #x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #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 #x1B[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
E #x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
E #x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
E #x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
E #x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
E #x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
E #x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
E #x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 255#x1B[39m task, data = loads(task_info)
E #x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
E #x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#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/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
E #x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
E #x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
E #x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
E #x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
E #x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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 #x1B[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#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/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
E #x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
E #x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
E #x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
E #x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 348#x1B[39m )
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
E #x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
E #x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#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/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
E #x1B[32m 684#x1B[39m val = val.squeeze()
E #x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
E #x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
E #x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 688#x1B[39m )
E #x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
E
E #x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
E In provider ess.reduce.nexus.workflow.to_disk_choppers(
E choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
E ) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
masked = wf.compute(CorrectedDetector[SampleRun])
masked.hist().plot(aspect='equal', ignore_size=True)
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
#x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
#x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
#x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
#x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 174#x1B[39m **kwargs: Any,
#x1B[32m 175#x1B[39m ) -> Any:
#x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
#x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
#x1B[32m 178#x1B[39m
#x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
#x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
#x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
#x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#x1B[39m]
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
#x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
#x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#x1B[39m):
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
#x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
#x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #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[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
#x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
#x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
#x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
#x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
#x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
#x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
#x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 255#x1B[39m task, data = loads(task_info)
#x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
#x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#x1B[39m))
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
#x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
#x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
#x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
#x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
#x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
#x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#x1B[39m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
#x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
#x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
#x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
#x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 348#x1B[39m )
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
#x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
#x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#x1B[39m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
#x1B[32m 684#x1B[39m val = val.squeeze()
#x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
#x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
#x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 688#x1B[39m )
#x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
#x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
In provider ess.reduce.nexus.workflow.to_disk_choppers(
choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.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/flight_path_calibration.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7fc8c72ddd00>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-372/test_run_notebooks_flight_path0')
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 0x7fc8c66f97f0>
cell = {'cell_type': 'code', 'execution_count': 9, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T09... 'source': "masked = wf.compute(CorrectedDetector[SampleRun])\n\nmasked.hist().plot(aspect='equal', ignore_size=True)"}
cell_index = 13
exec_reply = {'header': {'msg_id': 'aa99c806-dd4c4bdaba14ff2201fd2610_891531_97', 'msg_type': 'execute_reply', 'username': 'usernam..._10', 'msg_type': 'execute_request', 'username': 'username', 'session': 'ade3efef-6c3591d7639f27b481ff373b', ...}, ...}
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 masked = wf.compute(CorrectedDetector[SampleRun])
E
E masked.hist().plot(aspect='equal', ignore_size=True)
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
E #x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
E #x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
E #x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
E #x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 174#x1B[39m **kwargs: Any,
E #x1B[32m 175#x1B[39m ) -> Any:
E #x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
E #x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
E #x1B[32m 178#x1B[39m
E #x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
E #x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
E #x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
E #x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#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/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
E #x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
E #x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#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/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
E #x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
E #x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #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 #x1B[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
E #x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
E #x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
E #x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
E #x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
E #x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
E #x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
E #x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 255#x1B[39m task, data = loads(task_info)
E #x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
E #x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#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/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
E #x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
E #x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
E #x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
E #x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
E #x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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 #x1B[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#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/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
E #x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
E #x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/6/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
E #x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
E #x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 348#x1B[39m )
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
E #x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
E #x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#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/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
E #x1B[32m 684#x1B[39m val = val.squeeze()
E #x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
E #x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
E #x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 688#x1B[39m )
E #x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
E
E #x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
E In provider ess.reduce.nexus.workflow.to_disk_choppers(
E choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
E ) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
masked = wf.compute(CorrectedDetector[SampleRun])
masked.hist().plot(aspect='equal', ignore_size=True)
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
#x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
#x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
#x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
#x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 174#x1B[39m **kwargs: Any,
#x1B[32m 175#x1B[39m ) -> Any:
#x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
#x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
#x1B[32m 178#x1B[39m
#x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
#x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
#x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
#x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#x1B[39m]
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
#x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
#x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#x1B[39m):
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
#x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
#x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #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[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
#x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
#x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
#x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
#x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
#x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
#x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
#x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 255#x1B[39m task, data = loads(task_info)
#x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
#x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#x1B[39m))
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
#x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
#x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
#x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
#x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
#x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
#x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#x1B[39m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
#x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
#x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
#x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
#x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 348#x1B[39m )
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
#x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
#x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#x1B[39m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
#x1B[32m 684#x1B[39m val = val.squeeze()
#x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
#x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
#x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 688#x1B[39m )
#x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
#x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
In provider ess.reduce.nexus.workflow.to_disk_choppers(
choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.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/flight_path_calibration.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7ff03e87a2a0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-361/test_run_notebooks_flight_path0')
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 0x7ff03e8ba3f0>
cell = {'cell_type': 'code', 'execution_count': 9, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07... 'source': "masked = wf.compute(CorrectedDetector[SampleRun])\n\nmasked.hist().plot(aspect='equal', ignore_size=True)"}
cell_index = 13
exec_reply = {'header': {'msg_id': '6c85b6ea-a10f897cca71b78864273ba1_847261_97', 'msg_type': 'execute_reply', 'username': 'usernam..._10', 'msg_type': 'execute_request', 'username': 'username', 'session': '8b54a29c-b70392fe0e844d97f9bf9b90', ...}, ...}
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 masked = wf.compute(CorrectedDetector[SampleRun])
E
E masked.hist().plot(aspect='equal', ignore_size=True)
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
E #x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
E #x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
E #x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
E #x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 174#x1B[39m **kwargs: Any,
E #x1B[32m 175#x1B[39m ) -> Any:
E #x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
E #x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
E #x1B[32m 178#x1B[39m
E #x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
E #x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
E #x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
E #x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#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/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
E #x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
E #x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#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/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
E #x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
E #x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #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 #x1B[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
E #x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
E #x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
E #x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
E #x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
E #x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
E #x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
E #x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 255#x1B[39m task, data = loads(task_info)
E #x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
E #x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#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/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
E #x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
E #x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
E #x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
E #x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
E #x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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 #x1B[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#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/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
E #x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
E #x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
E #x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
E #x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 348#x1B[39m )
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
E #x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
E #x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#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/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
E #x1B[32m 684#x1B[39m val = val.squeeze()
E #x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
E #x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
E #x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 688#x1B[39m )
E #x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
E
E #x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
E In provider ess.reduce.nexus.workflow.to_disk_choppers(
E choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
E ) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
masked = wf.compute(CorrectedDetector[SampleRun])
masked.hist().plot(aspect='equal', ignore_size=True)
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
#x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
#x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
#x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
#x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 174#x1B[39m **kwargs: Any,
#x1B[32m 175#x1B[39m ) -> Any:
#x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
#x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
#x1B[32m 178#x1B[39m
#x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
#x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
#x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
#x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#x1B[39m]
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
#x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
#x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#x1B[39m):
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
#x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
#x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #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[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
#x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
#x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
#x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
#x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
#x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
#x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
#x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 255#x1B[39m task, data = loads(task_info)
#x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
#x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#x1B[39m))
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
#x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
#x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
#x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
#x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
#x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
#x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#x1B[39m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
#x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
#x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
#x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
#x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 348#x1B[39m )
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
#x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
#x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#x1B[39m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
#x1B[32m 684#x1B[39m val = val.squeeze()
#x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
#x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
#x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 688#x1B[39m )
#x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
#x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
In provider ess.reduce.nexus.workflow.to_disk_choppers(
choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.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/flight_path_calibration.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f06cc1322a0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-355/test_run_notebooks_flight_path0')
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 0x7f06cbc43a10>
cell = {'cell_type': 'code', 'execution_count': 9, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07... 'source': "masked = wf.compute(CorrectedDetector[SampleRun])\n\nmasked.hist().plot(aspect='equal', ignore_size=True)"}
cell_index = 13
exec_reply = {'header': {'msg_id': '74dad220-1a7907c8af8c255579bcff46_807658_97', 'msg_type': 'execute_reply', 'username': 'usernam..._10', 'msg_type': 'execute_request', 'username': 'username', 'session': 'a5e399fe-e84ca417063e0981ee1fc1bd', ...}, ...}
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 masked = wf.compute(CorrectedDetector[SampleRun])
E
E masked.hist().plot(aspect='equal', ignore_size=True)
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
E #x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
E #x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
E #x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
E #x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 174#x1B[39m **kwargs: Any,
E #x1B[32m 175#x1B[39m ) -> Any:
E #x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
E #x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
E #x1B[32m 178#x1B[39m
E #x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
E #x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
E #x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
E #x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#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/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
E #x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
E #x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#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/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
E #x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
E #x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #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 #x1B[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
E #x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
E #x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
E #x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
E #x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
E #x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
E #x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
E #x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 255#x1B[39m task, data = loads(task_info)
E #x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
E #x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#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/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
E #x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
E #x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
E #x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
E #x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
E #x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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 #x1B[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#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/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
E #x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
E #x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/5/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
E #x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
E #x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 348#x1B[39m )
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
E #x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
E #x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#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/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
E #x1B[32m 684#x1B[39m val = val.squeeze()
E #x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
E #x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
E #x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 688#x1B[39m )
E #x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
E
E #x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
E In provider ess.reduce.nexus.workflow.to_disk_choppers(
E choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
E ) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
masked = wf.compute(CorrectedDetector[SampleRun])
masked.hist().plot(aspect='equal', ignore_size=True)
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
#x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
#x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
#x1B[32m 2#x1B[39m
#x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
#x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
#x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
#x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
#x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 174#x1B[39m **kwargs: Any,
#x1B[32m 175#x1B[39m ) -> Any:
#x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
#x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
#x1B[32m 178#x1B[39m
#x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
#x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
#x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
#x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#x1B[39m]
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
#x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
#x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#x1B[39m):
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
#x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
#x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #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[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
#x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
#x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
#x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
#x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
#x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
#x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
#x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 255#x1B[39m task, data = loads(task_info)
#x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
#x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#x1B[39m))
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
#x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
#x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
#x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
#x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
#x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
#x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#x1B[39m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
#x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
#x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
#x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
#x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
#x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
#x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 348#x1B[39m )
#x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
#x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
#x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#x1B[39m)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
#x1B[32m 684#x1B[39m val = val.squeeze()
#x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
#x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
#x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 688#x1B[39m )
#x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
#x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
In provider ess.reduce.nexus.workflow.to_disk_choppers(
choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.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/flight_path_calibration.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7ffb53e28220>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-348/test_run_notebooks_flight_path0')
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 0x7ffb53e58260>
cell = {'cell_type': 'code', 'execution_count': 9, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07... 'source': "masked = wf.compute(CorrectedDetector[SampleRun])\n\nmasked.hist().plot(aspect='equal', ignore_size=True)"}
cell_index = 13
exec_reply = {'header': {'msg_id': '4b4f2b38-6d574e123e2c87da9fddd9f8_766560_97', 'msg_type': 'execute_reply', 'username': 'usernam..._10', 'msg_type': 'execute_request', 'username': 'username', 'session': 'bcca13f8-731c17b387e2449f591b6c71', ...}, ...}
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 masked = wf.compute(CorrectedDetector[SampleRun])
E
E masked.hist().plot(aspect='equal', ignore_size=True)
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mDimensionError#x1B[39m Traceback (most recent call last)
E #x1B[36mCell#x1B[39m#x1B[36m #x1B[39m#x1B[32mIn[9]#x1B[39m#x1B[32m, line 1#x1B[39m
E #x1B[32m----> #x1B[39m#x1B[32m1#x1B[39m masked = wf.compute(CorrectedDetector[SampleRun])
E #x1B[32m 2#x1B[39m
E #x1B[32m 3#x1B[39m masked.hist().plot(aspect=#x1B[33m'equal'#x1B[39m, ignore_size=#x1B[38;5;28;01mTrue#x1B[39;00m)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/pipeline.py:191#x1B[39m, in #x1B[36mPipeline.compute#x1B[39m#x1B[34m(self, tp, reporter, **kwargs)#x1B[39m
E #x1B[32m 170#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mcompute#x1B[39m(
E #x1B[32m 171#x1B[39m #x1B[38;5;28mself#x1B[39m,
E #x1B[32m 172#x1B[39m tp: #x1B[38;5;28mtype#x1B[39m | Iterable[#x1B[38;5;28mtype#x1B[39m] | #x1B[33m"#x1B[39m#x1B[33mUnionType#x1B[39m#x1B[33m"#x1B[39m, #x1B[38;5;66;03m# noqa: UP037 (needed by Sphinx)#x1B[39;00m
E #x1B[32m 173#x1B[39m reporter: Reporter | #x1B[38;5;28;01mNone#x1B[39;00m = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 174#x1B[39m **kwargs: Any,
E #x1B[32m 175#x1B[39m ) -> Any:
E #x1B[32m 176#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""#x1B[39;00m
E #x1B[32m 177#x1B[39m #x1B[33;03m Compute result for the given keys.#x1B[39;00m
E #x1B[32m 178#x1B[39m
E #x1B[32m (...)#x1B[39m#x1B[32m 189#x1B[39m #x1B[33;03m Keyword arguments passed to the ``.get()`` method.#x1B[39;00m
E #x1B[32m 190#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m191#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mtp#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[30;43m.#x1B[39;49m#x1B[30;43mcompute#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#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/sciline/task_graph.py:122#x1B[39m, in #x1B[36mTaskGraph.compute#x1B[39m#x1B[34m(self, targets, reporter)#x1B[39m
E #x1B[32m 120#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mdict#x1B[39m(#x1B[38;5;28mzip#x1B[39m(targets, results, strict=#x1B[38;5;28;01mTrue#x1B[39;00m))
E #x1B[32m 121#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m122#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_scheduler#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mget#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_graph#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m[#x1B[39;49m#x1B[30;43mtargets#x1B[39;49m#x1B[30;43m]#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mreporter#x1B[39;49m#x1B[30;43m)#x1B[39;49m[#x1B[32m0#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/sciline/scheduler.py:140#x1B[39m, in #x1B[36mDaskScheduler.get#x1B[39m#x1B[34m(self, graph, keys, reporter)#x1B[39m
E #x1B[32m 138#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m reporter.run_computation(graph.values()):
E #x1B[32m 139#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m140#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_dask_get#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mlist#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mmap#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m_to_dask_key#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 141#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mRuntimeError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 142#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;28mstr#x1B[39m(e).startswith(#x1B[33m"#x1B[39m#x1B[33mCycle detected#x1B[39m#x1B[33m"#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/dask/threaded.py:115#x1B[39m, in #x1B[36mget#x1B[39m#x1B[34m(dsk, keys, cache, num_workers, pool, **kwargs)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;28;01melif#x1B[39;00m #x1B[38;5;28misinstance#x1B[39m(pool, multiprocessing.pool.Pool):
E #x1B[32m 113#x1B[39m pool = MultiprocessingPoolExecutor(pool)
E #x1B[32m--> #x1B[39m#x1B[32m115#x1B[39m results = #x1B[30;43mget_async#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 116#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43msubmit#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 117#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpool#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_max_workers#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 118#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mdsk#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 119#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mkeys#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 120#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mcache#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 121#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mget_id#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m_thread_get_id#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mpack_exception#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #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 #x1B[32m 124#x1B[39m #x1B[30;43m#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[38;5;66;03m# Cleanup pools associated to dead threads#x1B[39;00m
E #x1B[32m 127#x1B[39m #x1B[38;5;28;01mwith#x1B[39;00m pools_lock:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:547#x1B[39m, in #x1B[36mget_async#x1B[39m#x1B[34m(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)#x1B[39m
E #x1B[32m 545#x1B[39m task(data) #x1B[38;5;66;03m# Re-execute locally#x1B[39;00m
E #x1B[32m 546#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m547#x1B[39m #x1B[30;43mraise_exception#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mexc#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mtb#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 548#x1B[39m res, worker_id = loads(res_info)
E #x1B[32m 549#x1B[39m state[#x1B[33m"#x1B[39m#x1B[33mcache#x1B[39m#x1B[33m"#x1B[39m][key] = res
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:351#x1B[39m, in #x1B[36mreraise#x1B[39m#x1B[34m(exc, tb)#x1B[39m
E #x1B[32m 349#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m exc.__traceback__ #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m tb:
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc.with_traceback(tb)
E #x1B[32m--> #x1B[39m#x1B[32m351#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m exc
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/dask/local.py:256#x1B[39m, in #x1B[36mexecute_task#x1B[39m#x1B[34m(key, task_info, dumps, loads, get_id, pack_exception)#x1B[39m
E #x1B[32m 254#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 255#x1B[39m task, data = loads(task_info)
E #x1B[32m--> #x1B[39m#x1B[32m256#x1B[39m result = #x1B[30;43mtask#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mdata#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 257#x1B[39m #x1B[38;5;28mid#x1B[39m = get_id()
E #x1B[32m 258#x1B[39m result = dumps((result, #x1B[38;5;28mid#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/dask/_task_spec.py:768#x1B[39m, in #x1B[36mTask.__call__#x1B[39m#x1B[34m(self, values)#x1B[39m
E #x1B[32m 766#x1B[39m kwargs = {k: _eval(kw) #x1B[38;5;28;01mfor#x1B[39;00m k, kw #x1B[38;5;129;01min#x1B[39;00m #x1B[38;5;28mself#x1B[39m.kwargs.items()}
E #x1B[32m 767#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[38;5;28mself#x1B[39m.func(*new_argspec, **kwargs)
E #x1B[32m--> #x1B[39m#x1B[32m768#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfunc#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mnew_argspec#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/dask/utils.py:81#x1B[39m, in #x1B[36mapply#x1B[39m#x1B[34m(func, args, kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m func(*args, **kwargs)
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mfunc#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
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/sciline/_provider.py:145#x1B[39m, in #x1B[36mProvider.__call__#x1B[39m#x1B[34m(self, *args, **kwargs)#x1B[39m
E #x1B[32m 143#x1B[39m #x1B[38;5;250m#x1B[39m#x1B[33;03m"""Call the provider."""#x1B[39;00m
E #x1B[32m 144#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m--> #x1B[39m#x1B[32m145#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_func#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 #x1B[32m 146#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mException#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 147#x1B[39m name = #x1B[33mf#x1B[39m#x1B[33m"#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.module#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m.#x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mself#x1B[39m.location.name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m"#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/ess/reduce/nexus/workflow.py:588#x1B[39m, in #x1B[36mto_disk_choppers#x1B[39m#x1B[34m(choppers)#x1B[39m
E #x1B[32m 585#x1B[39m #x1B[38;5;28;01mcontinue#x1B[39;00m
E #x1B[32m 587#x1B[39m #x1B[38;5;66;03m# If there is no beam_position, we set it to 0 by default.#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m588#x1B[39m disk_choppers[key] = #x1B[30;43mDiskChopper#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mfrom_nexus#x1B[39;49m#x1B[30;43m(#x1B[39;49m
E #x1B[32m 589#x1B[39m #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;43m{#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mbeam_position#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m:#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43msc#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mscalar#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m0.0#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43munit#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mdeg#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;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mch#x1B[39;49m#x1B[30;43m}#x1B[39;49m
E #x1B[32m 590#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 592#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m DiskChoppers[RunType](disk_choppers)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/1/dmsc-nightly/dmsc-nightly/.tox/codeshelf-odin/lib/python3.12/site-packages/scippneutron/chopper/disk_chopper.py:352#x1B[39m, in #x1B[36mDiskChopper.from_nexus#x1B[39m#x1B[34m(cls, chopper)#x1B[39m
E #x1B[32m 345#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m #x1B[38;5;167;01mNotImplementedError#x1B[39;00m(
E #x1B[32m 346#x1B[39m #x1B[33m'#x1B[39m#x1B[33mClass DiskChopper only supports single choppers,#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 347#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot chopper type #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mtyp#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 348#x1B[39m )
E #x1B[32m 350#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[33m"#x1B[39m#x1B[33mrotation_speed_setpoint#x1B[39m#x1B[33m"#x1B[39m #x1B[38;5;129;01min#x1B[39;00m chopper:
E #x1B[32m 351#x1B[39m #x1B[38;5;66;03m# `rotation_speed_setpoint` is preferred if available (ESS files)#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m352#x1B[39m frequency = #x1B[30;43m_get_0d_variable#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mchopper#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43mrotation_speed_setpoint#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 353#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E #x1B[32m 354#x1B[39m #x1B[38;5;66;03m# Fallback to `rotation_speed` (standard NeXus)#x1B[39;00m
E #x1B[32m 355#x1B[39m frequency = _get_0d_variable(chopper, #x1B[33m'#x1B[39m#x1B[33mrotation_speed#x1B[39m#x1B[33m'#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/scippneutron/chopper/disk_chopper.py:686#x1B[39m, in #x1B[36m_get_0d_variable#x1B[39m#x1B[34m(dg, name)#x1B[39m
E #x1B[32m 684#x1B[39m val = val.squeeze()
E #x1B[32m 685#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m val.ndim != #x1B[32m0#x1B[39m:
E #x1B[32m--> #x1B[39m#x1B[32m686#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m sc.DimensionError(
E #x1B[32m 687#x1B[39m msg.format(name=name, got=#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mgot a #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mval.ndim#x1B[38;5;132;01m}#x1B[39;00m#x1B[33md variable#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 688#x1B[39m )
E #x1B[32m 689#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m val
E
E #x1B[31mDimensionError#x1B[39m: Chopper field 'rotation_speed_setpoint' must be a scalar variable, got a 1d variable. See the chopper user-guide for more information: https://scipp.github.io/scippneutron/user-guide/chopper/processing-nexus-choppers.html
E In provider ess.reduce.nexus.workflow.to_disk_choppers(
E choppers: ess.reduce.nexus.types.RawChoppers[ess.imaging.types.SampleRun],
E ) -> ess.reduce.nexus.types.DiskChoppers[ess.imaging.types.SampleRun]
.tox/codeshelf-odin/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError