1
This commit is contained in:
31
trellis/renderers/__init__.py
Executable file
31
trellis/renderers/__init__.py
Executable file
@@ -0,0 +1,31 @@
|
||||
import importlib
|
||||
|
||||
__attributes = {
|
||||
'OctreeRenderer': 'octree_renderer',
|
||||
'GaussianRenderer': 'gaussian_render',
|
||||
'MeshRenderer': 'mesh_renderer',
|
||||
}
|
||||
|
||||
__submodules = []
|
||||
|
||||
__all__ = list(__attributes.keys()) + __submodules
|
||||
|
||||
def __getattr__(name):
|
||||
if name not in globals():
|
||||
if name in __attributes:
|
||||
module_name = __attributes[name]
|
||||
module = importlib.import_module(f".{module_name}", __name__)
|
||||
globals()[name] = getattr(module, name)
|
||||
elif name in __submodules:
|
||||
module = importlib.import_module(f".{name}", __name__)
|
||||
globals()[name] = module
|
||||
else:
|
||||
raise AttributeError(f"module {__name__} has no attribute {name}")
|
||||
return globals()[name]
|
||||
|
||||
|
||||
# For Pylance
|
||||
if __name__ == '__main__':
|
||||
from .octree_renderer import OctreeRenderer
|
||||
from .gaussian_render import GaussianRenderer
|
||||
from .mesh_renderer import MeshRenderer
|
||||
Reference in New Issue
Block a user