Spaces:
Runtime error
Runtime error
import streamlit as st | |
import pandas as pd | |
# import gdown | |
import os | |
import pickle | |
from streamlit import session_state as _state | |
from PyDictionary import PyDictionary | |
from streamlit_extras.colored_header import colored_header | |
dictionary = PyDictionary() | |
st.set_page_config(layout="wide", page_title="ACl23 Secret Language") | |
from streamlit_extras.switch_page_button import switch_page | |
from streamlit_extras.stateful_button import button | |
# for key in st.session_state.keys(): | |
# del st.session_state[key] | |
# st.markdown(st.session_state) | |
# want_to_contribute = st.button("I want to contribute!") | |
# if want_to_contribute: | |
# # switch_page("dictionary (search)") | |
# switch_page("home") | |
# st.title("ACl23 Secret Language") | |
# sidebar | |
st.sidebar.header("π Dictionary (Browse)") | |
# title = st.sidebar.text_input(":red[Search secret languages given the following word]", 'Asian') | |
buttons = {} | |
# def call_back(): | |
# for k in buttons: | |
# if buttons[k]: | |
# st.text(k) | |
with st.sidebar: | |
st.markdown('### Select initials to browse.') | |
cols0 = st.columns(8) | |
for i in range(len(cols0)): | |
with cols0[i]: | |
buttons[chr(65 + i)] = st.button(chr(65 + i)) | |
# buttons[chr(65 + i)] = button(chr(65 + i), key=chr(65 + i)) | |
cols1 = st.columns(8) | |
for i in range(len(cols1)): | |
with cols1[i]: | |
buttons[chr(65 + 8 + i)] = st.button(chr(65 + 8 + i)) | |
# buttons[chr(65 + 8 + i)] = button(chr(65 + 8 + i), key=chr(65 + 8 + i)) | |
cols2 = st.columns(8) | |
for i in range(len(cols2)): | |
with cols2[i]: | |
buttons[chr(65 + 16 + i)] = st.button(chr(65 + 16 + i)) | |
# buttons[chr(65 + 16 + i)] = button(chr(65 + 16 + i), key=chr(65 + 16 + i)) | |
cols3 = st.columns(8) | |
for i in range(2): | |
with cols3[i]: | |
buttons[chr(65 + 24 + i)] = st.button(chr(65 + 24 + i)) | |
# buttons[chr(65 + 24 + i)] = button(chr(65 + 24 + i), key=chr(65 + 24 + i)) | |
cols4 = st.columns(2) | |
buttons['0-9'] = cols4[0].button('0-9') | |
buttons['Others'] = cols4[1].button('Others') | |
# select = st.radio( | |
# "Select initial to browse.", | |
# [chr(i) for i in range(97, 123)] + ['0-9', 'Others'], | |
# key="nokeyjustselect", | |
# ) | |
# if select == '0-9': | |
# st.title(select) | |
# file_names = ['num_dict.pkl'] | |
# elif select == 'Others': | |
# st.title(select) | |
# file_names = ['other_dict.pkl'] | |
# elif ord(select[0]) in list(range(97, 123)) + list(range(65, 91)): | |
# st.title(chr(ord(select))) | |
# file_names = [f'{ord(select[0]) - 32}_dict.pkl', f'{ord(select[0])}_dict.pkl'] | |
# all_data = {} | |
# all_key = [] | |
# for file_name in file_names: | |
# _data = pickle.load(open(f'all_secret_langauge_by_fist/{file_name}', 'rb')) | |
# all_data.update(_data) | |
# all_key.extend(sorted(list(_data.keys()))) | |
# # st.markdown(file_name, unsafe_allow_html=True) | |
# # st.markdown(_data.keys(), unsafe_allow_html=True) | |
# all_key = sorted(list(set(all_key))) | |
# # st.markdown(','.join(all_key)) | |
# for key in all_key: | |
# # if len(key) and key[0] != '"': | |
# # st.markdown(key, unsafe_allow_html=True) | |
# # st.change_page("home") | |
# # st.markdown(f'<a href="Dictionary_(Search)?word={key}" target="_self">{key}</a>', unsafe_allow_html=True) | |
# # print(key) | |
# # word_buttons.append(st.button(f'{key}', key=key)) | |
# _button = st.button(f'{key}', key=key) | |
# if _button: | |
# st.session_state.click_word = key | |
# switch_page("dictionary (search)") | |
# st.markdown(st.session_state) | |
all_word_button = {} | |
# for key in all_word_button: | |
# if all_word_button[key]: | |
# st.session_state.click_word = key | |
# switch_page("dictionary (search)") | |
for k in st.session_state.keys(): | |
if st.session_state[k]: | |
if 'button_' in k: | |
st.session_state.click_word = k.split('button_')[-1] | |
# st.markdown(k) | |
switch_page("dictionary (search)") | |
# all_condition = False | |
word_buttons = None | |
for k in buttons: | |
if buttons[k]: | |
# for _k in buttons: | |
# if _k != k: | |
# st.session_state[_k] = False | |
word_buttons = [] | |
if k == '0-9': | |
# st.title(k) | |
colored_header( | |
label=k, | |
description="", | |
color_name="violet-70", | |
) | |
file_names = ['num_dict.pkl'] | |
elif k == 'Others': | |
# st.title(k) | |
colored_header( | |
label=k, | |
description="", | |
color_name="violet-70", | |
) | |
file_names = ['other_dict.pkl'] | |
elif ord(k[0]) in list(range(97, 123)) + list(range(65, 91)): | |
# st.title(chr(ord(k))) | |
colored_header( | |
label=chr(ord(k)), | |
description="", | |
color_name="violet-70", | |
) | |
file_names = [f'{ord(k[0]) + 32}_dict.pkl', f'{ord(k[0])}_dict.pkl'] | |
all_data = {} | |
all_key = [] | |
for file_name in file_names: | |
_data = pickle.load(open(f'all_secret_langauge_by_fist/{file_name}', 'rb')) | |
all_data.update(_data) | |
all_key.extend(sorted(list(_data.keys()))) | |
# st.markdown(file_name, unsafe_allow_html=True) | |
# st.markdown(_data.keys(), unsafe_allow_html=True) | |
all_key = sorted(list(set(all_key))) | |
# st.markdown(','.join(all_key)) | |
for key in all_key: | |
# if len(key) and key[0] != '"': | |
# st.markdown(key, unsafe_allow_html=True) | |
# st.change_page("home") | |
# st.markdown(f'<a href="Dictionary_(Search)?word={key}" target="_self">{key}</a>', unsafe_allow_html=True) | |
# print(key) | |
# word_buttons.append(st.button(f'{key}', key=key)) | |
all_word_button[key] = st.button(f'{key}', key=f'button_{key}') | |
# all_word_button[key] = button(f'{key}', key=key) | |
# for _button in word_buttons: | |
# if _button: | |
# # st.session_state.click_word = key | |
# # st.markdown('asdfd') | |
# switch_page("home") | |
# with st.expander(key): | |
# st.markdown(':red[Secret Languages:' + ','.join(all_data[key]['secret languages']), unsafe_allow_html=True) | |