File size: 2,004 Bytes
aea5589
 
 
 
 
 
 
 
231976d
aea5589
 
231976d
aea5589
ca97d48
aea5589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ac70c21
 
aea5589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
231976d
 
aea5589
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
"""Prep __main__.py."""
# pylint: disable=invalid-name
import os
from pathlib import Path
from typing import Optional

import pandas as pd

import streamlit as st
from streamlit import session_state as state
from types import SimpleNamespace

import logzero
from logzero import logger
from set_loglevel import set_loglevel

from litbee import __version__, litbee
from litbee.files2df import files2df
from litbee.utils import sb_front_cover, instructions, menu_items
from litbee.ezbee_page import ezbee_page
from litbee.dzbee_page import dzbee_page
from litbee.xbee_page import xbee_page

os.environ["TZ"] = "Asia/Shanghai"
os.environ["LOGLEVEL"] = "10"
logzero.loglevel(set_loglevel())

st.set_page_config(
    page_title=f"litbee v{__version__}",
    page_icon="🧊",
    layout="wide",
    initial_sidebar_state="auto",  # "auto" or "expanded" or "collapsed",
    menu_items=menu_items,
)

# pd.set_option("precision", 2)
pd.set_option("display.precision", 2)
pd.options.display.float_format = "{:,.2f}".format


if "ns" not in state:
    state.ns = SimpleNamespace()


def main():
    # instructions()

    sb_front_cover()

    try:
        _ = state.ns.df
        state.ns.count += 1
        logger.debug(" run: %s", state.ns.count)
    except AttributeError:
        logger.debug("first run")
        # df = files2df("data/en.txt", "data/zh.txt")
        df = files2df("data/test_en.txt", "data/test_zh.txt")
        state.ns.count = 1
        state.ns.df = df

    # multi-page setup
    menu = {
        "ezbee": ezbee_page,
        "dzbee": dzbee_page,
        "xbee": xbee_page,
    }
    selection = st.sidebar.radio("", menu)
    page = menu[selection]

    # page.app()
    page()

    # 'items', 'keys', values, 'to_dict', 'update', 'values'
    # logger.debug("state.ns: %s", state.ns)

    st.write(f"run: {state.ns.count}")
    # st.dataframe(state.ns.df)

    # st.markdown(html_string, unsafe_allow_html=True)
    # st.markdown(state.ns.df.to_html(), unsafe_allow_html=True)


main()