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