heymenn commited on
Commit
6cf0191
1 Parent(s): ae63d54

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -3
app.py CHANGED
@@ -110,7 +110,7 @@ df_cate = pd.DataFrame(categories)
110
  # def update_label(label1):
111
  # return gr.update(choices=list(df.columns))
112
 
113
- # Functions needed for Split Files
114
 
115
  def functionCall(fi_input, dropdown, choice):
116
  if choice == "Intelligent split":
@@ -128,7 +128,33 @@ def change_textbox(dropdown,radio):
128
 
129
  ### Split files end
130
 
 
131
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  def reset_cate(df_categories):
133
  if df_categories.equals(df_cate):
134
  df_categories = pd.DataFrame([['', '', '']], columns=['topic', 'description', 'expert'])
@@ -220,10 +246,19 @@ with gr.Blocks() as demo:
220
  dd_source_class = gr.Dropdown(label="Source Column", multiselect=False, scale=7)
221
  sl_treshold = gr.Slider(minimum=0, maximum=1, value=0.45, step=0.05, label='Similarity Treshold')
222
  gr.Markdown("### The predefined categories can be modified at any time")
 
 
 
 
 
223
  df_category = gr.DataFrame(label='categories', value=df_cate, interactive=True)
 
 
224
  with gr.Row():
225
- btn_reset_df = gr.Button("Reset Categories")
226
  btn_classif = gr.Button("Categorize")
 
 
227
 
228
  with gr.Tab(" Personalised Charts Generation"):
229
  gr.Markdown("### This section will create a chart using two columns of your choice")
@@ -297,7 +332,9 @@ with gr.Blocks() as demo:
297
  #classification
298
  btn_classif.click(classification, inputs=[dd_source_class, fi_excel, df_category, sl_treshold], outputs=[fi_excel, df_output])
299
  btn_reset_df.click(reset_cate, inputs=df_category, outputs=df_category)
300
-
 
 
301
  #charts
302
  btn_chart.click(create_bar_plot, inputs=[fi_excel, dd_label1, dd_label2], outputs=[plt_figure])
303
 
 
110
  # def update_label(label1):
111
  # return gr.update(choices=list(df.columns))
112
 
113
+ ### Functions needed for Split Files
114
 
115
  def functionCall(fi_input, dropdown, choice):
116
  if choice == "Intelligent split":
 
128
 
129
  ### Split files end
130
 
131
+ ### Functions needed for Classfication
132
 
133
+ def addCategories(df,df_all):
134
+ categories = df.to_dict("records")
135
+ categories_all = df_all.to_dict("list")
136
+ for cat in categories:
137
+ if cat['topic'] not in categories_all['topic']:
138
+ categories_all['topic'].append(cat['topic'])
139
+ categories_all['description'].append(cat['description'])
140
+ categories_all['experts'].append(cat['experts'])
141
+ print(f"AFTER ADDINGS Those are the categories_all : {categories_all}")
142
+
143
+ return gr.update(choices=categories_all['topic']),pd.DataFrame.from_dict(categories_all)
144
+
145
+ df_cat_filter = df_cate.to_dict("list")["topic"]
146
+
147
+ def filterByTopics(filters, categories):
148
+ value_filtered = []
149
+ categories = categories.to_dict("records")
150
+ for cat in categories:
151
+ if cat['topic'] in filters:
152
+ value_filtered.append(cat)
153
+
154
+ return gr.DataFrame(label='categories', value=pd.DataFrame(value_filtered), interactive=True)
155
+
156
+ ### End
157
+
158
  def reset_cate(df_categories):
159
  if df_categories.equals(df_cate):
160
  df_categories = pd.DataFrame([['', '', '']], columns=['topic', 'description', 'expert'])
 
246
  dd_source_class = gr.Dropdown(label="Source Column", multiselect=False, scale=7)
247
  sl_treshold = gr.Slider(minimum=0, maximum=1, value=0.45, step=0.05, label='Similarity Treshold')
248
  gr.Markdown("### The predefined categories can be modified at any time")
249
+
250
+ dd_filter = gr.Dropdown(choices=df_cat_filter, label = "Choose your filters here", multiselect=True, allow_custom_value=True)
251
+
252
+ btn_filter = gr.Button("Filter")
253
+
254
  df_category = gr.DataFrame(label='categories', value=df_cate, interactive=True)
255
+ df_category_hidden = gr.DataFrame(value=df_cate, visible=False)
256
+
257
  with gr.Row():
258
+ btn_reset_df = gr.Button("Reset categories")
259
  btn_classif = gr.Button("Categorize")
260
+ btn_add_categories = gr.Button("Add categories")
261
+
262
 
263
  with gr.Tab(" Personalised Charts Generation"):
264
  gr.Markdown("### This section will create a chart using two columns of your choice")
 
332
  #classification
333
  btn_classif.click(classification, inputs=[dd_source_class, fi_excel, df_category, sl_treshold], outputs=[fi_excel, df_output])
334
  btn_reset_df.click(reset_cate, inputs=df_category, outputs=df_category)
335
+ btn_filter.click(filterByTopics, inputs=[dd_filter, df_category_hidden], outputs=df_category)
336
+ btn_add_categories.click(addCategories, inputs=[df_category, df_category_hidden],outputs=[dd_filter,df_category_hidden])
337
+
338
  #charts
339
  btn_chart.click(create_bar_plot, inputs=[fi_excel, dd_label1, dd_label2], outputs=[plt_figure])
340