Once this PR is merged you’ll be able to do this:
class Application(param.Parameterized):
...
def _do_calc(self):
data = list(np.random.randint(0, 2 ** 31, 10))
cb = partial(self.update_source, data)
pn.state.curdoc.add_next_tick_callback(cb)
...
def create_app():
app = Application()
return app.panel()
server = pn.serve(create_app, show=False, loop=IOLoop().current(), start=False, port=5006)
# Do stuff
server.io_loop.start()
and the periodic callback will correctly discover the current document. Make sure to use pn.state.curdoc
yourself.