Petr Tsvetkov commited on
Commit
7af62b1
·
1 Parent(s): 1b24b13

Introduce shuffled index for samples

Browse files

The `next_sample` function and corresponding methods have been updated to bring in a shuffled index for samples. This randomizes the order in which samples are presented to the user. The changes also included some refactoring that removed some lines for a cleaner code.

Files changed (1) hide show
  1. app.py +19 -13
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import uuid
2
 
3
  import gradio as gr
@@ -31,16 +32,20 @@ def update_commit_view(sample_ind):
31
  return github_link_md, diff_json, commit_msg, repo_val, hash_val
32
 
33
 
34
- def next_sample(current_sample_ind):
35
  if current_sample_ind == n_samples:
36
  return None
37
 
38
  current_sample_ind += 1
39
- updated_view = update_commit_view(current_sample_ind)
40
  return (current_sample_ind,) + updated_view
41
 
42
 
43
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
 
 
 
 
44
  with gr.Row():
45
  current_sample_sld = gr.Slider(minimum=0, maximum=n_samples, step=1,
46
  value=0,
@@ -51,8 +56,6 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
51
  container=False,
52
  scale=5)
53
  with gr.Column(scale=1):
54
- repo_val = gr.Textbox(interactive=False, container=False, label='repo', visible=False)
55
- hash_val = gr.Textbox(interactive=False, container=False, label='hash', visible=False)
56
  skip_btn = gr.Button("Skip the current sample")
57
  with gr.Row():
58
  with gr.Column(scale=2):
@@ -96,7 +99,6 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
96
  ]
97
 
98
  feedback_form = [
99
- current_sample_sld,
100
  session_val,
101
  repo_val,
102
  hash_val,
@@ -107,22 +109,26 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
107
 
108
  saver.setup(feedback_form, "feedback")
109
 
110
- skip_btn.click(next_sample, inputs=[current_sample_sld], outputs=[current_sample_sld] + commit_view)
 
111
 
112
 
113
- def submit(*args):
114
- saver.flag(args)
115
- return next_sample(args[0])
116
 
117
 
118
- submit_btn.click(submit, inputs=feedback_form, outputs=[current_sample_sld] + commit_view)
 
119
 
120
 
121
- def init_session(*args):
122
  session = str(uuid.uuid4())
123
- return (session,) + update_commit_view(*args)
 
 
124
 
125
 
126
- demo.load(init_session, inputs=[current_sample_sld], outputs=[session_val] + commit_view)
127
 
128
  demo.launch()
 
1
+ import random
2
  import uuid
3
 
4
  import gradio as gr
 
32
  return github_link_md, diff_json, commit_msg, repo_val, hash_val
33
 
34
 
35
+ def next_sample(current_sample_ind, shuffled_idx):
36
  if current_sample_ind == n_samples:
37
  return None
38
 
39
  current_sample_ind += 1
40
+ updated_view = update_commit_view(shuffled_idx[current_sample_ind])
41
  return (current_sample_ind,) + updated_view
42
 
43
 
44
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
45
+ repo_val = gr.Textbox(interactive=False, label='repo', visible=False)
46
+ hash_val = gr.Textbox(interactive=False, label='hash', visible=False)
47
+ shuffled_idx_val = gr.JSON(visible=False)
48
+
49
  with gr.Row():
50
  current_sample_sld = gr.Slider(minimum=0, maximum=n_samples, step=1,
51
  value=0,
 
56
  container=False,
57
  scale=5)
58
  with gr.Column(scale=1):
 
 
59
  skip_btn = gr.Button("Skip the current sample")
60
  with gr.Row():
61
  with gr.Column(scale=2):
 
99
  ]
100
 
101
  feedback_form = [
 
102
  session_val,
103
  repo_val,
104
  hash_val,
 
109
 
110
  saver.setup(feedback_form, "feedback")
111
 
112
+ skip_btn.click(next_sample, inputs=[current_sample_sld, shuffled_idx_val],
113
+ outputs=[current_sample_sld] + commit_view)
114
 
115
 
116
+ def submit(current_sample, shuffled_idx, *args):
117
+ saver.flag([current_sample] + args)
118
+ return next_sample(current_sample, shuffled_idx)
119
 
120
 
121
+ submit_btn.click(submit, inputs=[current_sample_sld, shuffled_idx_val] + feedback_form,
122
+ outputs=[current_sample_sld] + commit_view)
123
 
124
 
125
+ def init_session(current_sample):
126
  session = str(uuid.uuid4())
127
+ shuffled_idx = list(range(n_samples))
128
+ random.shuffle(shuffled_idx)
129
+ return (session, shuffled_idx) + update_commit_view(shuffled_idx[current_sample])
130
 
131
 
132
+ demo.load(init_session, inputs=[current_sample_sld], outputs=[session_val, shuffled_idx_val] + commit_view)
133
 
134
  demo.launch()