Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Update app.py
Browse files
app.py
CHANGED
|
@@ -179,13 +179,15 @@ def updateCategoryOptions(fileName):
|
|
| 179 |
return
|
| 180 |
currAnnotation, _ = st.session_state.results[fileName]
|
| 181 |
speakerNames = list(currAnnotation.labels())
|
| 182 |
-
# Build reverse map: display name ->
|
| 183 |
-
|
| 184 |
-
|
|
|
|
|
|
|
|
|
|
| 185 |
unusedSpeakers = copy.deepcopy(speakerNames)
|
| 186 |
for i, category in enumerate(st.session_state['categories']):
|
| 187 |
-
|
| 188 |
-
display_choices = copy.deepcopy(st.session_state[f'multiselect_{category}'])
|
| 189 |
raw_choices = [display_to_raw.get(d, d) for d in display_choices]
|
| 190 |
st.session_state["categorySelect"][fileName][i] = raw_choices
|
| 191 |
for sp in raw_choices:
|
|
@@ -198,12 +200,18 @@ def updateCategoryOptions(fileName):
|
|
| 198 |
def updateMultiSelect():
|
| 199 |
fileName = st.session_state["select_currFile"]
|
| 200 |
st.session_state.resetResult = True
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 207 |
|
| 208 |
def analyze(inFileName):
|
| 209 |
try:
|
|
@@ -593,17 +601,23 @@ try:
|
|
| 593 |
|
| 594 |
unusedSpeakers = st.session_state.unusedSpeakers[currFile]
|
| 595 |
categorySelections = st.session_state["categorySelect"][currFile]
|
| 596 |
-
|
| 597 |
-
|
| 598 |
-
|
| 599 |
-
|
|
|
|
|
|
|
|
|
|
| 600 |
for i,category in enumerate(st.session_state.categories):
|
| 601 |
-
|
| 602 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 603 |
st.sidebar.multiselect(category,
|
| 604 |
all_speakers_display,
|
| 605 |
-
|
| 606 |
-
key=f"multiselect_{category}",
|
| 607 |
on_change=updateCategoryOptions,
|
| 608 |
args=(currFile,))
|
| 609 |
st.sidebar.button(f"Remove {category}",key=f"remove_{category}",on_click=removeCategory,args=(i,))
|
|
|
|
| 179 |
return
|
| 180 |
currAnnotation, _ = st.session_state.results[fileName]
|
| 181 |
speakerNames = list(currAnnotation.labels())
|
| 182 |
+
# Build reverse map from live rename widget keys: display name -> SPEAKER_##
|
| 183 |
+
display_to_raw = {}
|
| 184 |
+
for sp in speakerNames:
|
| 185 |
+
wk = f"rename_{fileName}_{sp}"
|
| 186 |
+
live = st.session_state.get(wk, "").strip()
|
| 187 |
+
display_to_raw[live if live else sp] = sp
|
| 188 |
unusedSpeakers = copy.deepcopy(speakerNames)
|
| 189 |
for i, category in enumerate(st.session_state['categories']):
|
| 190 |
+
display_choices = list(st.session_state[f'multiselect_{category}'])
|
|
|
|
| 191 |
raw_choices = [display_to_raw.get(d, d) for d in display_choices]
|
| 192 |
st.session_state["categorySelect"][fileName][i] = raw_choices
|
| 193 |
for sp in raw_choices:
|
|
|
|
| 200 |
def updateMultiSelect():
|
| 201 |
fileName = st.session_state["select_currFile"]
|
| 202 |
st.session_state.resetResult = True
|
| 203 |
+
result = st.session_state.results.get(fileName)
|
| 204 |
+
if result:
|
| 205 |
+
currAnnotation, _ = result
|
| 206 |
+
speakerNames = list(currAnnotation.labels())
|
| 207 |
+
raw_to_display = {}
|
| 208 |
+
for sp in speakerNames:
|
| 209 |
+
wk = f"rename_{fileName}_{sp}"
|
| 210 |
+
live = st.session_state.get(wk, "").strip()
|
| 211 |
+
raw_to_display[sp] = live if live else sp
|
| 212 |
+
for i, category in enumerate(st.session_state['categories']):
|
| 213 |
+
raw_choices = st.session_state['categorySelect'][fileName][i]
|
| 214 |
+
st.session_state[f'multiselect_{category}'] = [raw_to_display.get(sp, sp) for sp in raw_choices]
|
| 215 |
|
| 216 |
def analyze(inFileName):
|
| 217 |
try:
|
|
|
|
| 601 |
|
| 602 |
unusedSpeakers = st.session_state.unusedSpeakers[currFile]
|
| 603 |
categorySelections = st.session_state["categorySelect"][currFile]
|
| 604 |
+
# Build live raw->display map from rename widget keys (always current)
|
| 605 |
+
raw_to_display = {}
|
| 606 |
+
for sp in speakerNames:
|
| 607 |
+
wk = f"rename_{currFile}_{sp}"
|
| 608 |
+
live = st.session_state.get(wk, "").strip()
|
| 609 |
+
raw_to_display[sp] = live if live else sp
|
| 610 |
+
all_speakers_display = [raw_to_display[sp] for sp in speakerNames]
|
| 611 |
for i,category in enumerate(st.session_state.categories):
|
| 612 |
+
ms_key = f"multiselect_{category}"
|
| 613 |
+
speakerSet = categorySelections[i] # SPEAKER_## internally
|
| 614 |
+
default_display = [raw_to_display.get(sp, sp) for sp in speakerSet]
|
| 615 |
+
# Seed widget state once with display names; omit default= to let Streamlit own state
|
| 616 |
+
if ms_key not in st.session_state:
|
| 617 |
+
st.session_state[ms_key] = default_display
|
| 618 |
st.sidebar.multiselect(category,
|
| 619 |
all_speakers_display,
|
| 620 |
+
key=ms_key,
|
|
|
|
| 621 |
on_change=updateCategoryOptions,
|
| 622 |
args=(currFile,))
|
| 623 |
st.sidebar.button(f"Remove {category}",key=f"remove_{category}",on_click=removeCategory,args=(i,))
|