Bokeh: passez vars à CustomJS pour Widgets

Une bonne chose à propos de Bokeh est que les rappels peuvent être spécifiés à partir de la couche Python qui entraînent des actions au niveau javascript sans besoin de bokeh-server. Ainsi, on peut créer des widgets interactifs qui s'exécutent dans un navigateur sans un serveur Ipython ou Bokeh en cours d'exécution.

Le 0.9.3. La documentation donne un exemple que je peux reproduire dans un cahier ipython: http://bokeh.pydata.org/en/latest/docs/user_guide/interaction.html#cutomjs-for-widgets

from bokeh.io import vform from bokeh.models import CustomJS, ColumnDataSource, Slider from bokeh.plotting import figure, output_file, show output_file("callback.html") x = [x*0.005 for x in range(0, 200)] y = x source = ColumnDataSource(data=dict(x=x, y=y)) plot = figure(plot_width=400, plot_height=400) plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6) callback = CustomJS(args=dict(source=source), code=""" var data = source.get('data'); var f = cb_obj.get('value') x = data['x'] y = data['y'] for (i = 0; i < x.length; i++) { y[i] = Math.pow(x[i], f) } source.trigger('change'); """) slider = Slider(start=0.1, end=4, value=1, step=.1, title="power", callback=callback) layout = vform(slider, plot) show(layout) 

Je souhaite adapter le code comme ceci pour créer des tâches en ligne simples. Ma question est de savoir comment puis-je passer d'autres variables de python à javascript directement sans invoquer un Slider. Par exemple, supposons que je souhaite que le Javascript devienne:

 y[i] = Math.pow(x[i], A*f) 

Où A a été défini dans une cellule de code ipython ci-dessus (par exemple A = 10). Il est assez facile de définir 'var A = 10' dans le javascript mais je voudrais définir la valeur de A et d'autres variables en python, puis les transférer dans ce javascript. Y at-il un moyen?

À partir de Bokeh 0.9.3, vous ne pouvez passer que "Bokeh Models" (p. Ex., Les sources de données et les renderers), pas d'objets Python arbitraires. Mais nous travaillons à étendre les documents bokeh avec un concept d'espace de noms simple qui peut être réfléchi facilement.