chinmayc3 commited on
Commit
3b8313a
Β·
1 Parent(s): 3a19191

moved writing to queue to not wait for results to be written

Browse files
Files changed (1) hide show
  1. app.py +52 -34
app.py CHANGED
@@ -5,9 +5,9 @@ import os
5
  import random
6
  import tempfile
7
  import time
 
 
8
 
9
- import boto3
10
- import fsspec
11
  import librosa
12
  import numpy as np
13
  import pandas as pd
@@ -16,9 +16,19 @@ import streamlit as st
16
  from audio_recorder_streamlit import audio_recorder
17
 
18
  from logger import logger
19
- from utils import fs,s3_client
20
  from enums import SAVE_PATH, ELO_JSON_PATH, ELO_CSV_PATH, EMAIL_PATH, TEMP_DIR, CREATE_TASK_URL
21
 
 
 
 
 
 
 
 
 
 
 
22
  def create_files():
23
  if not fs.exists(SAVE_PATH):
24
  logger.info("Creating save file")
@@ -214,13 +224,15 @@ def on_option_1_click():
214
  st.session_state.option_1_model_name_state = f"πŸ‘‘ {st.session_state.option_1_model_name} πŸ‘‘"
215
  st.session_state.option_2_model_name_state = f"πŸ‘Ž {st.session_state.option_2_model_name} πŸ‘Ž"
216
  st.session_state.choice = f"You chose Option 1. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
217
- result_writer.write_result(
218
- st.session_state.user_email,
219
- st.session_state.audio_path,
220
- winner_model=st.session_state.option_1_model_name,
221
- loser_model=st.session_state.option_2_model_name,
222
- option_1_duration_info=[(f"{st.session_state.option_1_model_name}_duration",st.session_state.option_1_response_time)],
223
- option_2_duration_info=[(f"{st.session_state.option_2_model_name}_duration",st.session_state.option_2_response_time)]
 
 
224
  )
225
  st.session_state.option_selected = True
226
 
@@ -230,13 +242,15 @@ def on_option_2_click():
230
  st.session_state.option_2_model_name_state = f"πŸ‘‘ {st.session_state.option_2_model_name} πŸ‘‘"
231
  st.session_state.option_1_model_name_state = f"πŸ‘Ž {st.session_state.option_1_model_name} πŸ‘Ž"
232
  st.session_state.choice = f"You chose Option 2. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
233
- result_writer.write_result(
234
- st.session_state.user_email,
235
- st.session_state.audio_path,
236
- winner_model=st.session_state.option_2_model_name,
237
- loser_model=st.session_state.option_1_model_name,
238
- option_1_duration_info=[(f"{st.session_state.option_1_model_name}_duration",st.session_state.option_1_response_time)],
239
- option_2_duration_info=[(f"{st.session_state.option_2_model_name}_duration",st.session_state.option_2_response_time)]
 
 
240
  )
241
  st.session_state.option_selected = True
242
 
@@ -246,14 +260,16 @@ def on_option_both_click():
246
  st.session_state.option_2_model_name_state = f"πŸ‘‘ {st.session_state.option_2_model_name} πŸ‘‘"
247
  st.session_state.option_1_model_name_state = f"πŸ‘‘ {st.session_state.option_1_model_name} πŸ‘‘"
248
  st.session_state.choice = f"You chose Prefer both. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
249
- result_writer.write_result(
250
- st.session_state.user_email,
251
- st.session_state.audio_path,
252
- winner_model=st.session_state.option_1_model_name,
253
- loser_model=st.session_state.option_2_model_name,
254
- option_1_duration_info=[(f"{st.session_state.option_1_model_name}_duration",st.session_state.option_1_response_time)],
255
- option_2_duration_info=[(f"{st.session_state.option_2_model_name}_duration",st.session_state.option_2_response_time)],
256
- both_preferred=True
 
 
257
  )
258
  st.session_state.option_selected = True
259
 
@@ -263,14 +279,15 @@ def on_option_none_click():
263
  st.session_state.option_1_model_name_state = f"πŸ‘Ž {st.session_state.option_1_model_name} πŸ‘Ž"
264
  st.session_state.option_2_model_name_state = f"πŸ‘Ž {st.session_state.option_2_model_name} πŸ‘Ž"
265
  st.session_state.choice = f"You chose none option. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
266
- result_writer.write_result(
267
- st.session_state.user_email,
268
- st.session_state.audio_path,
269
- winner_model=st.session_state.option_1_model_name,
270
- loser_model=st.session_state.option_2_model_name,
271
- option_1_duration_info=[(f"{st.session_state.option_1_model_name}_duration",st.session_state.option_1_response_time)],
272
- option_2_duration_info=[(f"{st.session_state.option_2_model_name}_duration",st.session_state.option_2_response_time)],
273
- none_preferred=True
 
274
  )
275
  st.session_state.option_selected = True
276
 
@@ -297,7 +314,8 @@ def on_random_click():
297
  st.session_state.audio_path = filepath
298
  st.session_state.option_selected = None
299
 
300
- result_writer = ResultWriter(SAVE_PATH)
 
301
 
