duongthienz commited on
Commit
2cb98b2
·
verified ·
1 Parent(s): 92d351a

Update state.py

Browse files
Files changed (1) hide show
  1. state.py +13 -19
state.py CHANGED
@@ -68,8 +68,19 @@ def init_session_state():
68
  # ---------------------------------------------------------------------------
69
 
70
  def get_display_name(speaker, fileName):
71
- """Return the user-assigned display name for a speaker, or the original label."""
72
- return st.session_state.speakerRenames.get(fileName, {}).get(speaker, speaker)
 
 
 
 
 
 
 
 
 
 
 
73
 
74
 
75
  def apply_speaker_renames_to_df(df, fileName, column="task"):
@@ -118,25 +129,8 @@ def updateCategoryOptions():
118
  for i, category in enumerate(st.session_state.categories):
119
  ms_key = f"multiselect_{category}"
120
  new_val = list(st.session_state.get(ms_key, []))
121
- prev_val = list(st.session_state.categorySelect[i]) if i < len(st.session_state.categorySelect) else []
122
  st.session_state.categorySelect[i] = new_val
123
  st.session_state[ms_key] = new_val
124
-
125
- # Tokens newly added to this role → write the role name into speakerRenames
126
- added = set(new_val) - set(prev_val)
127
- removed = set(prev_val) - set(new_val)
128
- for token in added:
129
- _write_rename(token, category)
130
- # Tokens removed from this role → revert their display name, but only if
131
- # it was still set to this role's name (don't clobber a rename sidebar name)
132
- for token in removed:
133
- if ": " not in token:
134
- continue
135
- fname, raw_sp = token.split(": ", 1)
136
- current = st.session_state.speakerRenames.get(fname, {}).get(raw_sp, "")
137
- if current == category:
138
- _write_rename(token, "")
139
-
140
  # Recompute unusedSpeakers for all files
141
  all_assigned_tokens = {
142
  token
 
68
  # ---------------------------------------------------------------------------
69
 
70
  def get_display_name(speaker, fileName):
71
+ """Return the best display name for a speaker, in priority order:
72
+ 1. Explicit rename (speakerRenames) — set by rename sidebar or rename tab
73
+ 2. Role assignment (categorySelect) — e.g. "Instructor" or "Students"
74
+ 3. Original raw label — e.g. "SPEAKER_00"
75
+ """
76
+ explicit = st.session_state.speakerRenames.get(fileName, {}).get(speaker)
77
+ if explicit:
78
+ return explicit
79
+ token = f"{fileName}: {speaker}"
80
+ for i, tokens in enumerate(st.session_state.categorySelect):
81
+ if token in tokens:
82
+ return st.session_state.categories[i]
83
+ return speaker
84
 
85
 
86
  def apply_speaker_renames_to_df(df, fileName, column="task"):
 
129
  for i, category in enumerate(st.session_state.categories):
130
  ms_key = f"multiselect_{category}"
131
  new_val = list(st.session_state.get(ms_key, []))
 
132
  st.session_state.categorySelect[i] = new_val
133
  st.session_state[ms_key] = new_val
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  # Recompute unusedSpeakers for all files
135
  all_assigned_tokens = {
136
  token