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 dprocess(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
# Set-up the Gradio UI
# Create Gradio interface with tabs
with gr.Blocks(theme=gr.themes.Soft()) as operand:
gr.Markdown("# operand")
gr.Markdown("Data Studio
")
with gr.Tab("Data Source"):
gr.Markdown("## Data Sources")
gr.Markdown("Instances of data sources e.g., Jira Cloud endpoint")
with gr.Accordion("See Details"):
gr.Markdown("lorem ipsum")
textbox_a = gr.Textbox(label='Command A')
output_a = gr.Textbox(label='Output A')
button_a = gr.Button("Submit")
button_a.click(dprocess, inputs=[textbox_a], outputs=output_a)
with gr.Tab("Data Set"):
gr.Markdown("## Data Set")
gr.Markdown("A data set from a data source.")
textbox_b = gr.Textbox(label='Command B')
output_b = gr.Textbox(label='Output B')
button_b = gr.Button("Submit")
button_b.click(dprocess, inputs=[textbox_b], outputs=output_b)
with gr.Tab("Data Transform"):
gr.Markdown("## Data Transform")
gr.Markdown("A transformation of a data set into a new data set.")
textbox_c = gr.Textbox(label='Command C')
output_c = gr.Textbox(label='Output C')
button_c = gr.Button("Submit")
button_c.click(dprocess, inputs=[textbox_c], outputs=output_c)
with gr.Tab("Data 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 C')
output_d = gr.Textbox(label='Output C')
button_d = gr.Button("Submit")
button_d.click(dprocess, inputs=[textbox_d], outputs=output_d)
with gr.Tab("Data Visualization"):
gr.Markdown("## Data Visualization")
gr.Markdown("A visual insight from a data set or data analysis results e.g., matplotlib, sns, plotly")
textbox_c = gr.Textbox(label='Command C')
output_c = gr.Textbox(label='Output C')
button_c = gr.Button("Submit")
button_c.click(dprocess, inputs=[textbox_c], outputs=output_c)
with gr.Tab("Notification"):
gr.Markdown("## Notifications")
gr.Markdown("Scheduled transmission of data set, data analysis or data visualization direct to user device")
textbox_c = gr.Textbox(label='Command C')
output_c = gr.Textbox(label='Output C')
button_c = gr.Button("Submit")
button_c.click(dprocess, inputs=[textbox_c], outputs=output_c)
with gr.Tab("Automation"):
gr.Markdown("## Automation")
gr.Markdown("Multistep composition of functional elements")
textbox_c = gr.Textbox(label='Command C')
output_c = gr.Textbox(label='Output C')
button_c = gr.Button("Submit")
button_c.click(dprocess, inputs=[textbox_c], outputs=output_c)
# 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()