Python Bokeh send additional parameters to widget event handler

The standard functools.partial facility that is built into python works fine with Bokeh callbacks.

from functools import partial
from bokeh.plotting import curdoc
from bokeh.models.widgets import Button, Paragraph
from bokeh.layouts import widgetbox

minus = Button(label='-')
plus = Button(label='+')
text = Paragraph(text='0')

def callback(foo):
    print(foo)

minus.on_click(partial(callback, foo="minus"))
plus.on_click(partial(callback, foo="plus"))

layout = widgetbox(minus, plus, text)
curdoc().add_root(layout)