File size: 1,044 Bytes
a5be261
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import gradio as gr
import pandas as pd
from collections import defaultdict

df = pd.read_csv("./stackv2_languages.csv")

langs = list(df["language"].unique())
exts = list(df["extension"].unique())


lang_to_ext = defaultdict(list)

for ext, lang in zip(df["language"], df["extension"]):
    lang_to_ext[lang].append(ext)

def compute(lang):
    
    report = f"## Summary:\n\n The '{lang}' language has {len(lang_to_ext[lang])} extensions: {', '.join(lang_to_ext[lang])}.\n\n"
    df_lang = df[df["language"]==lang]

    for i, (ext, example) in enumerate(zip(df["extension"], df["example"])):
        example_string = f"Example {i+1} (ext={ext}):\n\n ```\n{example}\n```\n\n"
        report += example_string

    return report.strip()

with gr.Blocks() as demo:
    gr.Markdown("# Programming Languages for The Stack v2")

    lang_select = gr.Dropdown(choices=langs)
    md = gr.Markdown("")

    lang_select.change(fn=compute, inputs=[lang_select], outputs=[md])
    demo.load(fn=compute, inputs=[lang_select], outputs=[md])
demo.launch()