"""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( "", 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}")