operand / app.py
eogreen's picture
Update app.py
12dd403 verified
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("## Data Sources")
# 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 Sets")
# 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 Transforms")
# 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 Analyses")
# 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 Visualizations")
# 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
operand = gr.Interface(fn=process_command,
inputs=[textbox],
outputs="text",
title="operand",
description="Data Workbench CLI",
theme=gr.themes.Soft())
operand.queue()
operand.launch()