File size: 2,277 Bytes
690ab4e
1
{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: leaderboard\n", "### A simple dashboard ranking spaces by number of likes.\n", "        "]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio "]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["import gradio as gr\n", "import requests\n", "import pandas as pd\n", "from huggingface_hub.hf_api import SpaceInfo\n", "path = f\"https://huggingface.co./api/spaces\"\n", "\n", "\n", "def get_blocks_party_spaces():\n", "    r = requests.get(path)\n", "    d = r.json()\n", "    spaces = [SpaceInfo(**x) for x in d]\n", "    blocks_spaces = {}\n", "    for i in range(0,len(spaces)):\n", "        if spaces[i].id.split('/')[0] == 'Gradio-Blocks' and hasattr(spaces[i], 'likes') and spaces[i].id != 'Gradio-Blocks/Leaderboard' and spaces[i].id != 'Gradio-Blocks/README':\n", "            blocks_spaces[spaces[i].id]=spaces[i].likes\n", "    df = pd.DataFrame(\n", "    [{\"Spaces_Name\": Spaces, \"likes\": likes} for Spaces,likes in blocks_spaces.items()])\n", "    df = df.sort_values(by=['likes'],ascending=False)\n", "    return df\n", "\n", "block = gr.Blocks()\n", "\n", "with block:    \n", "    gr.Markdown(\"\"\"Leaderboard for the most popular Blocks Event Spaces. To learn more and join, see <a href=\"https://huggingface.co./Gradio-Blocks\" target=\"_blank\" style=\"text-decoration: underline\">Blocks Party Event</a>\"\"\")\n", "    with gr.Tabs():\n", "        with gr.TabItem(\"Blocks Party Leaderboard\"):\n", "            with gr.Row():\n", "                data = gr.Dataframe(type=\"pandas\")\n", "            with gr.Row():\n", "                data_run = gr.Button(\"Refresh\")\n", "                data_run.click(get_blocks_party_spaces, inputs=None, outputs=data)\n", "    # running the function on page load in addition to when the button is clicked\n", "    block.load(get_blocks_party_spaces, inputs=None, outputs=data)               \n", "\n", "block.launch()\n", "\n"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5}