Profiling / documenting the Dash callback network

Hey all!

As apps become more complicated, the network of all callbacks can be difficult to keep in one’s head.

There’s a very nice debugging tool to visualize the interconnectedness of callbacks in debugging mode. However, in development-mode our application is served via a multi-container docker compose that uses Gunicorn as the WSGI server.

(1) are there any good callback connectedness profilers that are comparable to the in-built Dash debug graph view?
(2) is there a way to access the Dash debug callback network with a Gunicorn server?

Any help would be very much appreciated!

Yep, you can access the Dash dev tools when deployed with Gunicorn. Just do the following:

app.enable_dev_tools(debug=True)

Or if you only want to enable specific dev tools features, look at the section Configuring with enable_dev_tools in this page of the docs: Dash Dev Tools | Dash for Python Documentation | Plotly

3 Likes

This was a great suggestion, I didn’t know that this was possible.

For future reference, my preference is to use it as:

app.enable_dev_tools(dev_tools_ui=True, dev_tools_hot_reload=False)

because the live-reload caused app jitteriness (probably a bug on my end) but the UI tools are nice.

It’d be nice if I could export the callback graph as a .svg or as a filetype that supported further inspection.

Thanks @nedned !

1 Like