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