Files
doczyai-pipelines/streamlit/util.py
T
Michael McGuinness 037909db74 format codebase
2024-09-30 12:21:29 +01:00

84 lines
2.6 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,
)