open3dforge / TRELLIS.2 /trellis2 /__init__.py
Reverb's picture
Fix: make trellis2/__init__.py fully lazy to survive partial-module namespace
313ffe0
Raw
History Blame Contribute Delete
609 Bytes
import importlib
# Lazy-load all submodules to avoid circular-import errors when trellis2 is
# first imported from an environment where a partial trellis2 namespace already
# exists in sys.modules (e.g. registered as a dependency by o_voxel/flex_gemm).
_submodules = frozenset((
'models', 'modules', 'pipelines',
'renderers', 'representations', 'utils',
))
def __getattr__(name):
if name in _submodules:
module = importlib.import_module(f'.{name}', __name__)
globals()[name] = module
return module
raise AttributeError(f"module 'trellis2' has no attribute {name!r}")