diff --git a/src/Modules.py b/src/Modules.py index da66759402e8d06f881fcddb8fc7829c01be1102..c399a6ec5019f5daba315b26bf8330ede04c53c3 100644 --- a/src/Modules.py +++ b/src/Modules.py @@ -3,9 +3,10 @@ from Class_Mod import Plsr, LinearPCA, Umap, find_col_index, PinardPlsr, Nmf, AP from Class_Mod import LWPLSR, list_files, metrics, TpeIpls, reg_plot, resid_plot, Sk_Kmeans, DxRead, Hdbscan, read_dx, PlsProcess from Class_Mod.DATA_HANDLING import * from Class_Mod.Miscellaneous import prediction, download_results, plot_spectra, local_css -from style.header import add_header from Report import report css_file = Path("style/") +pages_folder = Path("pages/") +from style.header import add_header, add_sidebar from config.config import pdflatex_path local_css(css_file / "style.css") diff --git a/src/app.py b/src/app.py index e55e99d0ab52aa3bcc2328c4cee744ebd548c05a..cc8f226ce4197e976a0f9ac28544e70fb3e25cf0 100644 --- a/src/app.py +++ b/src/app.py @@ -1,43 +1,13 @@ from Packages import * st.set_page_config(page_title="NIRS Utils", page_icon=":goat:", layout="wide",) -if 'interface' not in st.session_state: - st.session_state['interface'] = 'simple' + from Modules import * from Class_Mod.DATA_HANDLING import * add_header() -pages_folder = Path("pages/") -# # TOC menu on the left -show_pages( - [Page("app.py", "Home"), - Page(str(pages_folder / "4-inputs.py"), "Inputs"), - Page(str(pages_folder / "1-samples_selection.py"), "Samples Selection"), - Page(str(pages_folder / "2-model_creation.py"), "Models Creation & Predictions"), - - ] -) - -with st.sidebar: - interface = st.selectbox(label="Interface", options=['simple', 'advanced'], key='interface') - # st.page_link(str(pages_folder / '1-samples_selection.py')) - if st.session_state['interface'] == 'simple': - # st.page_link(str(pages_folder / '2-model_creation.py')) - pass - # if advanced interface, split Models Creation and Predictions - elif st.session_state['interface'] == 'advanced': - show_pages( - [Page("app.py", "Home"), - Page(str(pages_folder / "4-inputs.py"), "Inputs"), - Page(str(pages_folder / "1-samples_selection.py"), "Samples Selection"), - Page(str(pages_folder / "2-model_creation.py"), "Models Creation"), - Page(str(pages_folder / "3-prediction.py"), "Predictions"), - ] - ) - # st.page_link(str(pages_folder / '2-model_creation.py')) - # st.page_link(str(pages_folder / '3-prediction.py')) - +add_sidebar(pages_folder) # Page header with st.container(): diff --git a/src/pages/1-samples_selection.py b/src/pages/1-samples_selection.py index 0b2aac3ad40232791c3527a47055543346edf488..8c9d6056ac06c2d6d463302a0b276bdd3db0fef4 100644 --- a/src/pages/1-samples_selection.py +++ b/src/pages/1-samples_selection.py @@ -15,6 +15,8 @@ if os.path.exists(repertoire_a_vider): add_header() #load specific model page css local_css(css_file / "style_model.css") +add_sidebar(pages_folder) + #define some variables tcr=pd.DataFrame() @@ -24,8 +26,6 @@ dim_red_methods=['', 'PCA','UMAP', 'NMF'] # List of dimensionality reduction al cluster_methods = ['', 'Kmeans','HDBSCAN', 'AP'] # List of clustering algos selec_strategy = ['center','random'] -# check session state and define default values if simple interface to automate processing -st.session_state["interface"] = st.session_state.get('interface') if st.session_state["interface"] == 'simple': st.write(':red[Automated Simple Interface]') hide_pages("Predictions") diff --git a/src/pages/2-model_creation.py b/src/pages/2-model_creation.py index 8c31f316fb407aa9c3dacce3bb285f9f158783ee..c5e24976f12c61db947aebacf3ffba0623ab310c 100644 --- a/src/pages/2-model_creation.py +++ b/src/pages/2-model_creation.py @@ -5,6 +5,7 @@ from Modules import * from Class_Mod.DATA_HANDLING import * from Class_Mod.Miscellaneous import desc_stats add_header() +add_sidebar(pages_folder) repertoire_a_vider = Path('Report/figures') if os.path.exists(repertoire_a_vider): @@ -17,13 +18,6 @@ if os.path.exists(repertoire_a_vider): json_sp = pd.DataFrame() -st.session_state["interface"] = st.session_state.get('interface') -if st.session_state["interface"] == 'simple': - hide_pages("Predictions") - -#path = os.path.dirname(os.path.abspath(__file__)).replace('\\','/') -#css_file = path[:path.find('/pages')]+'/style' -#local_css(css_file +"/style_model.css") local_css(css_file / "style_model.css") ####################################### page Design ####################################### diff --git a/src/pages/3-prediction.py b/src/pages/3-prediction.py index b79dafdfe07ab2e0afc7894fc66d46598d4ccca2..dcd59360d2870b62dfdd706e86b1d9df8c7fb782 100644 --- a/src/pages/3-prediction.py +++ b/src/pages/3-prediction.py @@ -11,8 +11,8 @@ from Class_Mod.DATA_HANDLING import * # # Injecter le code HTML du bandeau # st.markdown(bandeau_html, unsafe_allow_html=True) add_header() +add_sidebar(pages_folder) -st.session_state["interface"] = st.session_state.get('interface') local_css(css_file / "style_model.css") diff --git a/src/style/header.py b/src/style/header.py index b91bf42a0dc1ae6b56cd69d1a2c9a726e19e2fdf..0c01027999a443d8899d52547030651cea7de5aa 100644 --- a/src/style/header.py +++ b/src/style/header.py @@ -8,4 +8,37 @@ def add_header(): </div> """, unsafe_allow_html=True, - ) \ No newline at end of file + ) + +def add_sidebar(pages_folder): + if 'interface' not in st.session_state: + st.session_state['interface'] = 'simple' + + # # TOC menu on the left + show_pages( + [Page("app.py", "Home"), + Page(str(pages_folder / "4-inputs.py"), "Inputs"), + Page(str(pages_folder / "1-samples_selection.py"), "Samples Selection"), + Page(str(pages_folder / "2-model_creation.py"), "Models Creation & Predictions"), + + ] + ) + + with st.sidebar: + interface = st.selectbox(label="Interface", options=['simple', 'advanced'], key='interface') + # st.page_link(str(pages_folder / '1-samples_selection.py')) + if st.session_state['interface'] == 'simple': + # st.page_link(str(pages_folder / '2-model_creation.py')) + pass + # if advanced interface, split Models Creation and Predictions + elif st.session_state['interface'] == 'advanced': + show_pages( + [Page("app.py", "Home"), + Page(str(pages_folder / "4-inputs.py"), "Inputs"), + Page(str(pages_folder / "1-samples_selection.py"), "Samples Selection"), + Page(str(pages_folder / "2-model_creation.py"), "Models Creation"), + Page(str(pages_folder / "3-prediction.py"), "Predictions"), + ] + ) + # st.page_link(str(pages_folder / '2-model_creation.py')) + # st.page_link(str(pages_folder / '3-prediction.py'))