Spaces:
Runtime error
Runtime error
| import os | |
| import io | |
| import pickle | |
| import base64 | |
| import streamlit as st | |
| import pandas as pd | |
| import numpy as np | |
| from htbuilder import HtmlElement, div, hr, a, p, img, styles | |
| from pathlib import Path | |
| from huggingface_hub.inference_api import InferenceApi | |
| #from google.oauth2 import service_account | |
| #from googleapiclient.discovery import build | |
| ######################## LOAD DATA FROM REPO ########################## | |
| def load_data_pickle(path, file): | |
| """Load data from pickle file""" | |
| df = pd.read_pickle(os.path.join(path,file)) | |
| return df | |
| def load_data_csv(path, file): | |
| "Load data from csv file" | |
| df = pd.read_csv(os.path.join(path,file)) | |
| return df | |
| def load_model_pickle(path, file): | |
| """Load model from pickle file""" | |
| path_file = os.path.join(path, file) | |
| model = pickle.load(open(path_file, 'rb')) | |
| return model | |
| def load_numpy(path,file): | |
| array = np.load(os.path.join(path,file)) | |
| return array | |
| ###################### LOAD MODEL HUGGINGFACE ############################# | |
| st.cache_data(ttl=3600, show_spinner=False) | |
| def load_model_huggingface(repo_id, token, task=None): | |
| """ Load model using Huggingface's Inference API | |
| """ | |
| model = InferenceApi(repo_id=repo_id, token=token, task=task) | |
| return model | |
| #################### LOAD DATA FROM GOOGLE DRIVE ################### | |
| # @st.cache_data(ttl=3600, show_spinner=False) | |
| # def load_data(file, sheet_name, **kwargs): | |
| # df = pd.read_excel(file, sheet_name=sheet_name, **kwargs) | |
| # return df | |
| # @st.cache_data(ttl=3600, show_spinner=False) | |
| # def load_model(file): | |
| # """Load model from pickle file""" | |
| # model = pickle.load(file) | |
| # return model | |
| # @st.cache_data(show_spinner=False) #3600 seconds | |
| # def authenticate_drive(): | |
| # creds = service_account.Credentials.from_service_account_info( | |
| # st.secrets["connections_gcs"], | |
| # scopes=["https://www.googleapis.com/auth/drive.readonly"] | |
| # ) | |
| # drive_service = build('drive', 'v3', credentials=creds) | |
| # return drive_service | |
| # @st.cache_data(ttl=3600, show_spinner=False) | |
| # def load_content_drive(file_id, _drive_service): | |
| # """ Load content from google drive | |
| # """ | |
| # request = _drive_service.files().get_media(fileId=file_id) | |
| # file_content = io.BytesIO(request.execute()) | |
| # return file_content | |
| # @st.cache_data(ttl=3600, show_spinner=False) | |
| # def load_data_drive(file_content, sheet_name=None, **kwargs): | |
| # """ Load data using file_content | |
| # """ | |
| # if sheet_name is None: | |
| # df = pd.read_excel(file_content, **kwargs) | |
| # else: | |
| # df = pd.read_excel(file_content, sheet_name=sheet_name, **kwargs) | |
| # return df | |
| #################### PASSEWORD ##################### | |
| def check_password(): | |
| """Returns `True` if the user had the correct password.""" | |
| password_key = os.environ["PASSWORD"] | |
| #password_key = st.secrets["password"] | |
| def password_entered(): | |
| """Checks whether a password entered by the user is correct.""" | |
| if "password" in st.session_state and st.session_state["password"] == password_key: | |
| st.session_state["password_correct"] = True | |
| del st.session_state["password"] # don't store password | |
| else: | |
| st.session_state["password_correct"] = False | |
| if "password_correct" not in st.session_state: | |
| # First run, show input for password. | |
| st.text_input( | |
| "Password", type="password", on_change=password_entered, key="password" | |
| ) | |
| return False | |
| elif not st.session_state["password_correct"]: | |
| # Password not correct, show input + error. | |
| st.text_input( | |
| "Password", type="password", on_change=password_entered, key="password" | |
| ) | |
| st.error("😕 Password incorrect") | |
| return False | |
| else: | |
| # Password correct. | |
| return True | |
| ###################### OTHER ###################### | |
| def img_to_bytes(img_path): | |
| img_bytes = Path(img_path).read_bytes() | |
| encoded = base64.b64encode(img_bytes).decode() | |
| return encoded | |
| def link(link, text, **style): | |
| return a(_href=link, _target="_blank", style=styles(**style))(text) | |
| def convert_df(df): | |
| # IMPORTANT: Cache the conversion to prevent computation on every rerun | |
| return df.to_csv().encode('utf-8') |