Fix lazy import location (#795)
This commit is contained in:
@@ -1,27 +1,3 @@
|
|||||||
import importlib
|
|
||||||
|
|
||||||
|
|
||||||
class LazyImport:
|
|
||||||
def __init__(self, module_name, class_name):
|
|
||||||
self.module_name = module_name
|
|
||||||
self.class_name = class_name
|
|
||||||
self._module = None
|
|
||||||
|
|
||||||
def _load(self):
|
|
||||||
if self._module is None:
|
|
||||||
module = importlib.import_module(self.module_name)
|
|
||||||
self._module = getattr(module, self.class_name)
|
|
||||||
return self._module
|
|
||||||
|
|
||||||
def __getattr__(self, name):
|
|
||||||
module = self._load()
|
|
||||||
return getattr(module, name)
|
|
||||||
|
|
||||||
def __call__(self, *args, **kwargs):
|
|
||||||
module = self._load()
|
|
||||||
return module(*args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
# SGL API Components
|
# SGL API Components
|
||||||
from sglang.api import (
|
from sglang.api import (
|
||||||
Runtime,
|
Runtime,
|
||||||
@@ -49,13 +25,14 @@ from sglang.global_config import global_config
|
|||||||
|
|
||||||
# SGL Backends
|
# SGL Backends
|
||||||
from sglang.lang.backend.runtime_endpoint import RuntimeEndpoint
|
from sglang.lang.backend.runtime_endpoint import RuntimeEndpoint
|
||||||
|
from sglang.utils import LazyImport
|
||||||
|
from sglang.version import __version__
|
||||||
|
|
||||||
Anthropic = LazyImport("sglang.lang.backend.anthropic", "Anthropic")
|
Anthropic = LazyImport("sglang.lang.backend.anthropic", "Anthropic")
|
||||||
LiteLLM = LazyImport("sglang.lang.backend.litellm", "LiteLLM")
|
LiteLLM = LazyImport("sglang.lang.backend.litellm", "LiteLLM")
|
||||||
OpenAI = LazyImport("sglang.lang.backend.openai", "OpenAI")
|
OpenAI = LazyImport("sglang.lang.backend.openai", "OpenAI")
|
||||||
VertexAI = LazyImport("sglang.lang.backend.vertexai", "VertexAI")
|
VertexAI = LazyImport("sglang.lang.backend.vertexai", "VertexAI")
|
||||||
|
|
||||||
from .version import __version__
|
|
||||||
|
|
||||||
# public APIs management
|
# public APIs management
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
"""Common utilities."""
|
"""Common utilities."""
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
|
import importlib
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import signal
|
import signal
|
||||||
@@ -261,3 +262,24 @@ def graceful_registry(sub_module_name):
|
|||||||
logger.info(f"{sub_module_name} recive sigterm")
|
logger.info(f"{sub_module_name} recive sigterm")
|
||||||
|
|
||||||
signal.signal(signal.SIGTERM, graceful_shutdown)
|
signal.signal(signal.SIGTERM, graceful_shutdown)
|
||||||
|
|
||||||
|
|
||||||
|
class LazyImport:
|
||||||
|
def __init__(self, module_name, class_name):
|
||||||
|
self.module_name = module_name
|
||||||
|
self.class_name = class_name
|
||||||
|
self._module = None
|
||||||
|
|
||||||
|
def _load(self):
|
||||||
|
if self._module is None:
|
||||||
|
module = importlib.import_module(self.module_name)
|
||||||
|
self._module = getattr(module, self.class_name)
|
||||||
|
return self._module
|
||||||
|
|
||||||
|
def __getattr__(self, name):
|
||||||
|
module = self._load()
|
||||||
|
return getattr(module, name)
|
||||||
|
|
||||||
|
def __call__(self, *args, **kwargs):
|
||||||
|
module = self._load()
|
||||||
|
return module(*args, **kwargs)
|
||||||
|
|||||||
Reference in New Issue
Block a user