From d143b02097e6934adcbf6b0cdba25aa5a448e2a0 Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Fri, 12 Dec 2025 17:25:48 -0800 Subject: [PATCH] [registry] Add a strict mode to model registration (#14933) --- python/sglang/srt/models/registry.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/python/sglang/srt/models/registry.py b/python/sglang/srt/models/registry.py index 76cb5b640..989b01f7a 100644 --- a/python/sglang/srt/models/registry.py +++ b/python/sglang/srt/models/registry.py @@ -19,8 +19,10 @@ class _ModelRegistry: # Keyed by model_arch models: Dict[str, Union[Type[nn.Module], str]] = field(default_factory=dict) - def register(self, package_name: str, overwrite: bool = False): - new_models = import_model_classes(package_name) + def register( + self, package_name: str, overwrite: bool = False, strict: bool = False + ): + new_models = import_model_classes(package_name, strict=strict) if overwrite: self.models.update(new_models) else: @@ -88,7 +90,7 @@ class _ModelRegistry: @lru_cache() -def import_model_classes(package_name: str): +def import_model_classes(package_name: str, strict: bool = False): model_arch_name_to_cls = {} package = importlib.import_module(package_name) for _, name, ispkg in pkgutil.iter_modules(package.__path__, package_name + "."): @@ -100,6 +102,8 @@ def import_model_classes(package_name: str): try: module = importlib.import_module(name) except Exception as e: + if strict: + raise logger.warning(f"Ignore import error when loading {name}: {e}") continue if hasattr(module, "EntryClass"):