import os import json from dotenv import load_dotenv load_dotenv() SETTINGS_FILE = "settings.json" def load_settings_from_file(): if not os.path.exists(SETTINGS_FILE): return {} try: with open(SETTINGS_FILE, "r") as f: return json.load(f) except Exception as e: print(f"Error loading settings file: {e}") return {} def save_settings_to_file(settings): try: current_settings = load_settings_from_file() current_settings.update(settings) with open(SETTINGS_FILE, "w") as f: json.dump(current_settings, f, indent=4) return True except Exception as e: print(f"Error saving settings file: {e}") return False def get_setting(key, default=None): # 1. Check file settings file_settings = load_settings_from_file() if key in file_settings and file_settings[key]: return file_settings[key] # 2. Check environment variables # We reload dotenv to check if .env has changed (though usually requires restart) # create_ref: but os.environ is what matters. val = os.getenv(key) if val: return val return default