taxobservatory-demo / pages /2_Metadata.py
Ronan
feat: add new filters
dd6a24d
raw
history blame contribute delete
No virus
4.14 kB
import streamlit as st
from utils import set_algorithm_name, get_pdf_iframe
from menu import display_pages_menu
from country_by_country.utils.constants import (
JURIDICTIONS,
CURRENCIES,
SECTORS,
COMPANIES,
)
from Levenshtein import distance
import sys
import logging
import pandas as pd
import numpy as np
import re
logging.basicConfig(stream=sys.stdout, level=logging.INFO, format="%(message)s")
st.set_page_config(layout="wide", page_title="Report metadata")
st.title("Country by Country Tax Reporting analysis : Metadata")
st.subheader(
"This page will allow you to fill in metadata about the report : company name, headquarter, currency, unit, ...",
)
display_pages_menu()
if "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:
with st.form("metadata_form"):
if "metadata" in st.session_state:
company_name = st.session_state["metadata"]["company_name"]
sector = st.session_state["metadata"]["sector"]
year = st.session_state["metadata"]["year"]
currency = st.session_state["metadata"]["currency"]
unit = st.session_state["metadata"]["unit"]
headquarter = st.session_state["metadata"]["headquarter"]
decimal_separator = st.session_state["metadata"]["separator"]
else:
company_name = None
sector = None
year = ""
currency = None
unit = None
headquarter = ""
decimal_separator = ","
separator_list = [",", "."]
decimal_separator = st.selectbox(
"Decimal separator",
separator_list,
index=separator_list.index(decimal_separator),
)
companies = list(COMPANIES.keys())
company_name = st.selectbox(
"Company name",
companies,
index=companies.index(company_name) if company_name else 0,
)
sector = st.selectbox(
"Sector", SECTORS, index=SECTORS.index(sector) if sector else 0
)
year = st.text_input("Year", value=year)
currencies = {
(
CURRENCIES[currency]["AlphabeticCode"],
CURRENCIES[currency]["Currency"],
)
for currency in CURRENCIES
}
currencies = sorted(currencies, key=lambda x: x[0])
currencies = [f"{currency[0]} - {currency[1]}" for currency in currencies]
currency = st.selectbox(
"Currency",
currencies,
index=currencies.index(currency)
if currency
else currencies.index("EUR - Euro"),
)
units = [
"units",
"thousands",
"millions",
"10 millions",
"100 millions",
"billions",
]
unit = st.selectbox("Unit", units, index=units.index(unit) if unit else 0)
headquarters = list(JURIDICTIONS.keys())
headquarter = st.selectbox(
"Headquarter location",
headquarters,
index=headquarters.index(headquarter) if headquarter else 0,
)
submitted = st.form_submit_button(
label="Submit",
)
if submitted:
st.session_state["metadata"] = {
"separator": decimal_separator,
"company_name": company_name,
"sector": sector,
"year": year,
"currency": currency,
"unit": unit,
"headquarter": headquarter,
}
st.switch_page("pages/3_Merge_Tables.py")