cli: support sglang version (#17250)
This commit is contained in:
@@ -2,10 +2,19 @@ import argparse
|
||||
|
||||
from sglang.cli.generate import generate
|
||||
from sglang.cli.serve import serve
|
||||
from sglang.cli.utils import get_git_commit_hash
|
||||
from sglang.version import __version__
|
||||
|
||||
|
||||
def version(args, extra_argv):
|
||||
print(f"sglang version: {__version__}")
|
||||
print(f"git revision: {get_git_commit_hash()[:7]}")
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
# complex sub commands
|
||||
subparsers = parser.add_subparsers(dest="subcommand", required=True)
|
||||
|
||||
serve_parser = subparsers.add_parser(
|
||||
@@ -22,5 +31,12 @@ def main():
|
||||
)
|
||||
generate_parser.set_defaults(func=generate)
|
||||
|
||||
# simple commands
|
||||
version_parser = subparsers.add_parser(
|
||||
"version",
|
||||
help="Show the version information.",
|
||||
)
|
||||
version_parser.set_defaults(func=version)
|
||||
|
||||
args, extra_argv = parser.parse_known_args()
|
||||
args.func(args, extra_argv)
|
||||
|
||||
@@ -2,7 +2,9 @@ import hashlib
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import subprocess
|
||||
import tempfile
|
||||
from functools import lru_cache
|
||||
from typing import Optional
|
||||
|
||||
import filelock
|
||||
@@ -150,3 +152,22 @@ def get_model_path(extra_argv):
|
||||
"Please provide the path to the model."
|
||||
)
|
||||
return model_path
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_git_commit_hash() -> str:
|
||||
try:
|
||||
commit_hash = os.environ.get("SGLANG_GIT_COMMIT")
|
||||
if not commit_hash:
|
||||
commit_hash = (
|
||||
subprocess.check_output(
|
||||
["git", "rev-parse", "HEAD"], stderr=subprocess.DEVNULL
|
||||
)
|
||||
.strip()
|
||||
.decode("utf-8")
|
||||
)
|
||||
_CACHED_COMMIT_HASH = commit_hash
|
||||
return commit_hash
|
||||
except (subprocess.CalledProcessError, FileNotFoundError):
|
||||
_CACHED_COMMIT_HASH = "N/A"
|
||||
return "N/A"
|
||||
|
||||
@@ -149,7 +149,7 @@ class ComponentLoader(ABC):
|
||||
"""
|
||||
gpu_mem_before_loading = current_platform.get_available_gpu_memory()
|
||||
logger.info(
|
||||
"Loading %s. avail mem: %.2f GB",
|
||||
"Loading %s from %s. avail mem: %.2f GB",
|
||||
module_name,
|
||||
component_model_path,
|
||||
gpu_mem_before_loading,
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
try:
|
||||
from sglang._version import __version__, __version_tuple__
|
||||
except ImportError:
|
||||
# Fallback for development without build
|
||||
__version__ = "0.0.0.dev0"
|
||||
__version_tuple__ = (0, 0, 0, "dev0")
|
||||
try:
|
||||
import importlib.metadata
|
||||
|
||||
__version__ = importlib.metadata.version("sglang")
|
||||
__version_tuple__ = tuple(__version__.split("."))
|
||||
except Exception:
|
||||
try:
|
||||
import pathlib
|
||||
|
||||
from setuptools_scm import get_version
|
||||
|
||||
# point to the directory containing pyproject.toml.
|
||||
project_root = pathlib.Path(__file__).parent.parent.parent
|
||||
__version__ = get_version(
|
||||
root=str(project_root), fallback_version="0.0.0.dev0"
|
||||
)
|
||||
__version_tuple__ = tuple(__version__.split("."))
|
||||
except Exception:
|
||||
# Fallback for development without build
|
||||
__version__ = "0.0.0.dev0"
|
||||
__version_tuple__ = (0, 0, 0, "dev0")
|
||||
|
||||
Reference in New Issue
Block a user