Spaces:
Runtime error
Runtime error
yuanjie
commited on
Commit
•
3369999
1
Parent(s):
7ecff83
update
Browse files- .streamlit/_config.toml +25 -0
- pages/1000_文本标识.py +2 -0
- pages/1003_streamlit_authenticator.py +84 -0
- pages/1004_streamlit_option_menu.py +33 -0
- pages/3_🐧_分词.py +39 -0
- pages/888_🌰_demo.py +3 -0
- requirements.txt +4 -1
- run.sh +1 -1
.streamlit/_config.toml
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[theme]
|
2 |
+
font = "sans serif"
|
3 |
+
textColor = "#1F5BAC"
|
4 |
+
primaryColor = "#1F5BAC"
|
5 |
+
backgroundColor = "#FFFFFF"
|
6 |
+
secondaryBackgroundColor = "#F5F7FA"
|
7 |
+
|
8 |
+
[server]
|
9 |
+
port = 8501
|
10 |
+
headless = true
|
11 |
+
#--server.enableXsrfProtection false
|
12 |
+
#--server.enableCORS false
|
13 |
+
#--server.enableWebsocketCompression=false
|
14 |
+
|
15 |
+
[browser]
|
16 |
+
gatherUsageStats = false
|
17 |
+
#--browser.serverAddress 0.0.0.0
|
18 |
+
#--browser.serverPort 8080
|
19 |
+
|
20 |
+
[global]
|
21 |
+
developmentMode = false
|
22 |
+
|
23 |
+
#[general] # credentials.toml
|
24 |
+
#email = "[email protected]
|
25 |
+
|
pages/1000_文本标识.py
CHANGED
@@ -35,3 +35,5 @@ annotated_text(
|
|
35 |
("Community", "", "#8ef"),
|
36 |
("!", "", "#afa"),
|
37 |
)
|
|
|
|
|
|
35 |
("Community", "", "#8ef"),
|
36 |
("!", "", "#afa"),
|
37 |
)
|
38 |
+
|
39 |
+
"#8ef", "#faa"
|
pages/1003_streamlit_authenticator.py
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from meutils.pipe import *
|
2 |
+
|
3 |
+
import streamlit as st
|
4 |
+
import streamlit_authenticator as stauth
|
5 |
+
from streamlit_authenticator import Authenticate
|
6 |
+
|
7 |
+
from streamlit_option_menu import option_menu
|
8 |
+
|
9 |
+
# https://github.com/mkhorasani/Streamlit-Authenticator
|
10 |
+
|
11 |
+
st.set_page_config(page_title="Platform tester", page_icon=":rainbow:", layout="wide", initial_sidebar_state="auto")
|
12 |
+
# 如下代码数据,可以来自数据库
|
13 |
+
hashed_passwords = stauth.Hasher(['123', '456']).generate()
|
14 |
+
|
15 |
+
_ = f"""
|
16 |
+
credentials:
|
17 |
+
usernames:
|
18 |
+
nesc:
|
19 |
+
email: [email protected]
|
20 |
+
name: nesc
|
21 |
+
password: {hashed_passwords[0]} # To be replaced with hashed password
|
22 |
+
|
23 |
+
jsmith:
|
24 |
+
email: [email protected]
|
25 |
+
name: John Smith
|
26 |
+
password: 123 # To be replaced with hashed password
|
27 |
+
rbriggs:
|
28 |
+
email: [email protected]
|
29 |
+
name: Rebecca Briggs
|
30 |
+
password: 456 # To be replaced with hashed password
|
31 |
+
cookie:
|
32 |
+
expiry_days: 30
|
33 |
+
key: some_signature_key
|
34 |
+
name: some_cookie_name
|
35 |
+
preauthorized:
|
36 |
+
emails:
|
37 | |
38 |
+
"""
|
39 |
+
|
40 |
+
config = yaml.load(_)
|
41 |
+
|
42 |
+
authenticator = Authenticate(
|
43 |
+
config['credentials'],
|
44 |
+
config['cookie']['name'],
|
45 |
+
config['cookie']['key'],
|
46 |
+
config['cookie']['expiry_days'],
|
47 |
+
config['preauthorized']
|
48 |
+
)
|
49 |
+
|
50 |
+
name, authentication_status, username = authenticator.login('Login', 'main')
|
51 |
+
if authentication_status:
|
52 |
+
authenticator.logout('Logout', 'main')
|
53 |
+
st.write(f'Welcome *{name}*')
|
54 |
+
st.title('Some content')
|
55 |
+
elif authentication_status == False:
|
56 |
+
st.error('Username/password is incorrect')
|
57 |
+
elif authentication_status == None:
|
58 |
+
st.warning('Please enter your username and password')
|
59 |
+
|
60 |
+
|
61 |
+
if authentication_status:
|
62 |
+
try:
|
63 |
+
if authenticator.reset_password(username, 'Reset password'):
|
64 |
+
st.success('Password modified successfully')
|
65 |
+
except Exception as e:
|
66 |
+
st.error(e)
|
67 |
+
|
68 |
+
|
69 |
+
try:
|
70 |
+
if authenticator.register_user('Register user', preauthorization=False):
|
71 |
+
st.success('User registered successfully')
|
72 |
+
except Exception as e:
|
73 |
+
st.error(e)
|
74 |
+
|
75 |
+
|
76 |
+
try:
|
77 |
+
username_forgot_pw, email_forgot_password, random_password = authenticator.forgot_password('Forgot password')
|
78 |
+
if username_forgot_pw:
|
79 |
+
st.success('New password sent securely')
|
80 |
+
# Random password to be transferred to user securely
|
81 |
+
elif username_forgot_pw == False:
|
82 |
+
st.error('Username not found')
|
83 |
+
except Exception as e:
|
84 |
+
st.error(e)
|
pages/1004_streamlit_option_menu.py
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from meutils.pipe import *
|
2 |
+
|
3 |
+
import streamlit as st
|
4 |
+
from streamlit_option_menu import option_menu
|
5 |
+
|
6 |
+
st.set_page_config(page_title="Option Menu", layout="wide")
|
7 |
+
with st.sidebar:
|
8 |
+
selected = option_menu("Main Menu", ["Home", "Upload", "---", "Tasks", 'Settings'],
|
9 |
+
icons=['house', 'cloud-upload', None, "list-task", 'gear'], menu_icon="cast",
|
10 |
+
default_index=1)
|
11 |
+
|
12 |
+
selected2 = option_menu(None, ["Home", "Upload", "---", "Tasks", 'Settings'],
|
13 |
+
icons=['house', 'cloud-upload', None, "list-task", 'gear'],
|
14 |
+
menu_icon="cast", default_index=0, orientation="horizontal")
|
15 |
+
|
16 |
+
selected3 = option_menu(None, ["Home", "Upload", "Tasks", 'Settings'],
|
17 |
+
icons=['house', 'cloud-upload', "list-task", 'gear'],
|
18 |
+
menu_icon="cast", default_index=0, orientation="horizontal",
|
19 |
+
styles={
|
20 |
+
"container": {"padding": "0!important", "background-color": "#fafafa"},
|
21 |
+
"icon": {"color": "orange", "font-size": "25px"},
|
22 |
+
"nav-link": {"font-size": "25px", "text-align": "left", "margin": "0px",
|
23 |
+
"--hover-color": "#eee"},
|
24 |
+
"nav-link-selected": {"background-color": "green"},
|
25 |
+
}
|
26 |
+
)
|
27 |
+
|
28 |
+
# choice = option_menu(
|
29 |
+
# "Menu", ["首页", "HIVE", "KUDU", "MYSQL"],
|
30 |
+
# icons=['house', 'chat-square', 'chat-square-dots', 'chat-square-text'], menu_icon="hammer",
|
31 |
+
# default_index=0)
|
32 |
+
|
33 |
+
# df.style.set_precision
|
pages/3_🐧_分词.py
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from meutils.pipe import *
|
2 |
+
|
3 |
+
from appzoo.streamlit_app import Page
|
4 |
+
|
5 |
+
import streamlit as st
|
6 |
+
|
7 |
+
from LAC import LAC
|
8 |
+
|
9 |
+
|
10 |
+
# @st.experimental_memo(persist='disk', show_spinner=True, suppress_st_warning=False, max_entries=None, ttl=64)
|
11 |
+
@st.cache(func=None, persist=False, hash_funcs={'LAC.lac.LAC': str}, ttl=8)
|
12 |
+
def tokenizer1():
|
13 |
+
print('Loading tokenizer1...')
|
14 |
+
return LAC()
|
15 |
+
|
16 |
+
|
17 |
+
@st.experimental_singleton
|
18 |
+
def tokenizer2():
|
19 |
+
print('Loading tokenizer2...')
|
20 |
+
return LAC()
|
21 |
+
|
22 |
+
|
23 |
+
class MyPage(Page):
|
24 |
+
|
25 |
+
def main(self):
|
26 |
+
with st.form("Coding"):
|
27 |
+
text = st.text_input("输入文本", "")
|
28 |
+
|
29 |
+
if st.form_submit_button('开始转换'):
|
30 |
+
_ = tokenizer1().run(text)
|
31 |
+
_ = tokenizer2().run(text)
|
32 |
+
|
33 |
+
st.json(_)
|
34 |
+
|
35 |
+
|
36 |
+
if __name__ == '__main__':
|
37 |
+
app_title = "# 切词"
|
38 |
+
app_info = ""
|
39 |
+
MyPage(app_title=app_title, app_info=app_info).main()
|
pages/888_🌰_demo.py
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
from urllib.parse import urlencode, parse_qs
|
2 |
import streamlit as st
|
3 |
|
|
|
|
|
4 |
initial_query_params = st.session_state.get("initial_query_params")
|
5 |
query_params = {k: v[0] for k, v in st.experimental_get_query_params().items()}
|
6 |
if not initial_query_params:
|
@@ -24,3 +26,4 @@ with st.sidebar:
|
|
24 |
'<div style="margin-top: 0.75em;"><a href="https://www.buymeacoffee.com/andfanilo" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a></div>',
|
25 |
unsafe_allow_html=True,
|
26 |
)
|
|
|
|
1 |
from urllib.parse import urlencode, parse_qs
|
2 |
import streamlit as st
|
3 |
|
4 |
+
|
5 |
+
st.json(st.session_state)
|
6 |
initial_query_params = st.session_state.get("initial_query_params")
|
7 |
query_params = {k: v[0] for k, v in st.experimental_get_query_params().items()}
|
8 |
if not initial_query_params:
|
|
|
26 |
'<div style="margin-top: 0.75em;"><a href="https://www.buymeacoffee.com/andfanilo" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a></div>',
|
27 |
unsafe_allow_html=True,
|
28 |
)
|
29 |
+
st.json(st.session_state)
|
requirements.txt
CHANGED
@@ -3,6 +3,7 @@ appzoo
|
|
3 |
pyecharts
|
4 |
m2cgen
|
5 |
psutil
|
|
|
6 |
|
7 |
# streamlit
|
8 |
streamlit==1.12.0
|
@@ -16,4 +17,6 @@ streamlit-agraph
|
|
16 |
rdflib
|
17 |
st-annotated-text
|
18 |
streamlit-tree-select
|
19 |
-
streamlit_pandas_profiling
|
|
|
|
|
|
3 |
pyecharts
|
4 |
m2cgen
|
5 |
psutil
|
6 |
+
lac
|
7 |
|
8 |
# streamlit
|
9 |
streamlit==1.12.0
|
|
|
17 |
rdflib
|
18 |
st-annotated-text
|
19 |
streamlit-tree-select
|
20 |
+
streamlit_pandas_profiling
|
21 |
+
streamlit_authenticator
|
22 |
+
streamlit_option_menu
|
run.sh
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
# @Software : PyCharm
|
7 |
# @Description : ${DESCRIPTION}
|
8 |
|
9 |
-
streamlit run _👋_.py
|
10 |
|
11 |
#from streamlit import bootstrap
|
12 |
#
|
|
|
6 |
# @Software : PyCharm
|
7 |
# @Description : ${DESCRIPTION}
|
8 |
|
9 |
+
streamlit run _👋_.py # --server.enableWebsocketCompression=false
|
10 |
|
11 |
#from streamlit import bootstrap
|
12 |
#
|