import json import os RESOURCE_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "resources") with open(os.path.join(RESOURCE_DIR, "_defaults.json"), "r") as f: _defaults = json.load(f) def get_qualitative_aversion(level: float, aversion_type: str) -> str: if aversion_type == "HIGH": if level <= 2: return "GOOD" elif level <= 3: return "ACCEPTABLE" else: return "BAD" elif aversion_type == "LOW-HIGH": if level <= 1 or level >= 5: return "BAD" elif level <= 2 or level >= 4: return "ACCEPTABLE" else: return "GOOD" else: raise ValueError(f"Unknown aversion type: {aversion_type}") def get_aversion_color(value: float, aversion_type: str) -> str: return _defaults["aversion_levels_colors"][ get_qualitative_aversion(value, aversion_type) ] def get_aversion_feedback(value: float, aversion_type: str) -> str: aversion_quality = _defaults["aversion_levels_colors"][ get_qualitative_aversion(value, aversion_type) ] if aversion_quality == "GOOD": return "✓ Livello di avversione basso - Buono" elif aversion_quality == "ACCEPTABLE": return "⚠ Livello di avversione moderato - Attenzione" elif aversion_quality == "BAD": return "✗ Livello di avversione alto - Evitare" else: return "Livello di avversione registrato" def get_qualitative_compatibility(level: float) -> str: if level >= 85: return "GOOD" elif level >= 70: return "ACCEPTABLE" else: return "BAD" def get_compatibility_color(level: float) -> str: return _defaults["aversion_levels_colors"][get_qualitative_compatibility(level)] def check_image_url(pois: list[dict]) -> None: """Check if image URLs are valid, if not, set a default placeholder.""" for p in pois: if p.get("image_url:token_seq") is None: p["image_url:token_seq"] = ( "https://developers.elementor.com/docs/assets/img/elementor-placeholder-image.png" # Default placeholder )