diff --git a/distributed/dashboard/components/scheduler.py b/distributed/dashboard/components/scheduler.py index 75c10d1fcf..fe6566bf47 100644 --- a/distributed/dashboard/components/scheduler.py +++ b/distributed/dashboard/components/scheduler.py @@ -25,6 +25,7 @@ ColumnDataSource, CustomJSHover, DataRange1d, + DatetimeTickFormatter, FactorRange, GroupFilter, HelpTool, @@ -52,6 +53,7 @@ from bokeh.themes import Theme from bokeh.transform import cumsum, factor_cmap, linear_cmap, stack from jinja2 import Environment, FileSystemLoader +from packaging.version import parse as parse_version from tlz import curry, pipe, second, valmap from tlz.curried import concat, groupby, map @@ -76,6 +78,7 @@ ) from distributed.dashboard.utils import ( _DATATABLE_STYLESHEETS_KWARGS, + BOKEH_VERSION, PROFILING, transpose, update, @@ -2192,7 +2195,9 @@ def task_stream_figure(clear_interval="20s", **kwargs): x_range=x_range, y_range=y_range, toolbar_location="above", - x_axis_type="datetime", + x_axis_type=( + "timedelta" if BOKEH_VERSION >= parse_version("3.8.0") else "datetime" + ), y_axis_location=None, tools="", min_border_bottom=50, @@ -2216,6 +2221,12 @@ def task_stream_figure(clear_interval="20s", **kwargs): root.yaxis.major_label_text_alpha = 0 root.yaxis.minor_tick_line_alpha = 0 root.yaxis.major_tick_line_alpha = 0 + if BOKEH_VERSION < parse_version("3.8.0") and BOKEH_VERSION >= parse_version( + "3.5.2" + ): + root.xaxis[0].formatter = DatetimeTickFormatter( + boundary_scaling=False, context=None + ) # remove full date context misleading for users root.xgrid.visible = False hover = HoverTool(