File size: 1,363 Bytes
d151dad 6bfef54 d151dad 6bfef54 d151dad 6bfef54 d151dad 6bfef54 d151dad 6bfef54 d151dad 6bfef54 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import pandas_profiling as pp
from huggingface_hub.hf_api import create_repo
from huggingface_hub.repository import Repository
import gradio as gr
import pandas as pd
import subprocess
import os
import tempfile
token = gr.Textbox(label = "Your Hugging Face Token")
username = gr.Textbox(label = "Your Hugging Face User name")
dataset_name = gr.Textbox(label = "Dataset Name")
dataset = gr.File(label = "Dataset")
output_text = gr.Textbox(label = "Status")
def profile_dataset(dataset, username, token, dataset_name):
df = pd.read_csv(dataset.name)
profile = pp.ProfileReport(df, title=f"{dataset_name} Report")
repo_url = create_repo(f"{username}/{dataset_name}", repo_type = "space", token = token, space_sdk = "static")
subprocess.run(
f"git clone {repo_url}".split(),
encoding="utf-8",
cwd= os.getcwd(),
check=True,
env=os.environ.copy(),
)
repo = Repository(
clone_from = repo_url,
local_dir=f"{username}/{dataset_name}"
)
profile.to_file(f"{username}/{dataset_name}/index.html")
repo.git_add()
repo.git_commit(commit_message = "Dataset report")
repo.git_push()
return f"Your dataset report will be ready at {repo_url}"
gr.Interface(profile_dataset, inputs = [dataset, username, token, dataset_name], outputs=[output_text], enable_queue = True).launch(debug=True) |