Skip to main content
Glama
import_strategies.py2.56 kB
"""Import utility functions for dynamic module loading""" import importlib.util import os import sys def try_import_ai_manager(): """Try to import AIManager with fallback strategies.""" try: from ...ai.ai_manager import AIManager ai_manager = AIManager() print(f"DEBUG: Successfully imported AIManager with {len(ai_manager.providers)} providers") return ai_manager except ImportError as e: print(f"DEBUG: Failed to import AIManager: {e}") return None except Exception as e: print(f"DEBUG: Error creating AIManager: {e}") return None def try_import_config_manager(): """Try to import ConfigManager with multiple fallback strategies.""" # Strategy 1: Relative import try: from ...config.config_manager import ConfigManager return ConfigManager() except ImportError: pass # Strategy 2: Absolute import assuming we're in the addon try: from config.config_manager import ConfigManager return ConfigManager() except ImportError: pass # Strategy 3: Direct path import try: # Get the addon directory current_dir = os.path.dirname(os.path.abspath(__file__)) gui_dir = os.path.dirname(current_dir) addon_dir = os.path.dirname(gui_dir) config_dir = os.path.join(addon_dir, "config") if config_dir not in sys.path: sys.path.insert(0, config_dir) from config_manager import ConfigManager return ConfigManager() except ImportError: pass # Strategy 4: Try importing from the current package using importlib try: # Get the path to config_manager.py current_dir = os.path.dirname(os.path.abspath(__file__)) gui_dir = os.path.dirname(current_dir) addon_dir = os.path.dirname(gui_dir) config_file = os.path.join(addon_dir, "config", "config_manager.py") if os.path.exists(config_file): spec = importlib.util.spec_from_file_location( "config_manager", config_file ) config_module = importlib.util.module_from_spec(spec) spec.loader.exec_module(config_module) ConfigManager = config_module.ConfigManager return ConfigManager() except (ImportError, AttributeError, ModuleNotFoundError): # ImportError: Module import failed # AttributeError: Missing ConfigManager class # ModuleNotFoundError: Module not found pass return None

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jango-blockchained/mcp-freecad'

If you have feedback or need assistance with the MCP directory API, please join our Discord server