COULIBALY Bourahima
update
2c49a88
raw
history blame
2.47 kB
import pandas as pd
import streamlit as st
class InputsBox:
def __init__(self):
self.data = None
self.columns = None
self.product_id = None
self.class_id = None
def get_data(self):
uploaded_file = st.file_uploader(
"Choose a CSV file with the separator ';' ", type=["csv"]
)
if uploaded_file is not None:
# try :
self.data = pd.read_csv(
uploaded_file, dtype=str, sep=";", encoding="latin-1"
)
# except :
# self.data = pd.read_csv(
# uploaded_file,dtype=str,
# sep=";",
# encoding="utf-8" )
self.columns = self.data.columns.tolist()
return self.data
def valid_produict_id(self) -> int:
min_len = st.number_input(
"Minimum len of product_id",
max_value=25,
min_value=1,
value=2,
key="pp"
)
return min_len
def valid_class_id(self) -> str:
valid = st.text_input(
"First element of No valid class_id separed by ;"
)
return valid.split(";")
def get_product_id(self) -> str:
self.product_id = st.selectbox(
"product_id (BARCODE)", options=self.columns, key="product_id"
)
return self.product_id
def get_class_id(self) -> str:
self.class_id = st.selectbox(
"class_id (WW_CLASS_KEY)", options=self.columns, key="class_id"
)
return self.class_id
def get_countries(self) -> list:
countries = st.multiselect(
"Select countries : ",
tuple(self.data.COUNTRY_KEY.unique()),
key="countries",
)
return countries
def get_number_countries(self) -> int:
nb_countries = st.number_input(
"Number of countries",
min_value=1,
max_value=20,
value=1,
key="Number of countries",
)
return nb_countries
def get_proportion(self) -> float:
proportion = st.number_input(
"Proportion",
min_value=0.10, max_value=1.00, value=0.75, key="proportion"
)
return proportion
def show_proportion(self) -> bool:
show_condition = st.checkbox(
"Show data with ratios ", value=True, key="show_ratio_checkbox"
)
return show_condition