Spaces:
Running
Running
| """Prep Settings/Options page.""" | |
| # pylint: disable=invalid-name | |
| from functools import partial | |
| import streamlit as st | |
| from loguru import logger as loggu | |
| from logzero import logger | |
| from streamlit import session_state as state | |
| def settings(): | |
| """Prep Settings/Options page. | |
| Refer to options.py | |
| """ | |
| # horizotal radio | |
| st.write( | |
| "<style>div.row-widget.stRadio > div{flex-direction:row;}</style>", | |
| unsafe_allow_html=True, | |
| ) | |
| sourcetype_list = ["upload", "paste", "urls"] | |
| beetype_list = ["mlbee", "ezbee", "dzbee", "debee", "xbee"] | |
| _ = """ | |
| _ = "ezbee: english-chinese; dzbee: german-chinese, debee: german-english; xbee: other language pairs (slow, approx.1000 pairs/3 min) | ezbee: 英/中; dzbee: 德/中, debee: 德/英; xbee: 其他语言对(慢, 约1000对/3分钟)" | |
| try: | |
| index = beetype_list.index(state.ns.beetype) | |
| except Exception as e: | |
| logger.error("beetype index error: %s, setting to 0", e) | |
| index = 0 | |
| beetype = st.radio( | |
| "Pick a bee", | |
| beetype_list, | |
| index=index, | |
| format_func=lambda x: f"{x:<7} |", | |
| help=_, | |
| ) | |
| state.ns.beetype = beetype | |
| # """ | |
| try: | |
| index = sourcetype_list.index(state.ns.sourcetype) | |
| except Exception as e: | |
| logger.error("sourcetype index error: %s, setting to 0", e) | |
| index = 0 | |
| sourcetype = st.radio( | |
| "Source", | |
| sourcetype_list, | |
| index=index, | |
| format_func=lambda x: f"{x:<8} |", | |
| help="upload: one or two files; paste: from clipboard; urls: from the net", | |
| # disabled=True, | |
| ) | |
| state.ns.sourcetype = sourcetype | |
| sourcecount_list = [2, 1] | |
| try: | |
| index = sourcecount_list.index(state.ns.sourcecount) | |
| except Exception as e: | |
| logger.error("sourcecount index error: %s, setting to 0", e) | |
| index = 0 | |
| sourcecount = st.radio( | |
| "Source count", | |
| sourcecount_list, | |
| index=index, | |
| format_func=lambda x: f"{x:<3} |", | |
| help="2: two separate sources (files/pastes/urls), each containing one language; 1: one mixed source (file/paste/url) containing both languages", | |
| disabled=True, | |
| ) | |
| state.ns.sourcecount = sourcecount | |
| # sentali used for sent split | |
| sentali_list = [None, "yes"] | |
| try: | |
| index = sentali_list.index(state.ns.sentali) | |
| except Exception as e: | |
| logger.error("sentali sindex error: %s, setting to 0", e) | |
| index = 0 | |
| sentali = st.radio( | |
| "Split to sents", | |
| sentali_list, | |
| index=index, | |
| format_func=lambda x: f'{str(x) if x else "no":<4}|', | |
| help="no: leave it as it is; yes: attempt to split to sents in a sensible manner.", | |
| # disabled=True, | |
| ) | |
| state.ns.sentali = sentali | |
| # show state.ns[:6] | |
| loggu.debug(f" state.ns.list: {state.ns.list}") | |
| # beetype, sourcetype, sourcecount, filename1, filename2 | |
| _ = map(partial(getattr, state.ns), state.ns.list[:6]) | |
| logger.debug(" state.ns.list[:3]: %s", str([*_])) | |
| # st.write(f"run: {state.ns.count}") | |
| # loggu.debug(f"run: {state.ns.count}") | |