daily-papers / app.py
hysts's picture
hysts HF staff
Update
5884212
raw
history blame
1.66 kB
#!/usr/bin/env python
import gradio as gr
import pandas as pd
from gradio_calendar import Calendar
from papers import PaperList, get_df
DESCRIPTION = "# [Daily Papers](https://huggingface.co/papers)"
with open("last_updated.txt") as f:
last_updated = f.read()
paper_list = PaperList(get_df())
def update_num_papers(df: pd.DataFrame) -> str:
return f"{len(df)} / {len(paper_list.df_raw)}"
with gr.Blocks(css="style.css") as demo:
gr.Markdown(DESCRIPTION)
with gr.Group():
with gr.Row():
start_date = Calendar(label="Start date", type="datetime", value="2023-05-05")
end_date = Calendar(label="End date", type="datetime")
search_title = gr.Textbox(label="Search by title")
num_papers = gr.Textbox(label="Number of papers", value=update_num_papers(paper_list.df_raw), interactive=False)
df = gr.Dataframe(
value=paper_list.df_prettified,
datatype=paper_list.column_datatype,
type="pandas",
interactive=False,
height=1000,
elem_id="table",
column_widths=["10%", "10%", "60%", "10%", "10%"],
wrap=True,
)
gr.Markdown(value=f"Last updated: {last_updated}", elem_id="last-updated")
gr.on(
triggers=[start_date.change, end_date.change, search_title.submit],
fn=paper_list.search,
inputs=[start_date, end_date, search_title],
outputs=df,
api_name=False,
).then(
fn=update_num_papers,
inputs=df,
outputs=num_papers,
queue=False,
api_name=False,
)
if __name__ == "__main__":
demo.queue(api_open=False).launch(show_api=False)