File size: 4,387 Bytes
e75a48e
7ba7074
 
 
 
 
 
d52d7a5
7ba7074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9aefa6d
83eb289
7ba7074
 
 
 
dfa8bc0
 
7ba7074
 
dfa8bc0
f961b92
7ba7074
 
f514d7f
998ddcc
 
 
d52d7a5
ee053e6
 
 
2ceea22
a03eb9f
6452dd6
 
98cf158
9aefa6d
2f0eac0
6f14589
2f0eac0
 
7af5cb9
2c5ebf8
8f50f98
 
 
ece39d2
9aefa6d
7af5cb9
 
2f0eac0
 
7af5cb9
2c5ebf8
ece39d2
9aefa6d
7af5cb9
 
2f0eac0
 
7af5cb9
2c5ebf8
ece39d2
9aefa6d
7af5cb9
 
2f0eac0
 
b7f426c
2c5ebf8
2ceea22
9aefa6d
7af5cb9
 
9aefa6d
 
 
2c5ebf8
2ceea22
9aefa6d
7af5cb9
 
9aefa6d
 
 
2c5ebf8
2ceea22
9aefa6d
7af5cb9
 
9aefa6d
 
 
2c5ebf8
2ceea22
7ba7074
ece39d2
 
 
 
 
 
d52d7a5
ee053e6
 
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

from warnings import filterwarnings
filterwarnings('ignore')

import os
import uuid
import json
import gradio as gr
import pandas as pd
from huggingface_hub import CommitScheduler
from pathlib import Path

# Configure the logging functionality
log_file = Path("logs/") / f"data_{uuid.uuid4()}.json"
log_folder = log_file.parent

repo_id = "operand-logs"

# Create a commit scheduler
scheduler = CommitScheduler(
    repo_id=repo_id,
    repo_type="dataset",
    folder_path=log_folder,
    path_in_repo="data",
    every=2
)

def process_command(command, ddddd):
    print('foo...')
    with scheduler.lock:
        with log_file.open("a") as f:
            f.write(json.dumps(
                {
                    'p1': 'foo',
                    'p2': 100
                }
            ))
            f.write("\n")
    return 42

# Set-up the Gradio UI
#textbox = gr.Textbox(label='Command')
# company = gr.Radio(label='Company:',
#                    choices=["aws", "google", "IBM", "Meta", "msft"],
#                    value="aws")

# Create Gradio interface with tabs
with gr.Blocks(theme=gr.themes.Soft()) as operand:
    
    gr.Markdown("# operand")
    gr.Markdown("No-code Data Automation Studio<br><br>")
    
    with gr.Tab("Source"):
        
        gr.Markdown("## Source")
        gr.Markdown("Instances of data sources e.g., Jira Cloud endpoint, Trello endpoint, Github endpoint")

        textbox_a = gr.Textbox(label='Command')
        output_a = gr.Textbox(label='Output')
        button_a = gr.Button("Submit")
        button_a.click(process_command, inputs=[textbox_a], outputs=output_a)

        with gr.Accordion("Syntax"):
            gr.Markdown("<br>data_source my-ds-name1 my-ds-desc1 my-jira-endpoint1 my-jira-creds1")
    
    with gr.Tab("Set"):
        gr.Markdown("## Data Set")
        gr.Markdown("A data set from a data source.")
        textbox_b = gr.Textbox(label='Command')
        output_b = gr.Textbox(label='Output')
        button_b = gr.Button("Submit")
        button_b.click(process_command, inputs=[textbox_b], outputs=output_b)
    
    with gr.Tab("Transform"):
        gr.Markdown("## Data Transform")
        gr.Markdown("A transformation of a data set into a new data set.")
        textbox_c = gr.Textbox(label='Command')
        output_c = gr.Textbox(label='Output')
        button_c = gr.Button("Submit")
        button_c.click(process_command, inputs=[textbox_c], outputs=output_c)

    with gr.Tab("Analysis"):
        gr.Markdown("## Data Analysis")
        gr.Markdown("Statistical analysis of a data set e.g., slope calculation on feature")
        textbox_d = gr.Textbox(label='Command')
        output_d = gr.Textbox(label='Output')
        button_d = gr.Button("Submit")
        button_d.click(process_command, inputs=[textbox_d], outputs=output_d)

    with gr.Tab("Visualization"):
        gr.Markdown("## Data Visualization")
        gr.Markdown("A visual insight from a data set or data analysis results e.g., matplotlib, sns, plotly")
        textbox_e = gr.Textbox(label='Command')
        output_e = gr.Textbox(label='Output')
        button_e = gr.Button("Submit")
        button_e.click(process_command, inputs=[textbox_e], outputs=output_e)

    with gr.Tab("Notification"):
        gr.Markdown("## Notifications")
        gr.Markdown("Scheduled transmission of data set, data analysis or data visualization direct to user device")
        textbox_f = gr.Textbox(label='Command')
        output_f = gr.Textbox(label='Output')
        button_f = gr.Button("Submit")
        button_f.click(process_command, inputs=[textbox_f], outputs=output_f)

    with gr.Tab("Automation"):
        gr.Markdown("## Automation")
        gr.Markdown("Multistep composition of functional elements")
        textbox_g = gr.Textbox(label='Command')
        output_g = gr.Textbox(label='Output')
        button_g = gr.Button("Submit")
        button_g.click(process_command, inputs=[textbox_g], outputs=output_g)
        
# For the inputs parameter of Interface provide [textbox,company] with outputs parameter of Interface provide prediction
# demo = gr.Interface(fn=dprocess,
#                     inputs=[textbox],
#                     outputs="text",
#                     title="operand",
#                     description="Data Workbench CLI",
#                     theme=gr.themes.Soft())

operand.queue()
operand.launch()