|
import gradio as gr |
|
import pandas as pd |
|
import plotly.express as px |
|
from helpers import * |
|
|
|
|
|
LIBRARIES = ["accelerate", "datasets", "diffusers", "evaluate", "gradio", "hub_docs", |
|
"huggingface_hub", "optimum", "pytorch_image_models", "tokenizers", "transformers"] |
|
|
|
|
|
def create_pip_plot(libraries, pip_choices): |
|
if "Pip" not in pip_choices: |
|
return gr.update(visible=False) |
|
output = retrieve_pip_installs(libraries, "Cumulated" in pip_choices) |
|
df = pd.DataFrame(output).melt(id_vars="day") |
|
plot = px.line(df, x="day", y="value", color="variable", |
|
title="Pip installs") |
|
plot.update_layout(legend=dict(x=0.5, y=0.99), title_x=0.5, legend_title_text="") |
|
return gr.update(value=plot, visible=True) |
|
|
|
|
|
def create_star_plot(libraries, star_choices): |
|
if "Stars" not in star_choices: |
|
return gr.update(visible=False) |
|
output = retrieve_stars(libraries, "Week over Week" in star_choices) |
|
df = pd.DataFrame(output).melt(id_vars="day") |
|
plot = px.line(df, x="day", y="value", color="variable", |
|
title="Number of stargazers") |
|
plot.update_layout(legend=dict(x=0.5, y=0.99), title_x=0.5, legend_title_text="") |
|
return gr.update(value=plot, visible=True) |
|
|
|
|
|
def create_issue_plot(libraries, issue_choices): |
|
if "Issue" not in issue_choices: |
|
return gr.update(visible=False) |
|
output = retrieve_issues(libraries, |
|
exclude_org_members="Exclude org members" in issue_choices, |
|
week_over_week="Week over Week" in issue_choices) |
|
df = pd.DataFrame(output).melt(id_vars="day") |
|
plot = px.line(df, x="day", y="value", color="variable", |
|
title="Cumulated number of issues, PRs, and comments", |
|
) |
|
plot.update_layout(legend=dict(x=0.5, y=0.99), title_x=0.5, legend_title_text="") |
|
return gr.update(value=plot, visible=True) |
|
|
|
|
|
with gr.Blocks() as demo: |
|
with gr.Row(): |
|
with gr.Column(): |
|
gr.Markdown("## Select libraries to display") |
|
libraries = gr.CheckboxGroup(choices=LIBRARIES, label="") |
|
with gr.Column(): |
|
gr.Markdown("## Select graphs to display") |
|
pip = gr.CheckboxGroup(choices=["Pip", "Cumulated"], label="") |
|
stars = gr.CheckboxGroup(choices=["Stars", "Week over Week"], label="") |
|
issues = gr.CheckboxGroup(choices=["Issue", "Exclude org members", "week over week"], label="") |
|
with gr.Row(): |
|
fetch = gr.Button(value="Fetch") |
|
with gr.Row(): |
|
with gr.Column(): |
|
pip_plot = gr.Plot(visible=False) |
|
star_plot = gr.Plot(visible=False) |
|
issue_plot = gr.Plot(visible=False) |
|
|
|
fetch.click(create_pip_plot, inputs=[libraries, pip], outputs=pip_plot) |
|
fetch.click(create_star_plot, inputs=[libraries, stars], outputs=star_plot) |
|
fetch.click(create_issue_plot, inputs=[libraries, issues], outputs=issue_plot) |
|
|
|
|
|
if __name__ == "__main__": |
|
demo.launch() |