Skip to content

Commit 5b7a545

Browse files
committed
Phase 3 r1 fixes: grid.py upload-validation parity + drop unused imports
- _handle_setting_buttons: validate the trimmed (internal-name) uploaded layout BEFORE expanding, matching the oracle handleSettingButtons (the (... needed) dependency check is a no-op on the trimmed form; it fires later at Save time). Validating expanded labels wrongly rejected hand-crafted uploads. - drop unused typing imports (Any, Sequence).
1 parent 8f5fae6 commit 5b7a545

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

src/view/grid.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,11 @@
3030

3131
import json
3232
from typing import (
33-
Any,
3433
Callable,
3534
Dict,
3635
List,
3736
Optional,
3837
Protocol,
39-
Sequence,
4038
Tuple,
4139
runtime_checkable,
4240
)
@@ -416,14 +414,18 @@ def _handle_setting_buttons(self) -> None:
416414
uploaded = st.session_state.get(self._k("uploaded_json"))
417415
if uploaded is not None:
418416
uploaded_layout = json.load(uploaded)
419-
# uploaded layout is trimmed (internal names); expand to labels for validation/edit
420-
expanded = self.expand(uploaded_layout)
421-
validated = self.validate(expanded)
417+
# Validate the uploaded (trimmed, internal-name) layout BEFORE expanding,
418+
# matching the oracle handleSettingButtons: internal names never contain
419+
# the "(... needed)" dependency labels, so only the empty-input check
420+
# fires on upload (dependency validation happens later, at Save time).
421+
# Validating the expanded labels here would wrongly reject hand-crafted
422+
# uploads, diverging from the oracle.
423+
validated = self.validate(uploaded_layout)
422424
if validated != "":
423425
st.session_state[self._k("component_error")] = validated
424426
else:
425-
st.session_state[self._k("layout")] = expanded
426-
st.session_state[self._k("num_experiments")] = len(expanded)
427+
st.session_state[self._k("layout")] = self.expand(uploaded_layout)
428+
st.session_state[self._k("num_experiments")] = len(uploaded_layout)
427429

428430
def _handle_edit_and_save_buttons(self) -> None:
429431
# "Edit" clicked: re-enter edit mode, seeded from the saved layout

0 commit comments

Comments
 (0)