import enum import streamlit as st from core.constants import RECORD_SETS from core.query_params import expand_record_set from core.query_params import set_tab from core.state import Metadata from core.state import RecordSet class RecordSetEvent(enum.Enum): """Event that triggers a RecordSet change.""" NAME = "NAME" DESCRIPTION = "DESCRIPTION" IS_ENUMERATION = "IS_ENUMERATION" def handle_record_set_change(event: RecordSetEvent, record_set: RecordSet, key: str): set_tab(RECORD_SETS) value = st.session_state[key] if event == RecordSetEvent.NAME: old_name = record_set.name new_name = value if old_name != new_name: metadata: Metadata = st.session_state[Metadata] metadata.rename_record_set(old_name=old_name, new_name=new_name) record_set.name = value elif event == RecordSetEvent.DESCRIPTION: record_set.description = value elif event == RecordSetEvent.IS_ENUMERATION: record_set.is_enumeration = value expand_record_set(record_set=record_set)