Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import os | |
from pathlib import Path | |
from streamlit.errors import DuplicateWidgetID | |
main_content, right_sidebar = st.columns([5, 2]) | |
def toggle_state(): | |
return {"toggled": False} | |
if 'onthology' not in st.session_state: | |
st.session_state['onthology'] = "No onthology selected" | |
def get_similar_meta_file(path): | |
return path.parent / (str(path.stem) + "_meta.csv") | |
def projects(): | |
with main_content: | |
projects = ["my_project", "make_it_meta"] | |
st.markdown("# Project Creation and Naming") | |
markdown = "" | |
for project in projects: | |
markdown += f"- {project}\n" | |
st.markdown(markdown) | |
def datasets(): | |
with main_content: | |
try: | |
datasets = list((Path(".").resolve() / "samples").glob("*")) | |
datasets_not_meta = [x for x in datasets if ("csv" in str(x) or "tsv" in str(x)) and "_meta" not in str(x)] | |
datasets_meta = [x for x in datasets if ("csv" in str(x) or "tsv" in str(x)) and "_meta" in str(x)] | |
st.markdown("# Data selection and Uploading") | |
selected_option = st.selectbox("Select a dataset", set([x.stem for x in datasets_not_meta if get_similar_meta_file(x) in datasets_meta])) | |
selected_mode = st.selectbox("Select mode", ["Causual", "Makeitmeta"]) | |
for file in datasets: | |
if selected_option == file.stem: | |
sep = "," if "csv" in file.stem else "\t" | |
if selected_mode == "Makeitmeta": | |
file = get_similar_meta_file(file) | |
sep = "," | |
df = pd.read_csv(str(file), sep=sep) | |
st.experimental_data_editor(df, key="data_editor_" + str(selected_mode)) | |
st.markdown("### If you want to upload a dataset you can do it below:") | |
uploaded_file = st.file_uploader("Upload a file", type=["csv", "tsv", "pk", "gz"]) | |
if uploaded_file is not None: | |
# Do something with the uploaded file, e.g., display its name | |
st.write(uploaded_file.name) | |
except DuplicateWidgetID as e: | |
pass | |
def labeling(): | |
with main_content: | |
st.markdown("# Labeling selection and Uploading") | |
if st.session_state.onthology: | |
st.markdown(f"### Current onthologdy: {st.session_state.onthology}") | |
with right_sidebar: | |
query = st.text_input('Search bar', '') | |
if query == "": | |
st.write("Search results") | |
else: | |
st.write(f"Printing results for query: {query}") | |
def ontologies(): | |
with main_content: | |
onthologies = ["caDSR", "UMLS"] | |
st.markdown("# Ontology Selection") | |
onthology = st.selectbox( | |
'Select your onthology', | |
tuple(onthologies) | |
) | |
st.session_state.onthology = onthology | |
st.write('You selected:', onthology) | |
pages = { | |
"Datasets": datasets, | |
"Projects": projects, | |
"Labeling": labeling, | |
"Ontologies": ontologies | |
} | |
# st.sidebar.title("Navigation") | |
# selection1 = st.sidebar.button("Projects") | |
# if selection1: | |
# projects() | |
# selection2 = st.sidebar.button("Datasets") | |
# if selection2: | |
# datasets() | |
# selection3 = st.sidebar.button("Labeling") | |
# if selection3: | |
# labeling() | |
# selection4 = st.sidebar.button("Ontologies") | |
# if selection4: | |
# ontologies() | |
selected_page = st.sidebar.selectbox("Select a page", pages.keys()) | |
pages[selected_page]() | |