operand / app.py
eogreen's picture
Update app.py
f514d7f verified
raw
history blame
4.36 kB
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<br><br>")
with gr.Tab("Data Source"):
gr.Markdown("## Data Sources")
gr.Markdown("Instances of data sources e.g., Jira Cloud endpoint")
with gr.Accordion("Guide"):
gr.Markdown("data_source <name> <desc> <endpoint> <creds>")
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()