space_to_dataset_saver / app_json.py
Wauplin's picture
Wauplin HF staff
Update app_json.py
5629fd7
import json
from datetime import datetime
from pathlib import Path
from uuid import uuid4
import gradio as gr
from huggingface_hub import CommitScheduler
JSON_DATASET_DIR = Path("json_dataset")
JSON_DATASET_DIR.mkdir(parents=True, exist_ok=True)
JSON_DATASET_PATH = JSON_DATASET_DIR / f"train-{uuid4()}.json"
scheduler = CommitScheduler(
repo_id="example-space-to-dataset-json",
repo_type="dataset",
folder_path=JSON_DATASET_DIR,
path_in_repo="data",
)
def greet(name: str) -> str:
return "Hello " + name + "!"
def save_json(name: str, greetings: str) -> None:
with scheduler.lock:
with JSON_DATASET_PATH.open("a") as f:
json.dump({"name": name, "greetings": greetings, "datetime": datetime.now().isoformat()}, f)
f.write("\n")
def get_demo():
with gr.Row():
greet_name = gr.Textbox(label="Name")
greet_output = gr.Textbox(label="Greetings")
greet_btn = gr.Button("Greet")
greet_btn.click(fn=greet, inputs=greet_name, outputs=greet_output).success(
fn=save_json,
inputs=[greet_name, greet_output],
outputs=None,
)