import streamlit as st from snowflake.snowpark import Session from snowflake.snowpark.context import get_active_session from snowflake.snowpark.exceptions import SnowparkSessionException from common.functions import call_deletion_procedure from common.local_connection import get_connection_parameters if "file_name" not in st.session_state: st.session_state.upload_name = None if "reason" not in st.session_state: st.session_state.confirmation = None st.subheader( "Here you can delete file upload if there is a need to fix source data and try again." ) st.write("Please note that every deletion will be recorded in audit table:") file_name = st.text_input( label="Name of the csv file that was used for upload", key="file_name" ) reason = st.text_input(label="Brief reason why you need to delete data", key="reason") confirm_deletion = st.checkbox("Confirm you want to delete related records.") if ( st.session_state.file_name != "" and confirm_deletion and st.session_state.reason != "" ): button_disabled = False else: button_disabled = True btn = st.button("Delete related rows", disabled=button_disabled) if btn: try: session = get_active_session() except SnowparkSessionException: connection_params = get_connection_parameters("fileupload") session = Session.builder.configs(connection_params).create() try: user = st.experimental_user.user_name or "user" except AttributeError: user = "user" delete_call = call_deletion_procedure(file_name, reason, user, session) st.write(f"{delete_call}")