import streamlit as st import pymongo from pymongo.errors import PyMongoError import pandas as pd import pickle import os #### Handling the db @st.cache_resource() def get_database_client(): # try: # client = pymongo.MongoClient(st.secrets["mongodb_string"]) # except PyMongoError as e: # st.error( # "We are sorry, we are unable to connect to our database. Please try again later." # ) # st.stop() # return client mongo_uri = os.environ.get("mongodb_uri") or st.secrets.get("mongodb_string") client = pymongo.MongoClient(mongo_uri, uuidRepresentation='standard') return client mongo_client = get_database_client() # st.toast("Database connected!") #### Loading the Mappatura database @st.cache_resource() def load_database(_mongo_client): try: col = _mongo_client["poverta_educativa"]["database_mappatura_1"] mappatura_tot = pd.DataFrame(list(col.find())) mappatura_tot["_id"] = mappatura_tot["_id"].astype(str) mappatura_data = mappatura_tot #mappatura_data = mappatura_tot.drop( # [ "_id", # "Livello di analisi", # "Budget", # "Budget completo di cofinanziamento (*se noto)", # "Link 2 ", # ], # axis=1, #) mappatura_data["Data inizio"] = mappatura_data["Data inizio"].astype(str) mappatura_data["Data fine (prevista o effettiva)"] = mappatura_data["Data fine (prevista o effettiva)"].astype(str) except PyMongoError as e: st.error( "We are sorry, we are unable to connect to our database. Please try again later." ) st.stop() return mappatura_data mappatura_data = load_database(mongo_client) # st.toast("Database loaded!") ##### Loading the color data @st.cache_resource() def get_color_data(): try: color_data_regioni = pd.read_json("./data/color_data_regioni.json") color_data_province = pd.read_json("./data/color_data_province.json") color_data_comuni = pd.read_json("./data/color_data_comuni.json") except: st.error( "We are sorry, we are unable to load colormaps. Please try again later." ) color_data_comuni = pd.DataFrame({"name": [], "color": []}) color_data_regioni = pd.DataFrame({"reg_name": [], "color": []}) color_data_province = pd.DataFrame({"prov_name": [], "color": []}) return color_data_regioni, color_data_province, color_data_comuni presence_regioni = pickle.load(open("./data/presence_regioni_vector.pkl", "rb")) presence_province = pickle.load(open("./data/presence_province_vector.pkl", "rb")) presence_comuni = pickle.load(open("./data/presence_comuni_vector.pkl", "rb")) all_regions = pickle.load(open("./data/all_regions.pkl", "rb")) all_provinces = pickle.load(open("./data/all_provinces.pkl", "rb")) all_munis = pickle.load(open("./data/all_munis.pkl", "rb")) color_data_regioni, color_data_province, color_data_comuni = get_color_data() # st.toast("Colormaps loaded.")