import yaml import streamlit as st def get_seuil(seuils_dict, key): try: if key in seuils_dict: data = seuils_dict[key] for niveau in ["rouge", "orange", "vert"]: if niveau in data: seuil = data[niveau] if "min" in seuil and seuil["min"] is not None: return seuil["min"] if "max" in seuil and seuil["max"] is not None: return seuil["max"] except: pass return None def set_vulnerability(v1, v2, t1, t2, seuils): v1_poids = 1 v1_couleur = "Vert" if v1 > seuils[t1]["rouge"]["min"]: v1_poids = 3 v1_couleur = "Rouge" elif v1 > seuils[t1]["vert"]["max"]: v1_poids = 2 v1_couleur = "Orange" v2_poids = 1 v2_couleur = "Vert" if v2 > seuils[t2]["rouge"]["min"]: v2_poids = 3 v2_couleur = "Rouge" elif v2 > seuils[t2]["vert"]["max"]: v2_poids = 2 v2_couleur = "Orange" poids = v1_poids * v2_poids couleur = "Rouge" if poids <= 2: couleur = "Vert" elif poids <= 4: couleur = "Orange" return poids, couleur, v1_couleur, v2_couleur def colorer_couleurs(la_couleur): t = la_couleur.lower() if t == "rouge" or t == "difficile": return f":red-badge[{la_couleur}]" if t == "orange" or t == "modérée": return f":orange-badge[{la_couleur}]" if t == "vert" or t == "facile": return f":green-badge[{la_couleur}]" return la_couleur def initialiser_seuils(config_path): seuils = {} try: with open(config_path, "r", encoding="utf-8") as f: config = yaml.safe_load(f) seuils = config.get("seuils", seuils) except FileNotFoundError: st.warning(f"Fichier de configuration {config_path} non trouvé.") return seuils