Spaces:
Sleeping
Sleeping
File size: 1,278 Bytes
ba2dcff fbd166f ba2dcff 1c33177 ba2dcff fbd166f 719f294 ba2dcff 719f294 ba2dcff fbd166f ba2dcff fbd166f ba2dcff fbd166f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import json
import pandas as pd
import streamlit as st
@st.cache_data
def load_slider_data():
"""Load slider data from a JSON file and cache it for performance."""
with open("data/cost_sliders.json") as f:
data = json.load(f)
return data
def render_resource_input(name_clean, r, tooltip=None):
if tooltip:
st.markdown(
f"""<span title="{tooltip}" style="font-weight: 500;">{name_clean} <sup style="color:#999;">ℹ️</sup></span>""",
unsafe_allow_html=True
)
else:
st.markdown(f"**{name_clean}**")
widget_key = f"cap_{r}"
if widget_key not in st.session_state:
st.session_state[widget_key] = st.session_state.resource_caps.get(r, 0.0)
cap = st.number_input(
label="label",
label_visibility="collapsed",
min_value=0.0,
format="%.2f",
key=widget_key,
)
st.session_state.resource_caps[r] = cap
def is_valid_scenario(scenario):
return (
isinstance(scenario, dict)
and "allocations" in scenario
and "resource_caps" in scenario
and "method_costs" in scenario
and "method_constraints" in scenario
and "summary" in scenario
) |