1
0

Improved module loading

This commit is contained in:
Jon Michael Aanes 2024-08-08 17:54:50 +02:00
parent 0e21db41cb
commit 7b010266bd
Signed by: Jmaa
SSH Key Fingerprint: SHA256:Ab0GfHGCblESJx7JRE4fj4bFy/KRpeLhi41y4pF3sNA

View File

@ -57,6 +57,8 @@ __all__ = [
import importlib
import logging
import inspect
import sys
from . import (
data,
@ -67,9 +69,12 @@ from ._version import __version__
logger = logging.getLogger(__name__)
current_module = sys.modules[__name__]
def load_backend(name: str) -> object | None:
try:
return importlib.import_module(f'{__name__}.{name}')
imported_module = importlib.import_module(f'{__name__}.{name}')
current_module.setmember(name, imported_module)
except Exception:
logger.exception(
'Backend %s could not be imported? Are all module dependencies installed?',
@ -79,7 +84,8 @@ def load_backend(name: str) -> object | None:
# Import modules
defi_kraken = load_backend('defi_kraken')
defi_kucoin = load_backend('defi_kucoin')
investbank_nordnet = load_backend('investbank_nordnet')
defi_partisia_blockchain = load_backend('defi_partisia_blockchain')
backend_modules = ['defi_kraken', 'defi_kucoin', 'investbank_nordnet', 'defi_partisia_blockchain']
for m in backend_modules:
load_backend(m)
del m
del backend_modules, current_module