import os import configparser from pathlib import Path # Base directory for the component BASE_DIR = Path(__file__).resolve().parent.parent CONFIG_FILE = BASE_DIR / 'config.ini' def get_config_value(section: str, key: str, fallback: str = None) -> str: """ Get a configuration value with priority: 1. Environment Variable (OVPMON_{SECTION}_{KEY}) 2. config.ini in the component root 3. Fallback value """ # 1. Check Environment Variable env_key = f"OVPMON_{section.upper()}_{key.upper()}".replace('-', '_').replace(' ', '_') env_val = os.getenv(env_key) if env_val is not None: return env_val # 2. Check config.ini if CONFIG_FILE.exists(): try: config = configparser.ConfigParser() config.read(CONFIG_FILE) if config.has_section(section) and config.has_option(section, key): return config.get(section, key) except Exception as e: print(f"[CONFIG] Error reading {CONFIG_FILE}: {e}") return fallback