simonl0909 commited on
Commit
06df53b
·
1 Parent(s): 5e82ff3

testing progress

Browse files
Files changed (2) hide show
  1. app.py +94 -4
  2. requirements.txt +1 -0
app.py CHANGED
@@ -1,7 +1,97 @@
1
  import gradio as gr
 
 
 
 
 
 
2
 
3
- def greet(name):
4
- return "Hello " + name + "!!"
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- iface = gr.Interface(fn=greet, inputs="text", outputs="text")
7
- iface.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import random
3
+ import time
4
+ import tqdm
5
+ from datasets import load_dataset
6
+ import shutil
7
+ from uuid import uuid4
8
 
9
+ with gr.Blocks() as demo:
10
+ with gr.Row():
11
+ text = gr.Textbox()
12
+ textb = gr.Textbox()
13
+ with gr.Row():
14
+ load_set_btn = gr.Button("Load Set")
15
+ load_nested_set_btn = gr.Button("Load Nested Set")
16
+ load_random_btn = gr.Button("Load Random")
17
+ clean_imgs_btn = gr.Button("Clean Images")
18
+ wait_btn = gr.Button("Wait")
19
+ do_all_btn = gr.Button("Do All")
20
+ track_tqdm_btn = gr.Button("Bind TQDM")
21
+ bind_internal_tqdm_btn = gr.Button("Bind Internal TQDM")
22
 
23
+ text2 = gr.Textbox()
24
+
25
+ # track list
26
+ def load_set(text, text2, progress=gr.Progress()):
27
+ imgs = [None] * 24
28
+ for img in progress.tqdm(imgs, desc="Loading from list"):
29
+ time.sleep(0.1)
30
+ return "done"
31
+ load_set_btn.click(load_set, [text, textb], text2)
32
+
33
+ # track nested list
34
+ def load_nested_set(text, text2, progress=gr.Progress()):
35
+ imgs = [[None] * 8] * 3
36
+ for img_set in progress.tqdm(imgs, desc="Nested list"):
37
+ time.sleep(2)
38
+ for img in progress.tqdm(img_set, desc="inner list"):
39
+ time.sleep(0.1)
40
+ return "done"
41
+ load_nested_set_btn.click(load_nested_set, [text, textb], text2)
42
+
43
+ # track iterable of unknown length
44
+ def load_random(data, progress=gr.Progress()):
45
+ def yielder():
46
+ for i in range(0, random.randint(15, 20)):
47
+ time.sleep(0.1)
48
+ yield None
49
+ for img in progress.tqdm(yielder()):
50
+ pass
51
+ return "done"
52
+ load_random_btn.click(load_random, {text, textb}, text2)
53
+
54
+ # manual progress
55
+ def clean_imgs(text, progress=gr.Progress()):
56
+ progress(0.2, desc="Collecting Images")
57
+ time.sleep(1)
58
+ progress(0.5, desc="Cleaning Images")
59
+ time.sleep(1.5)
60
+ progress(0.8, desc="Sending Images")
61
+ time.sleep(1.5)
62
+ return "done"
63
+ clean_imgs_btn.click(clean_imgs, text, text2)
64
+
65
+ # no progress
66
+ def wait(text):
67
+ time.sleep(4)
68
+ return "done"
69
+ wait_btn.click(wait, text, text2)
70
+
71
+ # multiple progressions
72
+ def do_all(data, progress=gr.Progress()):
73
+ load_set(data[text], data[textb], progress)
74
+ load_random(data, progress)
75
+ clean_imgs(data[text], progress)
76
+ progress(None)
77
+ wait(text)
78
+ return "done"
79
+ do_all_btn.click(do_all, {text, textb}, text2)
80
+
81
+ def track_tqdm(data, progress=gr.Progress(track_tqdm=True)):
82
+ for i in tqdm.tqdm(range(5), desc="outer"):
83
+ for j in tqdm.tqdm(range(4), desc="inner"):
84
+ time.sleep(1)
85
+ return "done"
86
+ track_tqdm_btn.click(track_tqdm, {text, textb}, text2)
87
+
88
+ def bind_internal_tqdm(data, progress=gr.Progress(track_tqdm=True)):
89
+ outdir = "__tmp/" + str(uuid4())
90
+ load_dataset("beans", split="train", cache_dir=outdir)
91
+ shutil.rmtree(outdir)
92
+ return "done"
93
+ bind_internal_tqdm_btn.click(bind_internal_tqdm, {text, textb}, text2)
94
+
95
+
96
+ if __name__ == "__main__":
97
+ demo.queue(concurrency_count=20).launch()
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ datasets