Files
doczyai-pipelines/streamlit/util.py
T
2024-06-27 16:57:09 -05:00

70 lines
2.5 KiB
Python

import streamlit as st
import security
import os
import constants
import logging
from logging.handlers import RotatingFileHandler
# Ensure the log directory exists
log_dir = '/home/ubuntu/doczy.ai/streamlit'
if not os.path.exists(log_dir):
os.makedirs(log_dir, exist_ok=True)
# Configure logging with RotatingFileHandler
log_file = f'{log_dir}/interface.log'
rotating_handler = RotatingFileHandler(
log_file,
maxBytes=10*1024*1024, # 10 MB
backupCount=5 # Keep up to 5 backup files
)
rotating_handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(levelname)s [%(filename)s] %(message)s')
rotating_handler.setFormatter(formatter)
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.addHandler(rotating_handler)
def setup_page(redirect_uril):
# st.set_page_config(
# page_title=page_title,
# page_icon="👋",
# )
if st.query_params.get('code'):
security.handle_redirect(redirect_uril)
access_token = st.session_state.get('access_token')
if access_token:
user_info = security.get_user_info(access_token)
st.session_state['user_info'] = user_info
return True
else:
st.write("Please sign-in to use this app.")
auth_url = security.get_auth_url(redirect_uril)
st.markdown(f"<a href='{auth_url}' target='_self'>Sign In</a>", unsafe_allow_html=True)
st.stop()
def load_page_details(interface):
env_var = os.environ.get('ENVIRONMENT', 'DEV')
logger.info(f"env_var={env_var}")
if env_var == 'UAT':
logger.info(constants.DOCZY_REDIRECT_URL_UAT + str(interface))
return (constants.DOCZY_REDIRECT_URL_UAT + str(interface), constants.DOCZY_CREATE_BATCH_URL_UAT,
constants.DOCZY_PIPELINE_URL_UAT)
elif env_var == 'DEV':
logger.info(constants.DOCZY_REDIRECT_URL_DEV + str(interface))
return (constants.DOCZY_REDIRECT_URL_DEV + str(interface), constants.DOCZY_CREATE_BATCH_URL_DEV,
constants.DOCZY_PIPELINE_URL_DEV)
elif env_var == 'PROD':
logger.info(constants.DOCZY_REDIRECT_URL_PROD + str(interface))
return (constants.DOCZY_REDIRECT_URL_PROD + str(interface), constants.DOCZY_CREATE_BATCH_URL_PROD,
constants.DOCZY_PIPELINE_URL_PROD)
else:
logger.info(constants.DOCZY_REDIRECT_URL_DEV + str(interface))
return (constants.DOCZY_REDIRECT_URL_DEV + str(interface), constants.DOCZY_CREATE_BATCH_URL_DEV,
constants.DOCZY_PIPELINE_URL_DEV)