CarlyneB commited on
Commit
03d4cf5
·
1 Parent(s): cf283fb

[REFACTOR] state_utils: remove apply_auto_disable_logic, replaced by refresh_active_methods in tab2

Browse files
Files changed (1) hide show
  1. utils/state_utils.py +0 -57
utils/state_utils.py CHANGED
@@ -37,60 +37,3 @@ def clear_widget_keys():
37
  del st.session_state[k]
38
 
39
 
40
- def apply_auto_disable_logic(method_to_primary_resources, secondary_resources):
41
- """Synchronise auto-disabled method state based on current resource availability.
42
-
43
- Runs three steps:
44
- 1. Count active primary resources per method (custom batches also count).
45
- 2. Re-enable any method previously auto-disabled that now has resources.
46
- 3. Disable any method whose primary resource count just dropped to zero.
47
-
48
- Args:
49
- method_to_primary_resources (dict[str, list[str]]): method → list of
50
- primary resource names (excludes secondary resources).
51
- secondary_resources (set[tuple[str, str]]): set of (method, resource)
52
- pairs where the resource is optional for that method.
53
-
54
- Returns:
55
- None
56
- """
57
- method_active_resource_count = {}
58
- for r, methods in st.session_state.enabled_methods.items():
59
- for m, ok in methods.items():
60
- if (m, r) in secondary_resources:
61
- continue
62
- method_active_resource_count.setdefault(m, 0)
63
- if ok:
64
- method_active_resource_count[m] += 1
65
-
66
- for batch in st.session_state.get("custom_resources", []):
67
- if float(batch.get("amount") or 0) <= 0:
68
- continue
69
- for m_name in batch.get("methods", {}).keys():
70
- method_active_resource_count.setdefault(m_name, 0)
71
- method_active_resource_count[m_name] += 1
72
-
73
- methods_with_no_active_resource = [
74
- m for m in method_to_primary_resources
75
- if method_active_resource_count.get(m, 0) == 0
76
- ]
77
-
78
- for m in list(st.session_state.auto_disabled_methods):
79
- if method_active_resource_count.get(m, 0) > 0:
80
- if m in st.session_state.constraints:
81
- st.session_state.constraints[m]["active"] = True
82
- st.session_state.constraints[m]["cap_type"] = "percent"
83
- st.session_state.constraints[m]["cap_value"] = 100
84
- st.session_state[f"toggle_{m}"] = True
85
- st.session_state[f"slider_{m}"] = 100
86
- st.session_state.auto_disabled_methods.discard(m)
87
- st.session_state.setdefault("just_activated_methods", set()).add(m)
88
-
89
- for m in methods_with_no_active_resource:
90
- st.session_state.auto_disabled_methods.add(m)
91
- if st.session_state.constraints.get(m, {}).get("active", True):
92
- st.session_state.constraints.setdefault(m, {"active": True, "cap_type": "percent", "cap_value": 100})
93
- st.session_state.constraints[m]["active"] = False
94
- toggle_key = f"toggle_{m}"
95
- if toggle_key in st.session_state:
96
- st.session_state[toggle_key] = False
 
37
  del st.session_state[k]
38
 
39