| """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) |
| |
| """ |
| |
| 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.utils import menu_items |
|
|
| from litbee.multipage import Multipage |
|
|
| |
| |
| |
|
|
| from litbee.home import home |
| from litbee.settings import settings |
| from litbee.info import info |
| from litbee.utils import style_css |
|
|
| |
|
|
| 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() |
| except Exception as _: |
| logger.warning("time.tzset() error: %s. Probably running Windows, we let it pass.", _) |
|
|
| |
| |
|
|
| 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, |
| ) |
|
|
| |
| |
| st.set_page_config( |
| page_title=f"litbee v{__version__}", |
| |
| page_icon="π", |
| |
| initial_sidebar_state="auto", |
| menu_items=menu_items, |
| ) |
|
|
| |
| 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.""" |
| |
|
|
| st.markdown(f"<style>{style_css}</style>", unsafe_allow_html=True) |
|
|
| app = Multipage() |
|
|
| |
| |
| |
|
|
| |
| app.add_page("Home", "house", home) |
| app.add_page("Settings", "gear", settings) |
| app.add_page("Info", "info", info) |
|
|
| |
| app.run() |
|
|
| |
|
|
| 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() |
|
|