import os import requests import pandas as pd import gradio as gr from huggingface_hub.hf_api import SpaceInfo from pathlib import Path path = f"https://huggingface.co/api/spaces" os.system("git clone https://github.com/YangtaoWANG95/TokenCut.git") os.chdir("TokenCut") os.system("wget https://raw.githubusercontent.com/YangtaoWANG95/TokenCut/master/examples/VOC07_000064.jpg -O parrot.jpg") def get_blocks_party_spaces(): r = requests.get(path) d = r.json() spaces = [SpaceInfo(**x) for x in d] blocks_spaces = {} for i in range(0,len(spaces)): if spaces[i].id.split('/')[0] == 'CVPR' and hasattr(spaces[i], 'likes') and spaces[i].id != 'CVPR/Leaderboard' and spaces[i].id != 'CVPR/README': blocks_spaces[spaces[i].id]=spaces[i].likes df = pd.DataFrame( [{"Spaces_Name": Spaces, "likes": likes} for Spaces,likes in blocks_spaces.items()]) df = df.sort_values(by=['likes'],ascending=False) return df block = gr.Blocks() with block: gr.Markdown("""Leaderboard for the most popular CVPR Spaces. To learn more and join, see CVPR Event""") with gr.Tabs(): with gr.TabItem("CVPR Leaderboard"): with gr.Row(): data = gr.outputs.Dataframe(type="pandas") with gr.Row(): data_run = gr.Button("Refresh") data_run.click(get_blocks_party_spaces, inputs=None, outputs=data) block.load(get_blocks_party_spaces, inputs=None, outputs=data) block.launch()