|
|
|
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 |
|
|
|
|
|
log_file = Path("logs/") / f"data_{uuid.uuid4()}.json" |
|
log_folder = log_file.parent |
|
|
|
repo_id = "operand-logs" |
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with gr.Blocks(theme=gr.themes.Soft()) as operand: |
|
|
|
gr.Markdown("# operand") |
|
gr.Markdown("Data Studio<br><br>") |
|
|
|
with gr.Tab("Data Sources"): |
|
|
|
gr.Markdown("## Data Sources") |
|
gr.Markdown("Instances of data sources e.g., Jira Cloud endpoint") |
|
|
|
with gr.Accordion("Guide"): |
|
gr.Markdown("data_source my-ds-name my-ds-desc my-jira-endpoint, my-jira-creds) |
|
gr.Markdown("data_source my-ds-name my-ds-desc my-jira-endpoint, my-jira-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 Sets"): |
|
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 Transforms"): |
|
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 Analyses"): |
|
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 Visualizations"): |
|
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("Notifications"): |
|
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("Automations"): |
|
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) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
operand.queue() |
|
operand.launch() |