| import gradio as gr |
| import pandas as pd |
| import plotly.express as px |
| from helpers import retrieve_pip_installs, retrieve_stars, retrieve_issues |
|
|
| 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.Plot(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.Plot(value=plot, visible=True) |
|
|
| def create_star_plot(libraries, star_choices): |
| if "Stars" not in star_choices: |
| return gr.Plot(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.Plot(value=plot, visible=True) |
|
|
| def create_issue_plot(libraries, issue_choices): |
| if "Issue" not in issue_choices: |
| return gr.Plot(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.Plot(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, show_label=False) |
| with gr.Column(): |
| gr.Markdown("## Select graphs to display") |
| pip = gr.CheckboxGroup(choices=["Pip", "Cumulated"], show_label=False) |
| stars = gr.CheckboxGroup(choices=["Stars", "Week over Week"], show_label=False) |
| issues = gr.CheckboxGroup(choices=["Issue", "Exclude org members", "week over week"], show_label=False) |
| 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() |
|
|