-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
executable file
·61 lines (48 loc) · 1.92 KB
/
Copy pathapp.py
File metadata and controls
executable file
·61 lines (48 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import streamlit as st
import encrypt
import utils
import yaml
pages = [
st.Page("table.py", default=True, title="table"),
st.Page("display.py", default=False, title="display")
]
if "secret" not in st.session_state:
password = st.text_input("Please input password for encryption", value=None, type="password")
try:
st.session_state.secret = encrypt.decrypt_yaml('secret.yaml.enc', 'secret.yaml.salt', password)
st.rerun()
except FileNotFoundError as e:
st.error("Encryption file or salt file not fond. Please check your file paths or regenerate it.")
st.exception(e)
st.stop()
except ValueError as e:
st.error("Decryption failed. The password might be incorrect or the files are corrupted.")
st.exception(e)
st.stop()
except AttributeError as e:
st.stop()
except Exception as e:
st.error("An unexpected error occurred during decryption.")
st.exception(e)
st.stop()
if "stack" not in st.session_state:
st.session_state.stack = []
if "connector" not in st.session_state:
secret = st.session_state.secret
st.session_state.connector = utils.Connector(user=secret['user_name'], password = secret['user_password'], host=secret['host'], port=secret['port'], database=secret['database'])
st.session_state.connector.start_transaction()
if "query" not in st.session_state:
st.session_state.query = {}
st.session_state.query['body'] = ""
st.session_state.query['value'] = tuple()
if "result" not in st.session_state:
st.session_state.result = ""
if "display" not in st.session_state:
st.session_state.display = []
if "data_changed" not in st.session_state:
st.session_state.data_changed = False
if "map" not in st.session_state:
with open('config.yaml', 'r') as file:
st.session_state.map = yaml.safe_load(file)
pg = st.navigation(pages, expanded=False)
pg.run()