import pandas as pd import ydata_profiling import gradio as gr from pydantic_settings import BaseSettings from tempfile import NamedTemporaryFile import sweetviz as sv # from dataprep.datasets import load_dataset # from dataprep.eda import create_report def generate_report(file, type): df = pd.read_csv(file) if file.name.endswith(".csv") else pd.read_excel(file) pandas_html_report =ydata_profiling.ProfileReport(df).to_html() temp_file1 = NamedTemporaryFile(delete=False, suffix=".html") temp_file1.write(pandas_html_report.encode('utf-8')) temp_file1.close() # dataprep_report = create_report(df) # temp_file2 = NamedTemporaryFile(delete=False, suffix=".html") # temp_file2.write(dataprep_report.encode('utf-8')) # temp_file2.close() sweetviz_report = sv.analyze(df) #sweetviz_report=sweetviz_report.show_html() #print(type(sweetviz_report)) report=sweetviz_report.show_html( filepath='SWEETVIZ_REPORT.html', open_browser=False, layout='widescreen', scale=None) HTMLFileToBeOpened = open('SWEETVIZ_REPORT.html', "r") # Reading the file and storing in a variable contents = HTMLFileToBeOpened.read() print(contents)) temp_file3 = NamedTemporaryFile(delete=False, suffix=".html") temp_file3.write(report) temp_file3.close() return temp_file1.name ,temp_file2.name ,temp_file3.name with gr.Blocks() as cluster: with gr.Column(): with gr.Row(): file=gr.File(file_types=['.csv', '.xlsx'], label="Upload a CSV or Excel file") btn=gr.Button(value="Download Report") with gr.Row(): gr.HTML(value="""

PANDAS REPORT

""") out1=gr.File(label="Download CSV") gr.HTML(value="""

DATAPREP REPORT

""") out2=gr.File(label="Download CSV") gr.HTML(value="""

SWEETVIZ REPORT

""") out3=gr.File(label="Download CSV") btn.click(generate_report,inputs=[file],outputs=[out1,out3]) cluster.launch()