Hello all,
I’m not sure if this is worth reporting, but I just spend some time debugging an error in the JS console after upgrading from 2.3.2 to 2.4.1. It can be reproduced by using the LabelSet example from the documentation (Adding annotations — Bokeh 2.4.2 Documentation)
from bokeh.models import ColumnDataSource, Label, LabelSet, Range1d
from bokeh.plotting import figure
from bokeh.plotting import curdoc
source = ColumnDataSource(data=dict(height=[66, 71, 72, 68, 58, 62],
weight=[165, 189, 220, 141, 260, 174],
names=[165, 189, 220, 141, 260, 174]))
p = figure(title='Dist. of 10th Grade Students at Lee High',
x_range=Range1d(140, 275))
p.scatter(x='weight', y='height', size=8, source=source)
p.xaxis[0].axis_label = 'Weight (lbs)'
p.yaxis[0].axis_label = 'Height (in)'
labels = LabelSet(x='weight', y='height', text='names',
x_offset=5, y_offset=5, source=source, render_mode='canvas')
citation = Label(x=70, y=70, x_units='screen', y_units='screen',
text='Collected by Luke C. 2016-04-01', render_mode='css',
border_line_color='black', border_line_alpha=1.0,
background_fill_color='white', background_fill_alpha=1.0)
p.add_layout(labels)
p.add_layout(citation)
doc = curdoc()
doc.add_root(p)
Passing integers to the text property (I just replaced the names with integers) ‘just works’ on 2.3.3 but on 2.4.1 it gives the following error:
Error rendering Bokeh items: TypeError: this.text.split is not a function
at x.paint (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:285)
at v._v_canvas_text (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:386)
at v.paint (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:386)
at v._render (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:234)
at v.render (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:206)
at O._paint_levels (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:519)
at O._actual_paint (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:519)
at O.paint (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:519)
at O.after_layout (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:519)
at O.compute_layout (bokeh.min.js?v=d84834ccd5c99419880814bf28eebb39a98dc69967e6c85a9b210aed48948ef2ddb58c82a008737808145988c9c629536623eb19867396a59f887d7ef0306656:496)
I debugged this in my code by loading the non-minified JS and that showed ‘LabelSet’ in the error output there so that’s where I started looking (commenting out my LabelSets one after another).
Anyway, I can see that passing str to the text property of LabelSet makes sense, but so far integers where silently accepted as well.
Thanks!
Johannes