[model-gateway] include smg version command in py binding (#14274)
This commit is contained in:
@@ -15,6 +15,8 @@ import os
|
||||
import sys
|
||||
from typing import List, Optional
|
||||
|
||||
from sglang_router.sglang_router_rs import get_short_version_string, get_version_string
|
||||
|
||||
|
||||
def create_parser() -> argparse.ArgumentParser:
|
||||
"""Create the main CLI parser with subcommands."""
|
||||
@@ -51,6 +53,14 @@ def main(argv: Optional[List[str]] = None) -> None:
|
||||
if argv is None:
|
||||
argv = sys.argv[1:]
|
||||
|
||||
# Handle version flags before parsing
|
||||
if argv and argv[0] in ["--version", "-V"]:
|
||||
if argv[0] == "--version":
|
||||
print(get_version_string())
|
||||
else:
|
||||
print(get_short_version_string())
|
||||
sys.exit(0)
|
||||
|
||||
# Handle empty command - show help
|
||||
if not argv or argv[0] not in ["launch", "server", "-h", "--help"]:
|
||||
parser = create_parser()
|
||||
|
||||
@@ -704,6 +704,18 @@ impl Router {
|
||||
}
|
||||
}
|
||||
|
||||
/// Get formatted version information string with full build details
|
||||
#[pyfunction]
|
||||
fn get_version_string() -> String {
|
||||
version::get_version_string()
|
||||
}
|
||||
|
||||
/// Get short version information string
|
||||
#[pyfunction]
|
||||
fn get_short_version_string() -> String {
|
||||
version::get_short_version_string()
|
||||
}
|
||||
|
||||
#[pymodule]
|
||||
fn sglang_router_rs(m: &Bound<'_, PyModule>) -> PyResult<()> {
|
||||
m.add_class::<PolicyType>()?;
|
||||
@@ -712,5 +724,7 @@ fn sglang_router_rs(m: &Bound<'_, PyModule>) -> PyResult<()> {
|
||||
m.add_class::<PyOracleConfig>()?;
|
||||
m.add_class::<PyPostgresConfig>()?;
|
||||
m.add_class::<Router>()?;
|
||||
m.add_function(wrap_pyfunction!(get_version_string, m)?)?;
|
||||
m.add_function(wrap_pyfunction!(get_short_version_string, m)?)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user