Spaces:
Runtime error
Runtime error
import gradio as gr | |
import requests | |
import pandas as pd | |
from huggingface_hub.hf_api import SpaceInfo | |
class BlocksSpace: | |
def __init__(self, url, name): | |
self.url = url | |
self.name = name | |
def fetch_spaces(self): | |
r = requests.get(self.url) | |
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] == self.name and hasattr(spaces[i], 'likes') and spaces[i].id != f'{self.name}/Leaderboard' and spaces[i].id != f'{self.name}/README': | |
blocks_spaces[spaces[i].id]=spaces[i].likes | |
return blocks_spaces | |
def get_spaces_dataframe(self): | |
blocks_spaces = self.fetch_spaces() | |
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() | |
my_blocks_space = BlocksSpace("https://huggingface.co/api/spaces", "Gradio-Blocks") | |
with block: | |
gr.Markdown("""Leaderboard for the most popular Blocks Event Spaces. To learn more and join, see Blocks Party Event""") | |
with gr.Tabs(): | |
with gr.TabItem("Blocks Party Leaderboard"): | |
with gr.Row(): | |
data = gr.outputs.Dataframe(type="pandas") | |
with gr.Row(): | |
data_run = gr.Button("Refresh") | |
data_run.click(my_blocks_space.get_spaces_dataframe, inputs=None, outputs=data) | |
# running the function on page load in addition to when the button is clicked | |
block.load(my_blocks_space.get_spaces_dataframe, inputs=None, outputs=data) | |
block.launch() | |