31 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import importlib
 | 
						|
import socket
 | 
						|
import traceback
 | 
						|
from libqtile.log_utils import logger
 | 
						|
 | 
						|
def load_config_class():
 | 
						|
    # Try to import host-specific configuration first
 | 
						|
    hostname = socket.gethostname().lower()
 | 
						|
    if hostname:
 | 
						|
        try:
 | 
						|
            host_module = importlib.import_module(f"kuro.config.{hostname}")
 | 
						|
            return getattr(host_module, "Config")
 | 
						|
        except ImportError:
 | 
						|
            pass
 | 
						|
    logger.warning(f"No host-specific configuration available for {hostname}. Loading general config...")
 | 
						|
 | 
						|
    # If no config yet, load general Kuro Config object
 | 
						|
    try:
 | 
						|
        conf_module = importlib.import_module("kuro.config")
 | 
						|
        return getattr(conf_module, "Config")
 | 
						|
    except ImportError as e:
 | 
						|
        logger.error(traceback.format_exc())
 | 
						|
    logger.error("Could not load Kuro Config. Trying to load BaseConfig. Error: {}".format(e))
 | 
						|
 | 
						|
    # If no config yet, load fallback BaseConfig
 | 
						|
    try:
 | 
						|
        base_module = importlib.import_module("kuro.base")
 | 
						|
        return getattr(base_module, "BaseConfig")
 | 
						|
    except ImportError as e:
 | 
						|
        logger.error(traceback.format_exc())
 | 
						|
    return None
 |