ThumbOT / app.py
EmilyWitko's picture
EmilyWitko HF staff
Update app.py
ec946a9 verified
raw
history blame contribute delete
No virus
2.23 kB
import gradio as gr
from datetime import date, timedelta
# Initialize counters and logs
total_exercises_completed = 0
days_completed = 0
last_reset = date.today() - timedelta(days=1)
exercise_log = {f"Exercise {i+1}": 0 for i in range(8)}
def reset_tracker():
global total_exercises_completed, days_completed, last_reset, exercise_log
if date.today() > last_reset:
all_done_today = all(count >= 6 for count in exercise_log.values())
if all_done_today:
days_completed += 1
exercise_log = {f"Exercise {i+1}": 0 for i in range(8)}
last_reset = date.today()
total_exercises_completed = sum(exercise_log.values())
exercise_log_str = "\n".join(f"{name}: {count}" for name, count in exercise_log.items())
return exercise_log_str, total_exercises_completed, days_completed
def update_exercise(button_name):
global exercise_log, total_exercises_completed, last_reset
if date.today() > last_reset:
reset_tracker()
if exercise_log[button_name] < 6:
exercise_log[button_name] += 1
total_exercises_completed += 1 # Increment on each exercise completion.
exercise_log_str = "\n".join(f"{name}: {count}" for name, count in exercise_log.items())
return exercise_log_str, total_exercises_completed, days_completed
with gr.Blocks() as app:
gr.Markdown("## Physical Therapy Exercise Tracker")
exercise_log_text = gr.Textbox(label="Exercise Log", lines=10, value="Please press an exercise button to start tracking")
total_exercises_completed_num = gr.Number(label="Total Exercises Completed", value=total_exercises_completed)
days_completed_num = gr.Number(label="Days Completed", value=days_completed)
with gr.Row():
for i in range(8):
btn = gr.Button(f"Exercise {i+1}")
btn.click(
fn=update_exercise,
inputs=[btn],
outputs=[exercise_log_text, total_exercises_completed_num, days_completed_num]
)
reset_button = gr.Button("Reset Daily Tracker")
reset_button.click(
fn=reset_tracker,
inputs=[],
outputs=[exercise_log_text, total_exercises_completed_num, days_completed_num]
)
app.launch()