James McCool commited on
Commit
fd1c071
·
1 Parent(s): f344ebf

Implement conditional initialization for duplication frame in app.py

Browse files

- Added a check to ensure 'duplication_frame' is only created if it does not already exist in session state, enhancing data management and preventing unnecessary recalculations.
- This update improves application performance and ensures that user-specific selections are accurately reflected in the duplication metrics.

Files changed (1) hide show
  1. app.py +8 -8
app.py CHANGED
@@ -460,14 +460,14 @@ with tab2:
460
  user_dupe_select = user_dupe_select
461
  else:
462
  user_dupe_select = None
463
-
464
- dupe_frame = st.session_state['display_contest_info'][['BaseName', 'EntryCount', 'dupes', 'uniques', 'under_5', 'under_10']]
465
- dupe_frame['average_dupes'] = dupe_frame['dupes'].mean()
466
- dupe_frame['uniques%'] = dupe_frame['uniques'] / dupe_frame['EntryCount']
467
- dupe_frame['under_5%'] = dupe_frame['under_5'] / dupe_frame['EntryCount']
468
- dupe_frame['under_10%'] = dupe_frame['under_10'] / dupe_frame['EntryCount']
469
- dupe_frame = dupe_frame[['BaseName', 'EntryCount', 'average_dupes', 'uniques', 'uniques%', 'under_5', 'under_5%', 'under_10', 'under_10%']].drop_duplicates(subset='BaseName', keep='first')
470
- st.session_state['duplication_frame'] = dupe_frame.sort_values(by='EntryCount', ascending=False)
471
  if user_dupe_var == 'Specific':
472
  st.session_state['duplication_frame'] = st.session_state['duplication_frame'][st.session_state['duplication_frame']['BaseName'].isin(user_dupe_select)]
473
 
 
460
  user_dupe_select = user_dupe_select
461
  else:
462
  user_dupe_select = None
463
+ if 'duplication_frame' not in st.session_state:
464
+ dupe_frame = st.session_state['display_contest_info'][['BaseName', 'EntryCount', 'dupes', 'uniques', 'under_5', 'under_10']]
465
+ dupe_frame['average_dupes'] = dupe_frame['dupes'].mean()
466
+ dupe_frame['uniques%'] = dupe_frame['uniques'] / dupe_frame['EntryCount']
467
+ dupe_frame['under_5%'] = dupe_frame['under_5'] / dupe_frame['EntryCount']
468
+ dupe_frame['under_10%'] = dupe_frame['under_10'] / dupe_frame['EntryCount']
469
+ dupe_frame = dupe_frame[['BaseName', 'EntryCount', 'average_dupes', 'uniques', 'uniques%', 'under_5', 'under_5%', 'under_10', 'under_10%']].drop_duplicates(subset='BaseName', keep='first')
470
+ st.session_state['duplication_frame'] = dupe_frame.sort_values(by='EntryCount', ascending=False)
471
  if user_dupe_var == 'Specific':
472
  st.session_state['duplication_frame'] = st.session_state['duplication_frame'][st.session_state['duplication_frame']['BaseName'].isin(user_dupe_select)]
473