37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""State management for the API key manager."""
|
|
|
|
import streamlit as st
|
|
from datetime import datetime
|
|
|
|
def initialize_wizard_state():
|
|
"""Initialize or get the wizard state from session."""
|
|
if 'wizard_state' not in st.session_state:
|
|
st.session_state.wizard_state = {
|
|
'current_step': 0,
|
|
'total_steps': 0,
|
|
'completed_steps': set(),
|
|
'api_keys_status': {},
|
|
'setup_progress': 0
|
|
}
|
|
|
|
def update_progress(api_keys_config):
|
|
"""Update the overall setup progress."""
|
|
total_keys = sum(len(keys) for keys in api_keys_config.values())
|
|
configured_keys = sum(1 for status in st.session_state.wizard_state['api_keys_status'].values()
|
|
if status.get('configured', False))
|
|
st.session_state.wizard_state['setup_progress'] = (configured_keys / total_keys) * 100
|
|
|
|
def update_key_status(key):
|
|
"""Update the status of an API key in the wizard state."""
|
|
st.session_state.wizard_state['api_keys_status'][key] = {
|
|
'configured': True,
|
|
'timestamp': datetime.now().isoformat()
|
|
}
|
|
|
|
def get_key_status(key):
|
|
"""Get the current status of an API key."""
|
|
return st.session_state.wizard_state['api_keys_status'].get(key, {})
|
|
|
|
def get_progress():
|
|
"""Get the current setup progress."""
|
|
return st.session_state.wizard_state['setup_progress'] |