ddooling commited on
Commit
3831198
·
1 Parent(s): fd0fa88

updated app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -41
app.py CHANGED
@@ -29,49 +29,52 @@ def add_guess(guess):
29
  guesses = load_guesses()
30
  guesses.append(guess)
31
  save_guesses(guesses)
32
-
33
- n = len(guesses)
34
- average = sum(guesses) / n
35
-
36
- if n >= 2:
37
- # Calculate sample standard deviation
38
- s = statistics.stdev(guesses)
39
- # Calculate standard error
40
- SE = s / (n ** 0.5)
41
- # Degrees of freedom
42
- df = n - 1
43
- # Confidence level (e.g., 95%)
44
- confidence_level = 0.95
45
- alpha = 1 - confidence_level
46
- # Calculate critical t-value
47
- t_value = stats.t.ppf(1 - alpha/2, df)
48
- # Calculate margin of error
49
- ME = t_value * SE
50
- # Calculate confidence interval
51
- ci_lower = average - ME
52
- ci_upper = average + ME
53
- # Prepare output message
54
- return (
55
- f"Your guess has been recorded.\n"
56
- f"Current average of all guesses: {average:.2f}\n"
57
- f"95% confidence interval: ({ci_lower:.2f}, {ci_upper:.2f})"
58
- )
59
- else:
60
- # Not enough data to compute confidence interval
61
- return (
62
- f"Your guess has been recorded.\n"
63
- f"Current average of all guesses: {average:.2f}\n"
64
- f"Not enough data to compute confidence interval."
65
- )
66
 
67
- #demo = gr.Interface(
68
- # fn=add_guess,
69
- # inputs=gr.Number(label="Enter your guess"),
70
- # outputs="text",
71
- # title="Collective Guessing Game",
72
- # description="Submit your guess and contribute to the global average!"
73
- #)
 
 
 
 
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
  with gr.Blocks() as demo:
77
  gr.Markdown("# Collective Guessing Game")
@@ -82,7 +85,10 @@ with gr.Blocks() as demo:
82
 
83
  with gr.Accordion("View Current Results!", open=False):
84
  output_text = gr.Textbox(label="Results", lines=10)
 
85
 
86
  submit_button.click(fn=add_guess, inputs=guess_input, outputs=output_text)
 
 
87
 
88
  demo.launch()
 
29
  guesses = load_guesses()
30
  guesses.append(guess)
31
  save_guesses(guesses)
32
+ return compute_statistics(guesses, include_message=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
+ def get_current_results():
35
+ with lock:
36
+ guesses = load_guesses()
37
+ return compute_statistics(guesses, include_message=False)
38
+
39
+ def compute_statistics(guesses, include_message):
40
+ n = len(guesses)
41
+ if n == 0:
42
+ return "No guesses have been made yet."
43
+
44
+ average = sum(guesses) / n
45
 
46
+ if n >= 2:
47
+ # Calculate sample standard deviation
48
+ s = statistics.stdev(guesses)
49
+ # Calculate standard error
50
+ SE = s / (n ** 0.5)
51
+ # Degrees of freedom
52
+ df = n - 1
53
+ # Confidence level (e.g., 95%)
54
+ confidence_level = 0.95
55
+ alpha = 1 - confidence_level
56
+ # Calculate critical t-value
57
+ t_value = stats.t.ppf(1 - alpha/2, df)
58
+ # Calculate margin of error
59
+ ME = t_value * SE
60
+ # Calculate confidence interval
61
+ ci_lower = average - ME
62
+ ci_upper = average + ME
63
+ # Prepare output message
64
+ message = (
65
+ (f"Your guess has been recorded.\n" if include_message else "") +
66
+ f"Current average of all guesses: {average:.2f}\n"
67
+ f"95% confidence interval: ({ci_lower:.2f}, {ci_upper:.2f})"
68
+ )
69
+ return message
70
+ else:
71
+ # Not enough data to compute confidence interval
72
+ message = (
73
+ (f"Your guess has been recorded.\n" if include_message else "") +
74
+ f"Current average of all guesses: {average:.2f}\n"
75
+ f"Not enough data to compute confidence interval."
76
+ )
77
+ return message
78
 
79
  with gr.Blocks() as demo:
80
  gr.Markdown("# Collective Guessing Game")
 
85
 
86
  with gr.Accordion("View Current Results!", open=False):
87
  output_text = gr.Textbox(label="Results", lines=10)
88
+ refresh_button = gr.Button("Refresh Results")
89
 
90
  submit_button.click(fn=add_guess, inputs=guess_input, outputs=output_text)
91
+ refresh_button.click(fn=get_current_results, outputs=output_text)
92
+ demo.load(fn=get_current_results, outputs=output_text)
93
 
94
  demo.launch()