INNER CODE UNIT · Python
__getattr__
OpenNMT/CTranslate2 · python/ctranslate2/__init__.py:67
def __getattr__(name):
if name in _LAZY_SUBMODULES:
import importlib
module = importlib.import_module(f"{__name__}.{name}")
globals()[name] = module
return module
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
def __dir__():
return sorted(set(globals()) | set(_LAZY_SUBMODULES))
# A wildcard import resolves ``__all__`` when it is defined and the module globals
# otherwise, so without this the lazy submodules would silently drop out of
# ``from ctranslate2 import *``. Deriving the list keeps the wildcard surface identical