Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| #!/usr/bin/env python | |
| import gradio as gr | |
| import pandas as pd | |
| from papers import PaperList | |
| DESCRIPTION = "# ICLR 2024 Papers" | |
| TUTORIAL = """\ | |
| #### Tutorial for claiming the ICLR 2024 papers | |
| 1. Find your paper in the table below. | |
| 2. Click on the Paper page link in the table. | |
| 3. Click on your name in the corresponding Paper page. | |
| 4. Click “claim authorship”. | |
| - This will redirect you to the Papers section of your Settings. | |
| 5. Confirm the request in the redirected page. | |
| The admin team will validate your request soon. Once confirmed, the Paper page will show as verified. | |
| If you need further assistance, see the guide [here](https://huggingface.co/docs/hub/paper-pages#claiming-authorship-to-a-paper). | |
| If your paper is not yet indexed on Hugging Face, you can index it by following this [guide](https://huggingface.co/docs/hub/paper-pages#can-i-have-a-paper-page-even-if-i-have-no-modeldatasetspace) and open a PR with [this Space](https://huggingface.co/spaces/ICLR2024/update-ICLR2024-papers) to add your Paper page to this Space. | |
| #### Tutorial for creating a PR | |
| To add data to the table below, please use [this Space](https://huggingface.co/spaces/ICLR2024/update-ICLR2024-papers) to create a PR. | |
| """ | |
| paper_list = PaperList() | |
| DEFAULT_COLUMNS = [ | |
| "Title", | |
| "Type", | |
| "Paper page", | |
| "👍", | |
| "💬", | |
| "OpenReview", | |
| "Project page", | |
| "GitHub", | |
| "Spaces", | |
| "Models", | |
| ] | |
| def update_num_papers(df: pd.DataFrame) -> str: | |
| if "claimed" in df.columns: | |
| return f"{len(df)} / {len(paper_list.df_raw)} ({len(df[df['claimed'].str.contains('✅')])} claimed)" | |
| return f"{len(df)} / {len(paper_list.df_raw)}" | |
| def update_df( | |
| title_search_query: str, | |
| abstract_search_query: str, | |
| max_num_to_retrieve: int, | |
| filter_names: list, | |
| presentation_type: str, | |
| column_names: list[str], | |
| ) -> pd.DataFrame: | |
| return gr.DataFrame( | |
| value=paper_list.search( | |
| title_search_query, | |
| abstract_search_query, | |
| max_num_to_retrieve, | |
| filter_names, | |
| presentation_type, | |
| column_names, | |
| ), | |
| datatype=paper_list.get_column_datatypes(column_names), | |
| ) | |
| with gr.Blocks(css_paths="style.css") as demo: | |
| gr.Markdown(DESCRIPTION) | |
| with gr.Accordion(label="Tutorial", open=True): | |
| gr.Markdown(TUTORIAL) | |
| with gr.Group(): | |
| search_title = gr.Textbox(label="Search title") | |
| with gr.Row(): | |
| with gr.Column(scale=4): | |
| search_abstract = gr.Textbox( | |
| label="Search abstract", | |
| info="The result may not be accurate as the abstract does not contain all the information.", | |
| ) | |
| with gr.Column(scale=1): | |
| max_num_to_retrieve = gr.Slider( | |
| label="Max number to retrieve", | |
| info="This is used only for search on abstracts.", | |
| minimum=1, | |
| maximum=len(paper_list.df_raw), | |
| step=1, | |
| value=100, | |
| ) | |
| filter_names = gr.CheckboxGroup( | |
| label="Filter", | |
| choices=[ | |
| "Paper page", | |
| "GitHub", | |
| "Space", | |
| "Model", | |
| "Dataset", | |
| ], | |
| ) | |
| presentation_type = gr.Radio( | |
| label="Presentation Type", | |
| choices=["(ALL)", "Oral", "Spotlight Poster", "Poster"], | |
| value="(ALL)", | |
| ) | |
| column_names = gr.CheckboxGroup(label="Columns", choices=paper_list.get_column_names(), value=DEFAULT_COLUMNS) | |
| num_papers = gr.Textbox( | |
| label="Number of papers", value=update_num_papers(paper_list.df_prettified), interactive=False | |
| ) | |
| df = gr.Dataframe( | |
| value=paper_list.df_prettified, | |
| datatype=paper_list.get_column_datatypes(paper_list.get_column_names()), | |
| type="pandas", | |
| row_count=(0, "dynamic"), | |
| interactive=False, | |
| max_height=1000, | |
| elem_id="table", | |
| wrap=True, | |
| ) | |
| inputs = [ | |
| search_title, | |
| search_abstract, | |
| max_num_to_retrieve, | |
| filter_names, | |
| presentation_type, | |
| column_names, | |
| ] | |
| gr.on( | |
| triggers=[ | |
| search_title.submit, | |
| search_abstract.submit, | |
| filter_names.input, | |
| presentation_type.input, | |
| column_names.input, | |
| ], | |
| fn=update_df, | |
| inputs=inputs, | |
| outputs=df, | |
| api_name=False, | |
| ).then( | |
| fn=update_num_papers, | |
| inputs=df, | |
| outputs=num_papers, | |
| queue=False, | |
| api_name=False, | |
| ) | |
| demo.load( | |
| fn=update_df, | |
| inputs=inputs, | |
| 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) | |