Spaces:
Sleeping
Sleeping
from menu import display_pages_menu | |
import streamlit as st | |
from utils import set_algorithm_name, get_pdf_iframe | |
import sys | |
import logging | |
logging.basicConfig(stream=sys.stdout, level=logging.INFO, format="%(message)s") | |
keep = "keep the extracted value" | |
remove = "remove this column" | |
def transpose_current_table(): | |
st.session_state.tables[ | |
st.session_state["algorithm_name"] | |
] = st.session_state.tables[st.session_state["algorithm_name"]].transpose() | |
def set_headers(algorithm_name: str) -> None: | |
for header in st.session_state.tables[algorithm_name].columns.values.tolist(): | |
if st.session_state["widget" + str(header)] == remove: | |
st.session_state.tables[algorithm_name].drop(columns=[header], inplace=True) | |
if st.session_state["widget" + str(header)] == keep: | |
pass | |
else: | |
st.session_state.tables[algorithm_name].rename( | |
columns={header: st.session_state["widget" + str(header)]}, | |
inplace=True, | |
) | |
header_list = [ | |
keep, | |
"jurisdiction", | |
"profit_before_tax", | |
"tax_accrued", | |
"tax_paid", | |
"employees", | |
"unrelated_revenues", | |
"related_revenues", | |
"stated_capital", | |
"accumulated_earnings", | |
"tangible_assets", | |
"total_revenues", | |
remove, | |
] | |
st.set_page_config(layout="wide") # page_icon="π" | |
st.title("Country by Country Tax Reporting analysis : Headers") | |
st.subheader( | |
"This page will allow you to modify the headers and to remove columns", | |
) | |
display_pages_menu() | |
if "tables" not in st.session_state: | |
st.markdown( | |
"# !! Don't change the page while the algorithms are runing, else they will start again" | |
) | |
if ( | |
st.session_state.get("validate_selected_pages", False) | |
and "pdf_after_page_validation" in st.session_state | |
): | |
col1, col2 = st.columns(2) | |
with col1: | |
st.markdown( | |
get_pdf_iframe(st.session_state["pdf_after_page_validation"]), | |
unsafe_allow_html=True, | |
) | |
with col2: | |
index = ( | |
list(st.session_state.tables.keys()).index( | |
st.session_state["algorithm_name"], | |
) | |
if "algorithm_name" in st.session_state | |
else 0 | |
) | |
st.session_state["algorithm_name"] = st.selectbox( | |
"Choose the extracted table you want to see", | |
list(st.session_state.tables.keys()), | |
index=index, | |
on_change=set_algorithm_name, | |
args=("selectbox1",), | |
key="selectbox1", | |
) | |
st.markdown( | |
"Table shape :" | |
+ str(st.session_state.tables[st.session_state["algorithm_name"]].shape) | |
) | |
st.button("Transpose table", on_click=transpose_current_table) | |
with st.form(key="my_form"): | |
for header in st.session_state.tables[ | |
st.session_state["algorithm_name"] | |
].columns.values.tolist(): | |
st.selectbox( | |
"Choose the value of the following extracted header : " | |
+ str(header), | |
header_list, | |
key="widget" + str(header), | |
) | |
submitted = st.form_submit_button( | |
label="Submit", | |
on_click=set_headers, | |
args=(st.session_state["algorithm_name"],), | |
) | |
if submitted: | |
st.switch_page("pages/5_Clean_Tables.py") | |
st.markdown("# Current extraction") | |
st.markdown("The extracted table is displaye below") | |
st.dataframe( | |
st.session_state.tables[st.session_state["algorithm_name"]], | |
width=900, | |
height=900, | |
) | |