Можно ли обновить виджет param / panel во время работы другого? - PullRequest
0 голосов
/ 15 октября 2019

Мне бы хотелось, чтобы в моем приложении панели отображался индикатор прогресса или счетчик, когда я выполняю медленный сетевой вызов, что-то вроде:

class MyApp(param.Parameterized):
    div = Div(text="", width=120, height=120)
    plot = param.Action(lambda self: self.param.trigger('plot'))

    def _load(self):
        self.div.text = spinner_text
        sleep(5) # simulate work such as loading from db
        return 1 # some data

    @param.depends('plot', watch=True)
    def view(self):
        data = self._load()
        plot = data.hvplot()
        return pn.Row(self.div, plot)

app = MyApp()
pn.Row(MyApp.param, app.view)

(где текст счетчикаCSS из bokeh / Issues / 3393 )

Однако виджет не обновляется до тех пор, пока не завершится спящий режим. Есть ли какой-нибудь способ показать какой-нибудь индикатор прогресса или похожий на пользователя во время выполнения длительных вычислений?

Я сейчас использую

bokeh==1.3.4
panel==0.6.3
param==1.9.2
...