nolanzandi commited on
Commit
73a1633
·
verified ·
1 Parent(s): 8282cb1
data_sources/upload_file.py CHANGED
@@ -8,9 +8,21 @@ def get_delimiter(file_path, bytes = 4096):
8
  delimiter = sniffer.sniff(data).delimiter
9
  return delimiter
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  def process_data_upload(data_file, session_hash):
12
- delimiter = get_delimiter(data_file)
13
- df = pd.read_csv(data_file, sep=delimiter)
14
 
15
  # Read each sheet and store data in a DataFrame
16
  #data = df.parse(sheet_name)
 
8
  delimiter = sniffer.sniff(data).delimiter
9
  return delimiter
10
 
11
+ def read_file(file):
12
+ if file.endswith(('.csv', '.tsv', '.txt')) :
13
+ df = pd.read_csv(file, sep=get_delimiter(file))
14
+ elif file.endswith('.json'):
15
+ df = pd.read_json(file)
16
+ elif file.endswith('.xml'):
17
+ df = pd.read_xml(file)
18
+ elif file.endswith(('.xls','xlsx')):
19
+ df = pd.read_excel(file)
20
+ else:
21
+ raise ValueError(f'Unsupported filetype: {file}')
22
+ return df
23
+
24
  def process_data_upload(data_file, session_hash):
25
+ df = read_file(data_file)
 
26
 
27
  # Read each sheet and store data in a DataFrame
28
  #data = df.parse(sheet_name)
functions/chat_functions.py CHANGED
@@ -73,14 +73,14 @@ css= ".file_marker .large{min-height:50px !important;} .example_btn{max-width:30
73
 
74
  with gr.Blocks(css=css) as demo:
75
  title = gr.HTML("<h1 style='text-align:center;'>Virtual Data Analyst</h1>")
76
- description = gr.HTML("<p style='text-align:center;'>Upload a CSV file and chat with our virtual data analyst to get insights on your data set</p>")
77
  example_file_1 = gr.File(visible=False, value="samples/bank_marketing_campaign.csv")
78
  example_file_2 = gr.File(visible=False, value="samples/online_retail_data.csv")
79
  with gr.Row():
80
  example_btn_1 = gr.Button(value="Try Me: bank_marketing_campaign.csv", elem_classes="example_btn", size="md", variant="primary")
81
  example_btn_2 = gr.Button(value="Try Me: online_retail_data.csv", elem_classes="example_btn", size="md", variant="primary")
82
 
83
- file_output = gr.File(label="CSV File", show_label=True, elem_classes="file_marker", file_types=['.csv'])
84
  example_btn_1.click(fn=run_example, inputs=example_file_1, outputs=file_output)
85
  example_btn_2.click(fn=run_example, inputs=example_file_2, outputs=file_output)
86
  file_output.change(fn=example_display, inputs=file_output, outputs=[example_btn_1, example_btn_2])
 
73
 
74
  with gr.Blocks(css=css) as demo:
75
  title = gr.HTML("<h1 style='text-align:center;'>Virtual Data Analyst</h1>")
76
+ description = gr.HTML("<p style='text-align:center;'>Upload a data file and chat with our virtual data analyst to get insights on your data set. Currently accepts CSV, TSV, TXT, XLS, XLSX, XML, and JSON files. Try a sample file to get started!</p>")
77
  example_file_1 = gr.File(visible=False, value="samples/bank_marketing_campaign.csv")
78
  example_file_2 = gr.File(visible=False, value="samples/online_retail_data.csv")
79
  with gr.Row():
80
  example_btn_1 = gr.Button(value="Try Me: bank_marketing_campaign.csv", elem_classes="example_btn", size="md", variant="primary")
81
  example_btn_2 = gr.Button(value="Try Me: online_retail_data.csv", elem_classes="example_btn", size="md", variant="primary")
82
 
83
+ file_output = gr.File(label="Data File (CSV, TSV, TXT, XLS, XLSX, XML, JSON)", show_label=True, elem_classes="file_marker", file_types=['.csv','.xlsx','.txt','.json','.xml','.xls','.tsv'])
84
  example_btn_1.click(fn=run_example, inputs=example_file_1, outputs=file_output)
85
  example_btn_2.click(fn=run_example, inputs=example_file_2, outputs=file_output)
86
  file_output.change(fn=example_display, inputs=file_output, outputs=[example_btn_1, example_btn_2])