302
  def main():
303
 
 
5
  import random
6
  import tempfile
7
  import time
8
+ import threading
9
+ from queue import Queue
10
 
 
 
11
  import librosa
12
  import numpy as np
13
  import pandas as pd
 
16
  from audio_recorder_streamlit import audio_recorder
17
 
18
  from logger import logger
19
+ from utils import fs
20
  from enums import SAVE_PATH, ELO_JSON_PATH, ELO_CSV_PATH, EMAIL_PATH, TEMP_DIR, CREATE_TASK_URL
21
 
22
+ result_queue = Queue()
23
+
24
+ def result_writer_thread():
25
+ result_writer = ResultWriter(SAVE_PATH)
26
+ while True:
27
+ result_input = result_queue.get()
28
+ result_writer.write_result(**result_input)
29
+ result_queue.task_done()
30
+
31
+
32
  def create_files():
33
  if not fs.exists(SAVE_PATH):
34
  logger.info("Creating save file")
 
224
  st.session_state.option_1_model_name_state = f"πŸ‘‘ {st.session_state.option_1_model_name} πŸ‘‘"
225
  st.session_state.option_2_model_name_state = f"πŸ‘Ž {st.session_state.option_2_model_name} πŸ‘Ž"
226
  st.session_state.choice = f"You chose Option 1. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
227
+ result_queue.put(
228
+ {
229
+ "user_email": st.session_state.user_email,
230
+ "audio_path": st.session_state.audio_path,
231
+ "winner_model": st.session_state.option_1_model_name,
232
+ "loser_model": st.session_state.option_2_model_name,
233
+ "option_1_duration_info": [(f"{st.session_state.option_1_model_name}_duration",st.session_state.option_1_response_time)],
234
+ "option_2_duration_info": [(f"{st.session_state.option_2_model_name}_duration",st.session_state.option_2_response_time)]
235
+ }
236
  )
237
  st.session_state.option_selected = True
238
 
 
242
  st.session_state.option_2_model_name_state = f"πŸ‘‘ {st.session_state.option_2_model_name} πŸ‘‘"
243
  st.session_state.option_1_model_name_state = f"πŸ‘Ž {st.session_state.option_1_model_name} πŸ‘Ž"
244
  st.session_state.choice = f"You chose Option 2. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
245
+ result_queue.put(
246
+ {
247
+ "user_email": st.session_state.user_email,
248
+ "audio_path": st.session_state.audio_path,
249
+ "winner_model": st.session_state.option_2_model_name,
250
+ "loser_model": st.session_state.option_1_model_name,
251
+ "option_1_duration_info": [(f"{st.session_state.option_1_model_name}_duration",st.session_state.option_1_response_time)],
252
+ "option_2_duration_info": [(f"{st.session_state.option_2_model_name}_duration",st.session_state.option_2_response_time)]
253
+ }
254
  )
255
  st.session_state.option_selected = True
256
 
 
260
  st.session_state.option_2_model_name_state = f"πŸ‘‘ {st.session_state.option_2_model_name} πŸ‘‘"
261
  st.session_state.option_1_model_name_state = f"πŸ‘‘ {st.session_state.option_1_model_name} πŸ‘‘"
262
  st.session_state.choice = f"You chose Prefer both. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
263
+ result_queue.put(
264
+ {
265
+ "user_email": st.session_state.user_email,
266
+ "audio_path": st.session_state.audio_path,
267
+ "winner_model": st.session_state.option_1_model_name,
268
+ "loser_model": st.session_state.option_2_model_name,
269
+ "option_1_duration_info": [(f"{st.session_state.option_1_model_name}_duration",st.session_state.option_1_response_time)],
270
+ "option_2_duration_info": [(f"{st.session_state.option_2_model_name}_duration",st.session_state.option_2_response_time)],
271
+ "both_preferred": True
272
+ }
273
  )
274
  st.session_state.option_selected = True
275
 
 
279
  st.session_state.option_1_model_name_state = f"πŸ‘Ž {st.session_state.option_1_model_name} πŸ‘Ž"
280
  st.session_state.option_2_model_name_state = f"πŸ‘Ž {st.session_state.option_2_model_name} πŸ‘Ž"
281
  st.session_state.choice = f"You chose none option. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
282
+ result_queue.put({
283
+ "user_email": st.session_state.user_email,
284
+ "audio_path": st.session_state.audio_path,
285
+ "winner_model": st.session_state.option_1_model_name,
286
+ "loser_model": st.session_state.option_2_model_name,
287
+ "option_1_duration_info": [(f"{st.session_state.option_1_model_name}_duration",st.session_state.option_1_response_time)],
288
+ "option_2_duration_info": [(f"{st.session_state.option_2_model_name}_duration",st.session_state.option_2_response_time)],
289
+ "none_preferred": True
290
+ }
291
  )
292
  st.session_state.option_selected = True
293
 
 
314
  st.session_state.audio_path = filepath
315
  st.session_state.option_selected = None
316
 
317
+ writer_thread = threading.Thread(target=result_writer_thread)
318
+ writer_thread.start()
319
 
320
  def main():
321