Spaces:
Build error
Build error
File size: 1,373 Bytes
8744085 fdbadfe b3ecaa7 8744085 b3ecaa7 8744085 b3ecaa7 fdbadfe a97ba6f fdbadfe a97ba6f 02c2d7e 8744085 a67a34c fdbadfe 8744085 a67a34c fdbadfe 8744085 b748dad 8744085 a67a34c fdbadfe b748dad 8744085 fdbadfe 8744085 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import base64
from typing import List, Tuple
import streamlit as st
from pandas.core.frame import DataFrame
from PIL import Image
from .configs import ColumnNames, SupportedFiles
def get_col_indices(cols: List) -> Tuple[int, int]:
"""Ugly but works"""
cols = [i.lower() for i in cols]
try:
label_index = cols.index(ColumnNames.LABEL.value)
except:
label_index = 0
try:
text_index = cols.index(ColumnNames.TEXT.value)
except:
text_index = 0
return text_index, label_index
@st.cache_data
def get_logo(path: str) -> Image:
return Image.open(path)
@st.cache_data
def read_file(uploaded_file) -> DataFrame:
file_type = uploaded_file.name.split(".")[-1]
read_fn = SupportedFiles[file_type].value[0]
df = read_fn(uploaded_file)
df = df.dropna()
return df
@st.cache_data
def convert_df(df: DataFrame) -> bytes:
# IMPORTANT: Cache the conversion to prevent computation on every rerun
return df.to_csv(index=False, sep=";").encode("utf-8")
def download_button(dataframe: DataFrame, name: str) -> None:
csv = dataframe.to_csv(index=False)
# some strings <-> bytes conversions necessary here
b64 = base64.b64encode(csv.encode()).decode()
href = f'<a href="data:file/csv;base64,{b64}" download="{name}.csv">Download</a>'
st.write(href, unsafe_allow_html=True)
|