Spaces:
Sleeping
Sleeping
Fix token issue with rename
Browse files
ui.py
CHANGED
|
@@ -103,6 +103,13 @@ def render_rename_sidebar(currFile, speakerNames, all_speaker_tokens):
|
|
| 103 |
)
|
| 104 |
enforceGlobalRenameExclusivity(idx)
|
| 105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 106 |
for idx, entry in enumerate(st.session_state.globalRenames):
|
| 107 |
grkey = _global_rename_key(idx)
|
| 108 |
if grkey not in st.session_state:
|
|
@@ -114,8 +121,14 @@ def render_rename_sidebar(currFile, speakerNames, all_speaker_tokens):
|
|
| 114 |
on_click=removeGlobalRename, args=(idx,),
|
| 115 |
help=f"Remove '{entry['name']}'",
|
| 116 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
st.sidebar.multiselect(
|
| 118 |
-
f"Speakers for {entry['name']}", options=
|
| 119 |
key=grkey, on_change=_on_grename_change, args=(idx,),
|
| 120 |
label_visibility="collapsed",
|
| 121 |
)
|
|
|
|
| 103 |
)
|
| 104 |
enforceGlobalRenameExclusivity(idx)
|
| 105 |
|
| 106 |
+
# Build a set of every token already claimed by some entry, for fast lookup
|
| 107 |
+
all_claimed = {
|
| 108 |
+
token
|
| 109 |
+
for e in st.session_state.globalRenames
|
| 110 |
+
for token in e["speakers"]
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
for idx, entry in enumerate(st.session_state.globalRenames):
|
| 114 |
grkey = _global_rename_key(idx)
|
| 115 |
if grkey not in st.session_state:
|
|
|
|
| 121 |
on_click=removeGlobalRename, args=(idx,),
|
| 122 |
help=f"Remove '{entry['name']}'",
|
| 123 |
)
|
| 124 |
+
# Options = tokens owned by this entry + tokens not claimed by anyone
|
| 125 |
+
this_entry_tokens = set(entry["speakers"])
|
| 126 |
+
available_tokens = [
|
| 127 |
+
t for t in all_speaker_tokens
|
| 128 |
+
if t not in all_claimed or t in this_entry_tokens
|
| 129 |
+
]
|
| 130 |
st.sidebar.multiselect(
|
| 131 |
+
f"Speakers for {entry['name']}", options=available_tokens,
|
| 132 |
key=grkey, on_change=_on_grename_change, args=(idx,),
|
| 133 |
label_visibility="collapsed",
|
| 134 |
)
|