import urllib3 import pytz import logging import warnings import os from datetime import datetime from typing import Any, Dict # --- SILENZIAMENTO IMMEDIATO --- # Questo agisce prima ancora che 'requests' possa generare warning urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) warnings.filterwarnings("ignore", category=urllib3.exceptions.InsecureRequestWarning) logging.getLogger("urllib3").setLevel(logging.ERROR) # Silenzia anche i warning di sklearn/numpy se necessario os.environ["PYTHONWARNINGS"] = "ignore:Unverified HTTPS request" # Variabile globale per la Timezone _current_tz = pytz.UTC def setup_global_logging(settings: Dict[str, Any]): """Configura la Timezone in base al config.yaml.""" global _current_tz debug_cfg = settings.get("debug", {}) tz_name = debug_cfg.get("timezone", "Europe/Rome") try: _current_tz = pytz.timezone(tz_name) except Exception: _current_tz = pytz.UTC def get_timestamp() -> str: """Restituisce il timestamp formattato con la TZ corretta.""" return datetime.now(_current_tz).strftime('%Y-%m-%dT%H:%M:%S.000Z') def log_msg(msg: str): """Funzione di log standardizzata.""" print(f"{get_timestamp()} {msg}", flush=True)