-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Expand file tree
/
Copy pathapp_progress_delete.py
More file actions
47 lines (38 loc) · 1.18 KB
/
app_progress_delete.py
File metadata and controls
47 lines (38 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from dash import Dash, Input, Output, State, html, clientside_callback, no_update
import time
from tests.integration.long_callback.utils import get_long_callback_manager
long_callback_manager = get_long_callback_manager()
handle = long_callback_manager.handle
app = Dash(__name__, long_callback_manager=long_callback_manager)
app.layout = html.Div(
[
html.Button("Start", id="start"),
html.Div(id="output"),
html.Div(id="progress-output"),
html.Div(0, id="progress-counter"),
]
)
clientside_callback(
"function(_, previous) { return parseInt(previous) + 1;}",
Output("progress-counter", "children"),
Input("progress-output", "children"),
State("progress-counter", "children"),
prevent_initial_call=True,
)
@app.callback(
Output("output", "children"),
Input("start", "n_clicks"),
progress=Output("progress-output", "children"),
interval=200,
background=True,
prevent_initial_call=True,
)
def on_bg_progress(set_progress, _):
set_progress("start")
time.sleep(1)
set_progress(no_update)
time.sleep(1)
set_progress("stop")
return "done"
if __name__ == "__main__":
app.run_server(debug=True)