Ich versuche, Bokeh zu verwenden, um eine editierbare DataTable zu erstellen, die die Quelldaten aktualisiert, wenn die Daten bearbeitet werden. Ich habe mit dem Standard-DataTable-Beispiel here begonnen und das editierbare Kwarg auf true gesetzt. Hier ist, wo ich bin:Hinzufügen von Rückruf zu Bokeh DataTable
from datetime import date
from random import randint
from bokeh.models import ColumnDataSource, Callback
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn
from bokeh.io import output_file, output_notebook, show, vform
output_notebook()
data = dict(dates=[date(2014, 3, i+1) for i in range(10)],
downloads=[randint(0, 100) for i in range(10)])
source = ColumnDataSource(data)
columns = [TableColumn(field="dates", title="Date", formatter=DateFormatter()),
TableColumn(field="downloads", title="Downloads")]
callback = Callback(args=dict(Source=source), code="""
console.log('#cell edited')""")
data_table = DataTable(source=source, columns=columns, width=400, height=280, editable=True)
data_table.on_change(callback,source)
show(vform(data_table))
Dies macht eine bearbeitbare Datentabelle, aber ich kann nicht herausfinden, wie den Callback erhält die Quelldaten zu aktualisieren oder die Quelldaten so zu konfigurieren, dass es automatisch tut Das. Ich dachte, es gab eine Möglichkeit, dies automatisch mit ColumnDataSource zu tun, und nach dem Versuch, einen Rückruf zu schreiben. Es scheint jedoch, dass die DataTable keine Callback-Option hat, aber es hat seltsamerweise ein on_change-Attribut.
Weiß jemand, wie man das macht?