wordify / app.py
Pietro Lesci
update to python 3.10
a67a34c
import streamlit as st
# app configs
st.set_page_config(
page_title="Wordify",
initial_sidebar_state="expanded",
layout="centered",
page_icon="./assets/logo.png",
menu_items={
"Get Help": "https://github.com/MilaNLProc/wordify-webapp-streamlit/issues/new",
"Report a Bug": "https://github.com/MilaNLProc/wordify-webapp-streamlit/issues/new",
"About": "By the __Wordify__ team.",
}, # type: ignore
)
# HACK: other streamlit complains that `set_page_config` is not the first command
if True:
from src.components import analysis, docs, faq, footer, form, presentation
from src.configs import SupportedFiles
from src.utils import convert_df, get_logo, read_file
# logo
st.sidebar.image(get_logo("./assets/logo.png"))
# title
st.title("Wordify")
# file uploader
uploaded_fl = st.sidebar.file_uploader(
label="Choose a file",
type=[i.name for i in SupportedFiles],
accept_multiple_files=False,
help="""
Supported formats:
- CSV
- TSV
- PARQUET
- XLSX (do not support [Strict Open XML Spreadsheet format](https://stackoverflow.com/questions/62800822/openpyxl-cannot-read-strict-open-xml-spreadsheet-format-userwarning-file-conta))
""",
)
if not uploaded_fl:
presentation()
faq()
else:
df = read_file(uploaded_fl)
outputs = form(df)
docs()
# change or create session state
if outputs is not None or "outputs" not in st.session_state:
st.session_state["outputs"] = outputs
# when procedure is performed
if st.session_state["outputs"] is not None:
df = analysis(st.session_state["outputs"])
payload = convert_df(df)
st.download_button(
label="Download data as CSV",
data=payload,
file_name="wordify_results.csv",
mime="text/csv",
)
# footer
footer()