anonymizer / app.py
ziggycross's picture
Updated styling.
aa72b6d
raw
history blame
No virus
2.72 kB
import modules
import streamlit as st
from streamlit_extras.let_it_rain import rain
# Options
DISCLAIMER = "*Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam urna sem, bibendum efficitur pellentesque a, sollicitudin pharetra urna. Nam vel lectus vitae elit luctus feugiat a a purus. Aenean mollis quis ipsum sed ornare. Nunc sit amet ultricies tellus. Vivamus vulputate sem id molestie viverra. Etiam egestas lobortis enim, sit amet lobortis ligula sollicitudin vel. Nunc eget ipsum sollicitudin, convallis.*"
# Cleaning parameters
drop_missing = None,
remove_duplicates = None,
# Anonymizing parameters
anonymize_data = None
# Page Config
st.set_page_config(layout="wide")
# Default Sidebar
with st.sidebar:
st.header("🕵️ 2anonymity")
st.markdown("*Clean and anonymize data*")
with st.container() as upload:
file = st.file_uploader(f"Upload dataset:", type=modules.SUPPORTED_TYPES, label_visibility="collapsed")
df, (filename, extension), result = modules.load_file(file)
# Main
if df is None:
rain("🤠")
else:
# Add options to sidebar
with st.sidebar:
# Options for data cleaning
with st.container() as cleaning_options:
st.markdown("Data cleaning options:")
remove_duplicates = st.checkbox("Remove duplicate rows", value=True)
drop_missing = st.checkbox("Remove rows with missing values", value=False)
# Options for data optimization
with st.container() as anonymizing_options:
st.markdown("Anonymizing options:")
anonymize_data = st.checkbox("Anonymize data", value=True)
# Prepare file for download
if df is not None:
download_file = modules.create_file(df, extension)
with st.container() as downloader:
st.download_button("Download", download_file, file_name=filename)
# Add a disclaimer for data security
with st.container() as disclaimer:
st.markdown(
f"""
Disclaimer:
{DISCLAIMER}
"""
)
# Preview data before transformation
with st.container() as before_data:
s = df.style
s = s.set_properties(**{'background-color': '#fce4e4'})
st.dataframe(s)
# Process data
df = modules.data_cleaner(df, drop_missing, remove_duplicates)
# Preview data after transformation
with st.container() as after_data:
s = df.style
s = s.set_properties(**{'background-color': '#e4fce4'})
st.dataframe(s)
# Attribution
st.sidebar.markdown("Created by team #2hack2furious for the hackthethreat2023")