Add exclude list functionality to compute_offer function
Browse files- app.py +2 -1
- 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)
|