File size: 4,266 Bytes
d714d3d
8fa564a
f894099
60ed47f
49687e4
 
ed88b70
 
49687e4
8d217ca
9265cc1
 
 
 
8d217ca
36b3c9a
62a99f6
 
36b3c9a
c458717
8512e9b
 
62a99f6
 
8e0ab44
62a99f6
8512e9b
f894099
 
3c99043
d714d3d
 
384f0cb
 
3c99043
f894099
60ed47f
75bac5c
 
 
c1d30cd
75bac5c
c1d30cd
75bac5c
f894099
746d0e8
c1e08f5
 
a8a0883
838a98c
813a644
 
1453434
79687a9
eb75b14
746d0e8
eb75b14
 
 
 
746d0e8
eb75b14
746d0e8
eb75b14
746d0e8
 
f6669c0
09974cb
 
1e5a82e
ff4e253
1e5a82e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
09974cb
1f375b6
ef02a4a
36b3c9a
ef02a4a
36b3c9a
8512e9b
 
 
36b3c9a
ef02a4a
1e5a82e
 
 
 
 
746d0e8
ef02a4a
 
9bf98ce
2322049
 
a8a0883
36b3c9a
ef02a4a
09974cb
1e5a82e
75bac5c
09974cb
 
 
1e5a82e
8512e9b
d714d3d
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import gradio as gr
import pandas as pd 
import requests
import json
from datasets import load_dataset

#dataset = load_dataset("nlphuji/flickr30k", split="test[10:20]")
#print (dataset)

#headers = {"Authorization": f"Bearer {API_TOKEN}"}
def query1(fetch_url):
    if fetch_url=="":
        fetch_url = "nlphuji/flickr30k"    
    API_URL1 = f"https://datasets-server.huggingface.co/splits?dataset={fetch_url}"
    response = requests.get(API_URL1)
    json_obj=response.json()

    drop_box = []
    for obj in json_obj:
        print (obj)
        out_config = obj[0]
        out_split = obj[1]
        print (out_config)
        print (out_split)
        drop_box.append(obj[0])
    #df = pd.DataFrame.from_dict(json_obj)        
    return json_obj


def query2(fetch_url,config="TEST",split="test",offset=0,length=10):
    if fetch_url=="":
        fetch_url = "nlphuji/flickr30k"
    #offset=0
    #length=10
    API_URL2 = f"https://datasets-server.huggingface.co/rows?dataset={fetch_url}&config={config}&split={split}&offset={offset}&length={length}"
    response = requests.get(API_URL2)
    dictionary=response.json()
    #print (len(dictionary))
    lvl_1=[]
    
    for key in dictionary:
        lvl_1.append(key)
        print (key)
    return dictionary,gr.update(choices=[l for l in lvl_1])

def find_fn(lvl_1,lvl_2,fetch_url,config="TEST",split="test",offset=0,length=10):
    #print(out_json['rows'])
    #print (inp)
    img_list=[]
    out_json=query2(fetch_url,config,split,offset=10,length=20)
    lvl_1=lvl_1.strip("[]")

    lvl_2=lvl_2.strip('""').strip("''")
    #print(inp)
    cnt_lvl = ""
    if lvl_2 != "":
        ea_lvl_len = len(lvl_2)
        print (ea_lvl_len)
        for ea_lvl in lvl_2:
            cnt_lvl = f'{cnt_lvl}[{ea_lvl}]'
        for ea in out_json[f"{lvl_1}"]:
            cnt_lvl=cnt_lvl.strip("[]")
            #img_ea = ea['row']['image']['src']
            img_list.append(ea[f"{cnt_lvl}"])
    if lvl_2 == "":
        img_list.append(out_json[lvl_1])
    return img_list


def upd_drop(lvl_1,lvl_2,lvl_3,lvl_4,lvl_5,fetch_url,config="TEST",split="test",offset=0,length=10):
    out_json,_=query2(fetch_url,config,split,offset=10,length=20)
    box_1=[]
    box_2=[]
    box_3=[]
    box_4=[]
    box_5=[]
    if lvl_1 !="":
        for ea in (out_json[lvl_1]):
            #print (i)
            print (ea)
            box_1.append(ea)    
        out = box_1
    if lvl_2 !="":
        for ea in (out_json[lvl_1][lvl_2]):
            #print (i)
            print (ea)
            box_2.append(ea)    
        out = box_2
    if lvl_3 !="":
        for ea in (out_json[lvl_1][lvl_2][lvl_3]):
            #print (i)
            print (ea)
            box_3.append(ea)    
        out = box_3  
    if lvl_4 !="":
        for ea in (out_json[lvl_1][lvl_2][lvl_3][lvl_4]):
            #print (i)
            print (ea)
            box_4.append(ea)    
        out = box_4  
    if lvl_5 !="":
        for ea in (out_json[lvl_1][lvl_2][lvl_3][lvl_4][lvl_5]):
            #print (i)
            print (ea)
            box_5.append(ea)    
        out = box_5          
    return out

with gr.Blocks() as app:
    with gr.Row():
        data_set_url=gr.Textbox(label="Dataset (repo/name)")
        fetch_btn=gr.Button()
    with gr.Row():
        config_set=gr.Textbox(label="Config")
        split_set=gr.Textbox(label="Split")
        #config_drop = gr.Dropdown(label="Config/Split", choices=[])
        view_data=gr.Button(label="View")
    with gr.Row():
        lvl_1=gr.Textbox("lvl_1")
        lvl_2=gr.Textbox("lvl_2")
        lvl_3=gr.Textbox("lvl_3")
        lvl_4=gr.Textbox("lvl_4")
        lvl_5=gr.Textbox("lvl_5")
        
        find_btn=gr.Button("Search")
    with gr.Row():
        with gr.Column(scale=1):
            out_json = gr.JSON()
        with gr.Column(scale=3):
            out_find = gr.JSON()
            out_gal = gr.Gallery()


    find_btn.click(upd_drop,[lvl_1,lvl_2,lvl_3,lvl_4,lvl_5,data_set_url,config_set,split_set],out_find)
    view_data.click(query2,[data_set_url,config_set,split_set],[out_find,lvl_1])
    
    
    
    #find_btn.click(find_fn,[lvl_1,lvl_2,data_set_url,config_set,split_set],[out_find])
    fetch_btn.click(query1,data_set_url,out_json)
app.launch()