Spaces:
Sleeping
Sleeping
import gradio as gr | |
from queue import PriorityQueue | |
from datetime import datetime | |
pq = PriorityQueue() | |
date_format = '%m-%d-%Y at %H:%M' | |
def writer(pair): | |
final = pair[1] + ' is due on ' | |
final += f'{pair[0].month:02}-{pair[0].day:02}-{pair[0].year} at ' | |
final += f'{pair[0].hour:02}:{pair[0].minute:02}' | |
return final | |
def string_rep(pq): | |
work = "" | |
for element in pq.queue: | |
work += writer(element) + '\n' | |
return work | |
def inputter(date_str = None, item_name = None, add = "Show"): | |
if add == "Show": | |
return string_rep(pq) | |
cur_date = datetime.strptime(date_str, date_format) | |
if add == "Add": | |
pq.put((cur_date, item_name)) | |
else: | |
remove((cur_date, item_name)) | |
return string_rep(pq) | |
def remove(element): | |
temp = PriorityQueue() | |
while not pq.empty(): | |
elem = pq.get() | |
if elem != element: | |
temp.put(elem) | |
pq.queue = temp.queue | |
datebox = gr.Textbox(label="Enter your date here:", placeholder="MM-DD-YYYY at HH:MM") | |
hwbox = gr.Textbox(label="Enter your assignment name here:", placeholder="Work") | |
addbox = gr.Textbox(label="Add or Drop or Show:", placeholder="Add or Drop or Show (Case Sensitive)") | |
ouputbox = gr.Textbox(label="List of Assignments:", placeholder="Homework is due on MM-DD-YYYY at HH:MM", lines = 10) | |
iface = gr.Interface( | |
fn=inputter, | |
inputs=[datebox, hwbox, addbox], | |
outputs=ouputbox, | |
title="Work Prioritzer", | |
) | |
iface.launch() | |