Avoid eager imports to fix circular dependency

This commit is contained in:
thePR0M3TH3AN
2025-06-30 21:05:13 -04:00
parent f60eaa4a1e
commit 6dbf92d71d
2 changed files with 22 additions and 40 deletions

View File

@@ -1,21 +1,16 @@
# nostr/__init__.py
import logging
import traceback
from .client import NostrClient
"""Nostr package exposing :class:`NostrClient` lazily."""
from importlib import import_module
import logging
# Instantiate the logger
logger = logging.getLogger(__name__)
# Initialize the logger for this module
logger = logging.getLogger(__name__) # Correct logger initialization
try:
from .client import NostrClient
logger.info("NostrClient module imported successfully.")
except Exception as e:
logger.error(f"Failed to import NostrClient module: {e}")
logger.error(traceback.format_exc()) # Log full traceback
__all__ = ["NostrClient"]
def __getattr__(name: str):
if name == "NostrClient":
return import_module(".client", __name__).NostrClient
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")

View File

@@ -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}'")