Test passed, nothing to report
Test: codeshelf|loki|run_notebooks|loki-reduction-ess
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
wf = loki.LokiWorkflow()
# Set detector bank name: in this case there is only one bank
wf[NeXusDetectorName] = "loki_detector_0"
# Wavelength and Q binning parameters
wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
# Other parameters
wf[CorrectForGravity] = True
wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
wf[ReturnEvents] = False
wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
wf[DirectBeam] = None
wf[DetectorMasks] = {}
wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
# Use a small dummy file for testing.
# TODO: We currently use the same file for all runs; this should be updated
# once we have files from an actual run.
wf[Filename[SampleRun]] = loki.data.loki_coda_file()
wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
# Visualize the workflow
wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
#x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
#x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
#x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
#x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
#x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
#x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
#x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
#x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
#x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
The above exception was the direct cause of the following exception:
#x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
#x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
#x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
#x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
#x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
#x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
#x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#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-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
#x1B[32m 64#x1B[39m
#x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
#x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
#x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
#x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
#x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
#x1B[32m 182#x1B[39m stacklevel=stacklevel,
#x1B[32m 183#x1B[39m category=category)
#x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
#x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
#x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
#x1B[32m 207#x1B[39m renderer=renderer,
#x1B[32m 208#x1B[39m formatter=formatter,
#x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
#x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
#x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
#x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
#x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
#x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-380/codeshelf/src/loki/notebooks/loki-reduction-ess.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7fddc98280e0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-380/test_run_notebooks_loki_reduct0')
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-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-loki/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-loki/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 0x7fddc921f7d0>
cell = {'cell_type': 'code', 'execution_count': 2, 'id': '3', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T09:...a.loki_coda_file()\n\n# Visualize the workflow\nwf.visualize(IntensityQ[SampleRun], graph_attr={\'rankdir\': \'LR\'})'}
cell_index = 3
exec_reply = {'header': {'msg_id': '3583b2ee-f5dee86f442908b1316e1887_932063_20', 'msg_type': 'execute_reply', 'username': 'usernam...3_3', 'msg_type': 'execute_request', 'username': 'username', 'session': 'd17efea9-8d7dbd3d0fa3504cfa060a35', ...}, ...}
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 wf = loki.LokiWorkflow()
E
E # Set detector bank name: in this case there is only one bank
E wf[NeXusDetectorName] = "loki_detector_0"
E
E # Wavelength and Q binning parameters
E wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
E wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
E
E # Other parameters
E wf[CorrectForGravity] = True
E wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
E wf[ReturnEvents] = False
E wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
E wf[DirectBeam] = None
E wf[DetectorMasks] = {}
E wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
E
E # Use a small dummy file for testing.
E # TODO: We currently use the same file for all runs; this should be updated
E # once we have files from an actual run.
E wf[Filename[SampleRun]] = loki.data.loki_coda_file()
E wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
E wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
E
E # Visualize the workflow
E wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
E #x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
E #x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
E #x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
E #x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
E #x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
E #x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
E #x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
E #x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
E #x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
E
E The above exception was the direct cause of the following exception:
E
E #x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
E #x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
E #x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
E #x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
E #x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
E #x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
E #x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#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-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
E #x1B[32m 64#x1B[39m
E #x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
E #x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
E #x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
E #x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
E #x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
E #x1B[32m 182#x1B[39m stacklevel=stacklevel,
E #x1B[32m 183#x1B[39m category=category)
E #x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
E #x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
E #x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
E #x1B[32m 207#x1B[39m renderer=renderer,
E #x1B[32m 208#x1B[39m formatter=formatter,
E #x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
E #x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
E #x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
E #x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
E #x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
E
E #x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
wf = loki.LokiWorkflow()
# Set detector bank name: in this case there is only one bank
wf[NeXusDetectorName] = "loki_detector_0"
# Wavelength and Q binning parameters
wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
# Other parameters
wf[CorrectForGravity] = True
wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
wf[ReturnEvents] = False
wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
wf[DirectBeam] = None
wf[DetectorMasks] = {}
wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
# Use a small dummy file for testing.
# TODO: We currently use the same file for all runs; this should be updated
# once we have files from an actual run.
wf[Filename[SampleRun]] = loki.data.loki_coda_file()
wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
# Visualize the workflow
wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
#x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
#x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
#x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
#x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
#x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
#x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
#x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
#x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
#x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
The above exception was the direct cause of the following exception:
#x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
#x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
#x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
#x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
#x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
#x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
#x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
#x1B[32m 64#x1B[39m
#x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
#x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
#x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
#x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
#x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
#x1B[32m 182#x1B[39m stacklevel=stacklevel,
#x1B[32m 183#x1B[39m category=category)
#x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
#x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
#x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
#x1B[32m 207#x1B[39m renderer=renderer,
#x1B[32m 208#x1B[39m formatter=formatter,
#x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
#x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
#x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
#x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
#x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
#x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-369/codeshelf/src/loki/notebooks/loki-reduction-ess.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f7bf3ea00e0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-369/test_run_notebooks_loki_reduct0')
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-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-loki/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-loki/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 0x7f7bf3873620>
cell = {'cell_type': 'code', 'execution_count': 2, 'id': '3', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T09:...a.loki_coda_file()\n\n# Visualize the workflow\nwf.visualize(IntensityQ[SampleRun], graph_attr={\'rankdir\': \'LR\'})'}
cell_index = 3
exec_reply = {'header': {'msg_id': 'da1c3640-27326522506a4cfb2d8cf669_892860_20', 'msg_type': 'execute_reply', 'username': 'usernam...5_3', 'msg_type': 'execute_request', 'username': 'username', 'session': '7c04767a-9994b842876da2d6cb5bd819', ...}, ...}
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 wf = loki.LokiWorkflow()
E
E # Set detector bank name: in this case there is only one bank
E wf[NeXusDetectorName] = "loki_detector_0"
E
E # Wavelength and Q binning parameters
E wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
E wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
E
E # Other parameters
E wf[CorrectForGravity] = True
E wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
E wf[ReturnEvents] = False
E wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
E wf[DirectBeam] = None
E wf[DetectorMasks] = {}
E wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
E
E # Use a small dummy file for testing.
E # TODO: We currently use the same file for all runs; this should be updated
E # once we have files from an actual run.
E wf[Filename[SampleRun]] = loki.data.loki_coda_file()
E wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
E wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
E
E # Visualize the workflow
E wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
E #x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
E #x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
E #x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
E #x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
E #x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
E #x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
E #x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
E #x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
E #x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
E
E The above exception was the direct cause of the following exception:
E
E #x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
E #x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
E #x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
E #x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
E #x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
E #x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
E #x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
E #x1B[32m 64#x1B[39m
E #x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
E #x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
E #x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
E #x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
E #x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
E #x1B[32m 182#x1B[39m stacklevel=stacklevel,
E #x1B[32m 183#x1B[39m category=category)
E #x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
E #x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
E #x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
E #x1B[32m 207#x1B[39m renderer=renderer,
E #x1B[32m 208#x1B[39m formatter=formatter,
E #x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
E #x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
E #x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
E #x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
E #x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
E
E #x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
wf = loki.LokiWorkflow()
# Set detector bank name: in this case there is only one bank
wf[NeXusDetectorName] = "loki_detector_0"
# Wavelength and Q binning parameters
wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
# Other parameters
wf[CorrectForGravity] = True
wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
wf[ReturnEvents] = False
wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
wf[DirectBeam] = None
wf[DetectorMasks] = {}
wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
# Use a small dummy file for testing.
# TODO: We currently use the same file for all runs; this should be updated
# once we have files from an actual run.
wf[Filename[SampleRun]] = loki.data.loki_coda_file()
wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
# Visualize the workflow
wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
#x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
#x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
#x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
#x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
#x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
#x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
#x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
#x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
#x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
The above exception was the direct cause of the following exception:
#x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
#x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
#x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
#x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
#x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
#x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
#x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
#x1B[32m 64#x1B[39m
#x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
#x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
#x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
#x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
#x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
#x1B[32m 182#x1B[39m stacklevel=stacklevel,
#x1B[32m 183#x1B[39m category=category)
#x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
#x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
#x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
#x1B[32m 207#x1B[39m renderer=renderer,
#x1B[32m 208#x1B[39m formatter=formatter,
#x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
#x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
#x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
#x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
#x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
#x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/home/gitlab-runner/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/.pytest_cache/codeshelf/repo/src/loki/notebooks/loki-reduction-ess.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7fda90610220>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-360/test_run_notebooks_loki_reduct0')
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-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-loki/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-loki/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 0x7fda9024b6e0>
cell = {'cell_type': 'code', 'execution_count': 2, 'id': '3', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07:...a.loki_coda_file()\n\n# Visualize the workflow\nwf.visualize(IntensityQ[SampleRun], graph_attr={\'rankdir\': \'LR\'})'}
cell_index = 3
exec_reply = {'header': {'msg_id': 'f27b7788-c2e5de3e72e675bcd0be1acd_848032_20', 'msg_type': 'execute_reply', 'username': 'usernam...5_3', 'msg_type': 'execute_request', 'username': 'username', 'session': '1f5891f5-dd32751c9f40adfd97fce8e7', ...}, ...}
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 wf = loki.LokiWorkflow()
E
E # Set detector bank name: in this case there is only one bank
E wf[NeXusDetectorName] = "loki_detector_0"
E
E # Wavelength and Q binning parameters
E wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
E wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
E
E # Other parameters
E wf[CorrectForGravity] = True
E wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
E wf[ReturnEvents] = False
E wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
E wf[DirectBeam] = None
E wf[DetectorMasks] = {}
E wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
E
E # Use a small dummy file for testing.
E # TODO: We currently use the same file for all runs; this should be updated
E # once we have files from an actual run.
E wf[Filename[SampleRun]] = loki.data.loki_coda_file()
E wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
E wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
E
E # Visualize the workflow
E wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
E #x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
E #x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
E #x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
E #x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
E #x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
E #x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
E #x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
E #x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
E #x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
E
E The above exception was the direct cause of the following exception:
E
E #x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
E #x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
E #x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
E #x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
E #x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
E #x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
E #x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
E #x1B[32m 64#x1B[39m
E #x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
E #x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
E #x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
E #x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
E #x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
E #x1B[32m 182#x1B[39m stacklevel=stacklevel,
E #x1B[32m 183#x1B[39m category=category)
E #x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
E #x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
E #x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
E #x1B[32m 207#x1B[39m renderer=renderer,
E #x1B[32m 208#x1B[39m formatter=formatter,
E #x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
E #x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
E #x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
E #x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
E #x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
E
E #x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
wf = loki.LokiWorkflow()
# Set detector bank name: in this case there is only one bank
wf[NeXusDetectorName] = "loki_detector_0"
# Wavelength and Q binning parameters
wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
# Other parameters
wf[CorrectForGravity] = True
wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
wf[ReturnEvents] = False
wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
wf[DirectBeam] = None
wf[DetectorMasks] = {}
wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
# Use a small dummy file for testing.
# TODO: We currently use the same file for all runs; this should be updated
# once we have files from an actual run.
wf[Filename[SampleRun]] = loki.data.loki_coda_file()
wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
# Visualize the workflow
wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
#x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
#x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
#x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
#x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
#x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
#x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
#x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
#x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
#x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
The above exception was the direct cause of the following exception:
#x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
#x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
#x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
#x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
#x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
#x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
#x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#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-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
#x1B[32m 64#x1B[39m
#x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
#x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
#x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
#x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
#x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
#x1B[32m 182#x1B[39m stacklevel=stacklevel,
#x1B[32m 183#x1B[39m category=category)
#x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
#x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
#x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
#x1B[32m 207#x1B[39m renderer=renderer,
#x1B[32m 208#x1B[39m formatter=formatter,
#x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
#x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
#x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
#x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
#x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
#x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/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-loki/.pytest_cache/codeshelf/repo/src/loki/notebooks/loki-reduction-ess.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f4392050220>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-353/test_run_notebooks_loki_reduct0')
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-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-loki/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-loki/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 0x7f4391cc7620>
cell = {'cell_type': 'code', 'execution_count': 2, 'id': '3', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07:...a.loki_coda_file()\n\n# Visualize the workflow\nwf.visualize(IntensityQ[SampleRun], graph_attr={\'rankdir\': \'LR\'})'}
cell_index = 3
exec_reply = {'header': {'msg_id': '510dd901-535d3791750192ce2ba5d408_808426_20', 'msg_type': 'execute_reply', 'username': 'usernam...5_3', 'msg_type': 'execute_request', 'username': 'username', 'session': 'f37ca084-58157f85c6ed5b9a191ca4cf', ...}, ...}
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 wf = loki.LokiWorkflow()
E
E # Set detector bank name: in this case there is only one bank
E wf[NeXusDetectorName] = "loki_detector_0"
E
E # Wavelength and Q binning parameters
E wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
E wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
E
E # Other parameters
E wf[CorrectForGravity] = True
E wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
E wf[ReturnEvents] = False
E wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
E wf[DirectBeam] = None
E wf[DetectorMasks] = {}
E wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
E
E # Use a small dummy file for testing.
E # TODO: We currently use the same file for all runs; this should be updated
E # once we have files from an actual run.
E wf[Filename[SampleRun]] = loki.data.loki_coda_file()
E wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
E wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
E
E # Visualize the workflow
E wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
E #x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
E #x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
E #x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
E #x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
E #x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
E #x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
E #x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
E #x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
E #x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
E
E The above exception was the direct cause of the following exception:
E
E #x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
E #x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
E #x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
E #x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
E #x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
E #x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
E #x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#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-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
E #x1B[32m 64#x1B[39m
E #x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
E #x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
E #x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
E #x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
E #x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
E #x1B[32m 182#x1B[39m stacklevel=stacklevel,
E #x1B[32m 183#x1B[39m category=category)
E #x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
E #x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
E #x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
E #x1B[32m 207#x1B[39m renderer=renderer,
E #x1B[32m 208#x1B[39m formatter=formatter,
E #x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
E #x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
E #x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/0/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
E #x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
E #x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
E
E #x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
wf = loki.LokiWorkflow()
# Set detector bank name: in this case there is only one bank
wf[NeXusDetectorName] = "loki_detector_0"
# Wavelength and Q binning parameters
wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
# Other parameters
wf[CorrectForGravity] = True
wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
wf[ReturnEvents] = False
wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
wf[DirectBeam] = None
wf[DetectorMasks] = {}
wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
# Use a small dummy file for testing.
# TODO: We currently use the same file for all runs; this should be updated
# once we have files from an actual run.
wf[Filename[SampleRun]] = loki.data.loki_coda_file()
wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
# Visualize the workflow
wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
------------------
#x1B[31m---------------------------------------------------------------------------#x1B[39m
#x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
#x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
#x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
#x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
#x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
#x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
#x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
#x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
#x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
#x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
#x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
#x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
The above exception was the direct cause of the following exception:
#x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
#x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
#x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
#x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
#x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
#x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
#x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
#x1B[32m 64#x1B[39m
#x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
#x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
#x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
#x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
#x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
#x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
#x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
#x1B[32m 182#x1B[39m stacklevel=stacklevel,
#x1B[32m 183#x1B[39m category=category)
#x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
#x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
#x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
#x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
#x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
#x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
#x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
#x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
#x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
#x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
#x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
#x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
#x1B[32m 207#x1B[39m renderer=renderer,
#x1B[32m 208#x1B[39m formatter=formatter,
#x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
#x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
#x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
#x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
#x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
#x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
#x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
#x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
#x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
#x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError
Full output
notebook = PosixPath('/home/gitlab-runner/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/.pytest_cache/codeshelf/repo/src/loki/notebooks/loki-reduction-ess.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7ff869b68220>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-346/test_run_notebooks_loki_reduct0')
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-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:103: in preprocess
self.preprocess_cell(cell, resources, index)
.tox/codeshelf-loki/lib/python3.12/site-packages/nbconvert/preprocessors/execute.py:124: in preprocess_cell
cell = self.execute_cell(cell, index, store_history=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/codeshelf-loki/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-loki/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 0x7ff8697d3890>
cell = {'cell_type': 'code', 'execution_count': 2, 'id': '3', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07:...a.loki_coda_file()\n\n# Visualize the workflow\nwf.visualize(IntensityQ[SampleRun], graph_attr={\'rankdir\': \'LR\'})'}
cell_index = 3
exec_reply = {'header': {'msg_id': 'a161b9b8-eaed03c5daef711c40dfbb9c_769318_20', 'msg_type': 'execute_reply', 'username': 'usernam...5_3', 'msg_type': 'execute_request', 'username': 'username', 'session': 'cc42edd2-ff8c7df963049eb5cf24d690', ...}, ...}
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 wf = loki.LokiWorkflow()
E
E # Set detector bank name: in this case there is only one bank
E wf[NeXusDetectorName] = "loki_detector_0"
E
E # Wavelength and Q binning parameters
E wf[WavelengthBins] = sc.linspace("wavelength", 1.0, 13.0, 201, unit="angstrom")
E wf[QBins] = sc.linspace(dim="Q", start=0.01, stop=0.3, num=101, unit="1/angstrom")
E
E # Other parameters
E wf[CorrectForGravity] = True
E wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.upper_bound
E wf[ReturnEvents] = False
E wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit="m")
E wf[DirectBeam] = None
E wf[DetectorMasks] = {}
E wf[LookupTableFilename] = loki.data.loki_lookup_table_no_choppers()
E
E # Use a small dummy file for testing.
E # TODO: We currently use the same file for all runs; this should be updated
E # once we have files from an actual run.
E wf[Filename[SampleRun]] = loki.data.loki_coda_file()
E wf[Filename[EmptyBeamRun]] = loki.data.loki_coda_file()
E wf[Filename[TransmissionRun[SampleRun]]] = loki.data.loki_coda_file()
E
E # Visualize the workflow
E wf.visualize(IntensityQ[SampleRun], graph_attr={'rankdir': 'LR'})
E ------------------
E
E
E #x1B[31m---------------------------------------------------------------------------#x1B[39m
E #x1B[31mFileNotFoundError#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:76#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 75#x1B[39m kwargs[#x1B[33m'#x1B[39m#x1B[33mstdout#x1B[39m#x1B[33m'#x1B[39m] = kwargs[#x1B[33m'#x1B[39m#x1B[33mstderr#x1B[39m#x1B[33m'#x1B[39m] = subprocess.PIPE
E #x1B[32m---> #x1B[39m#x1B[32m76#x1B[39m proc = #x1B[30;43m_run_input_lines#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43minput_lines#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;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 77#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:96#x1B[39m, in #x1B[36m_run_input_lines#x1B[39m#x1B[34m(cmd, input_lines, kwargs)#x1B[39m
E #x1B[32m 95#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_run_input_lines#x1B[39m(cmd, input_lines, *, kwargs):
E #x1B[32m---> #x1B[39m#x1B[32m96#x1B[39m popen = #x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPopen#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mstdin#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43msubprocess#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mPIPE#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 98#x1B[39m stdin_write = popen.stdin.write
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1026#x1B[39m, in #x1B[36mPopen.__init__#x1B[39m#x1B[34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)#x1B[39m
E #x1B[32m 1023#x1B[39m #x1B[38;5;28mself#x1B[39m.stderr = io.TextIOWrapper(#x1B[38;5;28mself#x1B[39m.stderr,
E #x1B[32m 1024#x1B[39m encoding=encoding, errors=errors)
E #x1B[32m-> #x1B[39m#x1B[32m1026#x1B[39m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43m_execute_child#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;43mexecutable#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mpreexec_fn#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mclose_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1027#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mpass_fds#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcwd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43menv#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1028#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstartupinfo#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcreationflags#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mshell#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1029#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mp2cread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mp2cwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1030#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mc2pread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mc2pwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1031#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43merrread#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43merrwrite#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1032#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrestore_signals#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1033#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mgid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mgids#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43muid#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mumask#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 1034#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mstart_new_session#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mprocess_group#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 1035#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m:
E #x1B[32m 1036#x1B[39m #x1B[38;5;66;03m# Cleanup if the child failed starting.#x1B[39;00m
E
E #x1B[36mFile #x1B[39m#x1B[32m/opt/miniforge/lib/python3.12/subprocess.py:1955#x1B[39m, in #x1B[36mPopen._execute_child#x1B[39m#x1B[34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)#x1B[39m
E #x1B[32m 1954#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m err_filename #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m-> #x1B[39m#x1B[32m1955#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m child_exception_type(errno_num, err_msg, err_filename)
E #x1B[32m 1956#x1B[39m #x1B[38;5;28;01melse#x1B[39;00m:
E
E #x1B[31mFileNotFoundError#x1B[39m: [Errno 2] No such file or directory: PosixPath('dot')
E
E The above exception was the direct cause of the following exception:
E
E #x1B[31mExecutableNotFound#x1B[39m Traceback (most recent call last)
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:98#x1B[39m, in #x1B[36mJupyterIntegration._repr_mimebundle_#x1B[39m#x1B[34m(self, include, exclude, **_)#x1B[39m
E #x1B[32m 96#x1B[39m include = #x1B[38;5;28mset#x1B[39m(include) #x1B[38;5;28;01mif#x1B[39;00m include #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m #x1B[38;5;28;01melse#x1B[39;00m {#x1B[38;5;28mself#x1B[39m._jupyter_mimetype}
E #x1B[32m 97#x1B[39m include -= #x1B[38;5;28mset#x1B[39m(exclude #x1B[38;5;129;01mor#x1B[39;00m [])
E #x1B[32m---> #x1B[39m#x1B[32m98#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m {mimetype: #x1B[30;43mgetattr#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mself#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mmethod_name#x1B[39;49m#x1B[30;43m)#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E #x1B[32m 99#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m mimetype, method_name #x1B[38;5;129;01min#x1B[39;00m MIME_TYPES.items()
E #x1B[32m 100#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m mimetype #x1B[38;5;129;01min#x1B[39;00m include}
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/jupyter_integration.py:112#x1B[39m, in #x1B[36mJupyterIntegration._repr_image_svg_xml#x1B[39m#x1B[34m(self)#x1B[39m
E #x1B[32m 110#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_repr_image_svg_xml#x1B[39m(#x1B[38;5;28mself#x1B[39m) -> #x1B[38;5;28mstr#x1B[39m:
E #x1B[32m 111#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the rendered graph as SVG string."""#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m112#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m #x1B[30;43mself#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mpipe#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43msvg#x1B[39;49m#x1B[30;43m'#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mSVG_ENCODING#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:104#x1B[39m, in #x1B[36mPipe.pipe#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 55#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34mpipe#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 56#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 57#x1B[39m renderer: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 61#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 62#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m 63#x1B[39m #x1B[38;5;250m #x1B[39m#x1B[33;03m"""Return the source piped through the Graphviz layout command.#x1B[39;00m
E #x1B[32m 64#x1B[39m
E #x1B[32m 65#x1B[39m #x1B[33;03m Args:#x1B[39;00m
E #x1B[32m (...)#x1B[39m#x1B[32m 102#x1B[39m #x1B[33;03m '<?xml version='#x1B[39;00m
E #x1B[32m 103#x1B[39m #x1B[33;03m """#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m104#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_pipe_legacy#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 105#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 106#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 107#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 108#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 109#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 110#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/_tools.py:185#x1B[39m, in #x1B[36mdeprecate_positional_args.<locals>.decorator.<locals>.wrapper#x1B[39m#x1B[34m(*args, **kwargs)#x1B[39m
E #x1B[32m 177#x1B[39m wanted = #x1B[33m'#x1B[39m#x1B[33m, #x1B[39m#x1B[33m'#x1B[39m.join(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mname#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m=#x1B[39m#x1B[38;5;132;01m{#x1B[39;00mvalue#x1B[38;5;132;01m!r}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 178#x1B[39m #x1B[38;5;28;01mfor#x1B[39;00m name, value #x1B[38;5;129;01min#x1B[39;00m deprecated.items())
E #x1B[32m 179#x1B[39m warnings.warn(#x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33mThe signature of #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mfunc_name#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m will be reduced#x1B[39m#x1B[33m'#x1B[39m
E #x1B[32m 180#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m to #x1B[39m#x1B[38;5;132;01m{#x1B[39;00msupported_number#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m positional arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[38;5;132;01m{#x1B[39;00mqualification#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m
E #x1B[32m 181#x1B[39m #x1B[33mf#x1B[39m#x1B[33m'#x1B[39m#x1B[33m #x1B[39m#x1B[38;5;132;01m{#x1B[39;00m#x1B[38;5;28mlist#x1B[39m(supported)#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m: pass #x1B[39m#x1B[38;5;132;01m{#x1B[39;00mwanted#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m as keyword arg#x1B[39m#x1B[38;5;132;01m{#x1B[39;00ms_#x1B[38;5;132;01m}#x1B[39;00m#x1B[33m'#x1B[39m,
E #x1B[32m 182#x1B[39m stacklevel=stacklevel,
E #x1B[32m 183#x1B[39m category=category)
E #x1B[32m--> #x1B[39m#x1B[32m185#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[30;43m #x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43m*#x1B[39;49m#x1B[30;43mkwargs#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:121#x1B[39m, in #x1B[36mPipe._pipe_legacy#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 112#x1B[39m #x1B[38;5;129m@_tools#x1B[39m.deprecate_positional_args(supported_number=#x1B[32m1#x1B[39m, ignore_arg=#x1B[33m'#x1B[39m#x1B[33mself#x1B[39m#x1B[33m'#x1B[39m)
E #x1B[32m 113#x1B[39m #x1B[38;5;28;01mdef#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34m_pipe_legacy#x1B[39m(#x1B[38;5;28mself#x1B[39m,
E #x1B[32m 114#x1B[39m #x1B[38;5;28mformat#x1B[39m: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m (...)#x1B[39m#x1B[32m 119#x1B[39m engine: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m,
E #x1B[32m 120#x1B[39m encoding: typing.Optional[#x1B[38;5;28mstr#x1B[39m] = #x1B[38;5;28;01mNone#x1B[39;00m) -> typing.Union[#x1B[38;5;28mbytes#x1B[39m, #x1B[38;5;28mstr#x1B[39m]:
E #x1B[32m--> #x1B[39m#x1B[32m121#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_pipe_future#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mformat#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 122#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mrenderer#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 123#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mformatter#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 124#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mneato_no_op#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 125#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 126#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mengine#x1B[39;49m#x1B[30;43m,#x1B[39;49m
E #x1B[32m 127#x1B[39m #x1B[30;43m #x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#x1B[39;49m#x1B[30;43m)#x1B[39;49m
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/piping.py:149#x1B[39m, in #x1B[36mPipe._pipe_future#x1B[39m#x1B[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)#x1B[39m
E #x1B[32m 146#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m encoding #x1B[38;5;129;01mis#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m #x1B[38;5;28;01mNone#x1B[39;00m:
E #x1B[32m 147#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m codecs.lookup(encoding) #x1B[38;5;129;01mis#x1B[39;00m codecs.lookup(#x1B[38;5;28mself#x1B[39m.encoding):
E #x1B[32m 148#x1B[39m #x1B[38;5;66;03m# common case: both stdin and stdout need the same encoding#x1B[39;00m
E #x1B[32m--> #x1B[39m#x1B[32m149#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_pipe_lines_string#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;43mencoding#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mencoding#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 150#x1B[39m #x1B[38;5;28;01mtry#x1B[39;00m:
E #x1B[32m 151#x1B[39m raw = #x1B[38;5;28mself#x1B[39m._pipe_lines(*args, input_encoding=#x1B[38;5;28mself#x1B[39m.encoding, **kwargs)
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/piping.py:212#x1B[39m, in #x1B[36mpipe_lines_string#x1B[39m#x1B[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)#x1B[39m
E #x1B[32m 206#x1B[39m cmd = dot_command.command(engine, #x1B[38;5;28mformat#x1B[39m,
E #x1B[32m 207#x1B[39m renderer=renderer,
E #x1B[32m 208#x1B[39m formatter=formatter,
E #x1B[32m 209#x1B[39m neato_no_op=neato_no_op)
E #x1B[32m 210#x1B[39m kwargs = {#x1B[33m'#x1B[39m#x1B[33minput_lines#x1B[39m#x1B[33m'#x1B[39m: input_lines, #x1B[33m'#x1B[39m#x1B[33mencoding#x1B[39m#x1B[33m'#x1B[39m: encoding}
E #x1B[32m--> #x1B[39m#x1B[32m212#x1B[39m proc = #x1B[30;43mexecute#x1B[39;49m#x1B[30;43m.#x1B[39;49m#x1B[30;43mrun_check#x1B[39;49m#x1B[30;43m(#x1B[39;49m#x1B[30;43mcmd#x1B[39;49m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mcapture_output#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43;01mTrue#x1B[39;49;00m#x1B[30;43m,#x1B[39;49m#x1B[30;43m #x1B[39;49m#x1B[30;43mquiet#x1B[39;49m#x1B[30;43m=#x1B[39;49m#x1B[30;43mquiet#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 213#x1B[39m #x1B[38;5;28;01mreturn#x1B[39;00m proc.stdout
E
E #x1B[36mFile #x1B[39m#x1B[32m~/builds/sr_srNBdt/4/dmsc-nightly/dmsc-nightly/.tox/codeshelf-loki/lib/python3.12/site-packages/graphviz/backend/execute.py:81#x1B[39m, in #x1B[36mrun_check#x1B[39m#x1B[34m(cmd, input_lines, encoding, quiet, **kwargs)#x1B[39m
E #x1B[32m 79#x1B[39m #x1B[38;5;28;01mexcept#x1B[39;00m #x1B[38;5;167;01mOSError#x1B[39;00m #x1B[38;5;28;01mas#x1B[39;00m e:
E #x1B[32m 80#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m e.errno == errno.ENOENT:
E #x1B[32m---> #x1B[39m#x1B[32m81#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m ExecutableNotFound(cmd) #x1B[38;5;28;01mfrom#x1B[39;00m#x1B[38;5;250m #x1B[39m#x1B[34;01me#x1B[39;00m
E #x1B[32m 82#x1B[39m #x1B[38;5;28;01mraise#x1B[39;00m
E #x1B[32m 84#x1B[39m #x1B[38;5;28;01mif#x1B[39;00m #x1B[38;5;129;01mnot#x1B[39;00m quiet #x1B[38;5;129;01mand#x1B[39;00m proc.stderr:
E
E #x1B[31mExecutableNotFound#x1B[39m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
.tox/codeshelf-loki/lib/python3.12/site-packages/nbclient/client.py:918: CellExecutionError