mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-09 15:58:48 +00:00
Avoid eager imports to fix circular dependency
This commit is contained in:
@@ -1,30 +1,17 @@
|
||||
# password_manager/__init__.py
|
||||
|
||||
import logging
|
||||
import traceback
|
||||
"""Expose password manager components with lazy imports."""
|
||||
|
||||
try:
|
||||
from .manager import PasswordManager
|
||||
|
||||
logging.info("PasswordManager module imported successfully.")
|
||||
except Exception as e:
|
||||
logging.error(f"Failed to import PasswordManager module: {e}")
|
||||
logging.error(traceback.format_exc()) # Log full traceback
|
||||
|
||||
try:
|
||||
from .config_manager import ConfigManager
|
||||
|
||||
logging.info("ConfigManager module imported successfully.")
|
||||
except Exception as e:
|
||||
logging.error(f"Failed to import ConfigManager module: {e}")
|
||||
logging.error(traceback.format_exc())
|
||||
|
||||
try:
|
||||
from .vault import Vault
|
||||
|
||||
logging.info("Vault module imported successfully.")
|
||||
except Exception as e:
|
||||
logging.error(f"Failed to import Vault module: {e}")
|
||||
logging.error(traceback.format_exc())
|
||||
from importlib import import_module
|
||||
|
||||
__all__ = ["PasswordManager", "ConfigManager", "Vault"]
|
||||
|
||||
|
||||
def __getattr__(name: str):
|
||||
if name == "PasswordManager":
|
||||
return import_module(".manager", __name__).PasswordManager
|
||||
if name == "ConfigManager":
|
||||
return import_module(".config_manager", __name__).ConfigManager
|
||||
if name == "Vault":
|
||||
return import_module(".vault", __name__).Vault
|
||||
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
||||
|
Reference in New Issue
Block a user