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() |