Add --model-config-parser registry for pluggable config formats (#25050)

Signed-off-by: Xingyu Liu <charlotteliu12x@gmail.com>
This commit is contained in:
Xingyu Liu
2026-05-14 01:54:06 -07:00
committed by GitHub
parent 4be25f2428
commit 2279b79f35
5 changed files with 326 additions and 121 deletions
@@ -0,0 +1,62 @@
"""Unit tests for srt/configs/model_config_parser_registry.py"""
import unittest
from transformers import PretrainedConfig
from sglang.srt.configs.model_config_parser_registry import (
_MODEL_CONFIG_PARSER_REGISTRY,
ModelConfigParserBase,
get_model_config_parser,
register_model_config_parser,
)
from sglang.test.ci.ci_register import register_cpu_ci
from sglang.test.test_utils import CustomTestCase
register_cpu_ci(est_time=1, suite="stage-a-test-cpu")
class _FakeParser(ModelConfigParserBase):
def parse(self, model, trust_remote_code, revision=None, **kwargs):
return PretrainedConfig()
class _AnotherFakeParser(ModelConfigParserBase):
def parse(self, model, trust_remote_code, revision=None, **kwargs):
return PretrainedConfig()
class TestModelConfigParserRegistry(CustomTestCase):
def setUp(self):
self._saved_registry = dict(_MODEL_CONFIG_PARSER_REGISTRY)
_MODEL_CONFIG_PARSER_REGISTRY.clear()
def tearDown(self):
_MODEL_CONFIG_PARSER_REGISTRY.clear()
_MODEL_CONFIG_PARSER_REGISTRY.update(self._saved_registry)
def test_register_then_get_roundtrip(self):
register_model_config_parser("fake")(_FakeParser)
self.assertIsInstance(get_model_config_parser("fake"), _FakeParser)
def test_register_rejects_non_subclass(self):
class NotAParser:
pass
with self.assertRaises(ValueError) as ctx:
register_model_config_parser("bad")(NotAParser)
self.assertIn("ModelConfigParserBase", str(ctx.exception))
def test_unknown_name_raises_with_registered_list(self):
register_model_config_parser("fake")(_FakeParser)
register_model_config_parser("another")(_AnotherFakeParser)
with self.assertRaises(ValueError) as ctx:
get_model_config_parser("does-not-exist")
msg = str(ctx.exception)
self.assertIn("does-not-exist", msg)
self.assertIn("another", msg)
self.assertIn("fake", msg)
if __name__ == "__main__":
unittest.main()