zzmez commited on
Commit
7b006b6
·
1 Parent(s): 754305e

Add exclude list functionality to compute_offer function

Browse files
Files changed (2) hide show
  1. app.py +2 -1
  2. utils/gradio_utils.py +5 -1
app.py CHANGED
@@ -17,7 +17,8 @@ list_iface = gr.Interface(fn=compute_offer,
17
  gr.Slider(1, 365, value=30, step=1, label="Days", info="Number of days to look back"),
18
  gr.Slider(5000, 100000, value=15000, step=1, label="Minimum Sent", info="Minimum number of emails sent"),
19
  gr.Dropdown(["Comcast", "Yahoo", "Hotmail", "Aol"], value="Comcast", label="Domain"),
20
- gr.Radio(["Newsletters", "Offers"], label="Type", value="Newsletters")],
 
21
  outputs="dataframe")
22
 
23
  # PLOTTING
 
17
  gr.Slider(1, 365, value=30, step=1, label="Days", info="Number of days to look back"),
18
  gr.Slider(5000, 100000, value=15000, step=1, label="Minimum Sent", info="Minimum number of emails sent"),
19
  gr.Dropdown(["Comcast", "Yahoo", "Hotmail", "Aol"], value="Comcast", label="Domain"),
20
+ gr.Radio(["Newsletters", "Offers"], label="Type", value="Newsletters"),
21
+ gr.Textbox(label="Exclude list", info="Example: INH,MNP", value="INH")],
22
  outputs="dataframe")
23
 
24
  # PLOTTING
utils/gradio_utils.py CHANGED
@@ -246,7 +246,7 @@ def _limit_chars(input_string: str, limit: int = 35) -> str:
246
  return input_string[:limit]
247
 
248
  ### GENERATE TOP LISTS ###
249
- def compute_offer(csv_file, days_lookback, min_sent, domain, offer_type):
250
  pd.set_option('display.max_colwidth', 10)
251
  # cmp_list = ['MSP', 'HOM', 'NTU', 'HCK', 'DDS', 'MNP', 'PSC', 'DTL', 'GVS', 'ANP', 'WDR', 'BSG'] #1
252
 
@@ -279,6 +279,10 @@ def compute_offer(csv_file, days_lookback, min_sent, domain, offer_type):
279
  (df_all['Nume'].str.contains(r' \d{4}$'))]
280
  elif offer_type == "Offers":
281
  df_all = df_all[~df_all['Nume'].str.startswith("Aeon News")]
 
 
 
 
282
  # Compress the newsletter names
283
  # df_all = df_all[df_all['Nume'].str.contains(r'\b[A-Z]{3}\b.*\b\d{4}\*?\s*(\(\d{4}\))?\b')]
284
  # df_all['Nume'] = df_all['Nume'].apply(_replace_numbers)
 
246
  return input_string[:limit]
247
 
248
  ### GENERATE TOP LISTS ###
249
+ def compute_offer(csv_file, days_lookback, min_sent, domain, offer_type, x_list):
250
  pd.set_option('display.max_colwidth', 10)
251
  # cmp_list = ['MSP', 'HOM', 'NTU', 'HCK', 'DDS', 'MNP', 'PSC', 'DTL', 'GVS', 'ANP', 'WDR', 'BSG'] #1
252
 
 
279
  (df_all['Nume'].str.contains(r' \d{4}$'))]
280
  elif offer_type == "Offers":
281
  df_all = df_all[~df_all['Nume'].str.startswith("Aeon News")]
282
+
283
+ if x_list != "":
284
+ x_list = x_list.split(',')
285
+ df_all = df_all[~df_all['Nume'].str.contains('|'.join(x_list))]
286
  # Compress the newsletter names
287
  # df_all = df_all[df_all['Nume'].str.contains(r'\b[A-Z]{3}\b.*\b\d{4}\*?\s*(\(\d{4}\))?\b')]
288
  # df_all['Nume'] = df_all['Nume'].apply(_replace_numbers)