DMSC Integration Testing

Last updated: September 25, 2026 08:04:50

Test: codeshelf|loki|run_notebooks|loki-reduction-larmor

View job log here


Test passed, nothing to report

View job log here


Test passed, nothing to report

View job log here


Test passed, nothing to report

View job log here


Test passed, nothing to report

View job log here


Test passed, nothing to report

View job log here


Test passed, nothing to report

View job log here


Test passed, nothing to report

View job log here


Test passed, nothing to report

View job log here


Test passed, nothing to report

View job log here


nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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-larmor.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7fddc98280e0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-380/test_run_notebooks_loki_reduct1')

    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 0x7fddc921d520>
cell = {'cell_type': 'code', 'execution_count': 7, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T09...tion_count': 7}], 'source': 'workflow.visualize(BackgroundSubtractedIofQ, compact=True, graph_attr={"rankdir": "LR"})'}
cell_index = 13
exec_reply = {'header': {'msg_id': 'f60f4a3f-508d35fba543f2fe7c1da5d7_932320_41', 'msg_type': 'execute_reply', 'username': 'usernam...3_8', 'msg_type': 'execute_request', 'username': 'username', 'session': '67bca7b2-69338627111a312fef80cd7e', ...}, ...}

    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           workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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

View job log here


nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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-larmor.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f7bf3ea00e0>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-369/test_run_notebooks_loki_reduct1')

    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 0x7f7bf3873230>
cell = {'cell_type': 'code', 'execution_count': 7, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T09...tion_count': 7}], 'source': 'workflow.visualize(BackgroundSubtractedIofQ, compact=True, graph_attr={"rankdir": "LR"})'}
cell_index = 13
exec_reply = {'header': {'msg_id': '593da765-47b06cea831287978d0de006_892911_41', 'msg_type': 'execute_reply', 'username': 'usernam...5_8', 'msg_type': 'execute_request', 'username': 'username', 'session': '2d77048d-402d7d7ca3e3bc0eeb520cce', ...}, ...}

    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           workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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

View job log here


nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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-larmor.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7fda90610220>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-360/test_run_notebooks_loki_reduct1')

    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 0x7fda9024b3e0>
cell = {'cell_type': 'code', 'execution_count': 7, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07...tion_count': 7}], 'source': 'workflow.visualize(BackgroundSubtractedIofQ, compact=True, graph_attr={"rankdir": "LR"})'}
cell_index = 13
exec_reply = {'header': {'msg_id': '67369130-cc38908ed63f57965d27c43d_848156_41', 'msg_type': 'execute_reply', 'username': 'usernam...5_8', 'msg_type': 'execute_request', 'username': 'username', 'session': '4e1bafb2-8f02133dba36ef0a6bc61669', ...}, ...}

    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           workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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

View job log here


nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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-larmor.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7f4392050220>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-353/test_run_notebooks_loki_reduct1')

    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 0x7f4391cc7350>
cell = {'cell_type': 'code', 'execution_count': 7, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07...tion_count': 7}], 'source': 'workflow.visualize(BackgroundSubtractedIofQ, compact=True, graph_attr={"rankdir": "LR"})'}
cell_index = 13
exec_reply = {'header': {'msg_id': 'd821dae0-3ec6dc2d70b7ee41c8334b34_808551_41', 'msg_type': 'execute_reply', 'username': 'usernam...5_8', 'msg_type': 'execute_request', 'username': 'username', 'session': 'bc6b2a1a-cf72c9ac90cfd393d7bf9ea7', ...}, ...}

    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           workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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

View job log here


nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
------------------
workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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-larmor.ipynb')
run_codeshelf_notebook = <function _run_codeshelf_notebook at 0x7ff869b68220>
tmp_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-346/test_run_notebooks_loki_reduct1')

    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 0x7ff8697d1580>
cell = {'cell_type': 'code', 'execution_count': 7, 'id': '13', 'metadata': {'execution': {'iopub.status.busy': '2026-09-22T07...tion_count': 7}], 'source': 'workflow.visualize(BackgroundSubtractedIofQ, compact=True, graph_attr={"rankdir": "LR"})'}
cell_index = 13
exec_reply = {'header': {'msg_id': '221daac5-86515159a3d655396c0f3e3f_769383_43', 'msg_type': 'execute_reply', 'username': 'usernam...5_8', 'msg_type': 'execute_request', 'username': 'username', 'session': '694c49f2-7c31719e1318795e666d31db', ...}, ...}

    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           workflow.visualize(BackgroundSubtractedIofQ, compact=True, 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