File size: 5,010 Bytes
8517064
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
aea5589
 
8517064
 
aea5589
8517064
aea5589
 
8517064
 
aea5589
e26e536
 
 
 
231976d
8517064
ca97d48
aea5589
8517064
aea5589
e26e536
 
8517064
 
 
 
 
 
 
 
e26e536
 
f983d52
e26e536
 
 
f983d52
 
e26e536
 
 
8517064
aea5589
66b6c9c
e26e536
 
66b6c9c
aea5589
2236e6d
ced3c50
2236e6d
 
e26e536
 
 
 
aea5589
 
8517064
 
 
 
d18f436
8517064
 
 
 
 
 
 
 
 
 
78bc728
aea5589
8517064
 
57208b4
aea5589
 
 
 
ac70c21
 
aea5589
 
d18f436
 
 
 
8517064
 
d18f436
78bc728
d18f436
8517064
 
 
 
 
 
 
 
 
 
 
e26e536
d18f436
8517064
aea5589
8517064
 
aea5589
e26e536
 
 
 
 
 
 
aea5589
 
8517064
e26e536
 
 
 
 
 
 
 
 
 
f983d52
 
e26e536
 
 
 
 
 
78bc728
 
 
 
e26e536
d18f436
e26e536
d18f436
231976d
1319de8
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
"""Prep __main__.py.

https://share.streamlit.io/deploy
    Advanced settings...
        Python version
            3.7
            3.8
            3.9*
            3.10

https://docs.streamlit.io/knowledge-base/using-streamlit/hide-row-indices-displaying-dataframe
    Hide row indices when displaying a dataframe
# CSS to inject contained in a string
hide_table_row_index = '''
            <style>
            tbody th {display:none}
            .blank {display:none}
            </style>
            '''
# Inject CSS with Markdown
st.markdown(hide_table_row_index, unsafe_allow_html=True)

# Display a static table
st.table(df)

# Hide row indices with st.dataframe
# CSS to inject contained in a string
hide_dataframe_row_index = '''
            <style>
            .row_heading.level0 {display:none}
            .blank {display:none}
            </style>
           '''
# Inject CSS with Markdown
st.markdown(hide_dataframe_row_index, unsafe_allow_html=True)

# Display an interactive table
st.dataframe(df)

https://medium.com/@avra42/streamlit-python-cool-tricks-to-make-your-web-application-look-better-8abfc3763a5b
hide_menu_style = '''
        <style>
        #MainMenu {visibility: hidden; }
        footer {visibility: hidden;}
        </style>
        '''
st.markdown(hide_menu_style, unsafe_allow_html=True)

"""
# pylint: disable=invalid-name
import os
import sys
import time
from pathlib import Path
from types import SimpleNamespace
from typing import Optional

import loguru
import logzero
import pandas as pd
import ezbee
import dzbee
import debee

import streamlit as st
from loguru import logger as loggu
from logzero import logger
from set_loglevel import set_loglevel
from streamlit import session_state as state

from litbee import __version__
# from litbee.options import options

# 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
from litbee.utils import menu_items

from litbee.multipage import Multipage

# from litbee.fetch_upload import fetch_upload
# from litbee.fetch_paste import fetch_paste
# from litbee.fetch_urls import fetch_urls

from litbee.home import home
from litbee.settings import settings
from litbee.info import info
from litbee.utils import style_css

# from ezbee import ezbee

curr_py = sys.version[:3]
msg = f"Some packages litbee depends on can only run with Python 3.8, current python is **{curr_py}**, sorry..."
assert curr_py == "3.8", msg

os.environ["TZ"] = "Asia/Shanghai"
try:
    time.tzset()  # type: ignore
except Exception as _:
    logger.warning("time.tzset() error: %s. Probably running Windows, we let it pass.", _)

# uncomment this in dev oe set/export LOGLEVEL=10
# os.environ["LOGLEVEL"] = "10"

logzero.loglevel(set_loglevel())

loggu.remove()
_ = (
    "<green>{time:YY-MM-DD HH:mm:ss}</green> | "
    "<level>{level: <5}</level> | <level>{message}</level> "
    "<cyan>{module}.{name}</cyan>:<cyan>{line}</cyan>"
)
loggu.add(
    sys.stderr,
    format=_,
    level=set_loglevel(),
    colorize=True,
)

# from PIL import Image
# page_icon=Image.open("icon.ico"),
st.set_page_config(  # type: ignore
    page_title=f"litbee v{__version__}",
    # page_icon="🧊",
    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

sourcetype = "upload"
if set_loglevel() <= 10:
    sourcetype = "urls"

_ = dict(
    beetype="ezbee",
    sourcetype=sourcetype,
    sourcecount=2,
    sentali=None,
    src_filename="",
    tgt_filename="",
    src_fileio=b"",
    tgt_fileio=b"",
    src_file="",
    tgt_file="",
    list1=[""],
    list2=[""],
    df=None,
    df_a=None,
    df_s_a=None,
    count=1,
    updated=False,
)
if "ns" not in state:
    state.ns = SimpleNamespace(**_)
state.ns.list = [*_]

logger.info(
    "versions ezbee dzbee debee: %s, %s, %s",
    ezbee.__version__,
    dzbee.__version__,
    debee.__version__,
)


def main():
    """Bootstrap."""
    # options()

    st.markdown(f"<style>{style_css}</style>", unsafe_allow_html=True)

    app = Multipage()

    # app.add_page("Home", "house", ask.app)
    # app.add_page("Settings", "gear", settings.app)
    # app.add_page("Info", "info", info.app)

    # app.add_page("Home", "house", fetch_upload)
    app.add_page("Home", "house", home)
    app.add_page("Settings", "gear", settings)
    app.add_page("Info", "info", info)

    # The main app
    app.run()

    # st.markdown(f"""<div class="text"> run: {state.ns.count}</div>""", unsafe_allow_html=True)

    if set_loglevel() <= 10:
        st.markdown(state.ns.count)
    loggu.debug(f" run: {state.ns.count}")
    logger.debug(f" run: {state.ns.count}")
    state.ns.count += 1
    state.ns.updated = False


main()