Source code for ezflow.modules.build

from ..utils import Registry

MODULE_REGISTRY = Registry("MODULE")


[docs]def build_module(cfg_grp=None, name=None, instantiate=True, **kwargs): """ Build a module from a registered module name Parameters ---------- cfg_grp : :class:`CfgNode` Config to pass to the module name : str Name of the registered module instantiate : bool Whether to instantiate the module or not kwargs : dict Keyword arguments to pass to the module Returns ------- object The module object """ if cfg_grp is None: assert name is not None, "Must provide name or cfg_grp" assert dict(**kwargs) is not None, "Must provide either cfg_grp or kwargs" if name is None: name = cfg_grp.NAME module = MODULE_REGISTRY.get(name) if not instantiate: return module if cfg_grp is None: return module(**kwargs) return module(cfg_grp, **kwargs)