ec436095dd
Book-CI / test (macos-latest) (push) Waiting to run
Deploy / deploy (macos-latest) (push) Waiting to run
Deploy / deploy (ubuntu-latest) (push) Waiting to run
Deploy / deploy (windows-latest) (push) Waiting to run
Release to PyPI / Build & publish sglang-kt (push) Waiting to run
Release to PyPI / Build kt-kernel (Python 3.11) (push) Waiting to run
Release to PyPI / Build kt-kernel (Python 3.12) (push) Waiting to run
Release to PyPI / Publish kt-kernel to PyPI (push) Blocked by required conditions
Book-CI / test (ubuntu-latest) (push) Waiting to run
Book-CI / test (windows-latest) (push) Waiting to run
Release Fake Tag / publish (push) Waiting to run
103 lines
3.6 KiB
Python
103 lines
3.6 KiB
Python
"""
|
|
Version command for kt-cli.
|
|
|
|
Displays version information for kt-cli and related packages.
|
|
"""
|
|
|
|
import platform
|
|
from typing import Optional
|
|
|
|
import typer
|
|
|
|
from kt_kernel.cli import __version__
|
|
from kt_kernel.cli.i18n import t
|
|
from kt_kernel.cli.utils.console import console, print_version_table
|
|
from kt_kernel.cli.utils.environment import detect_cuda_version, get_installed_package_version
|
|
|
|
|
|
def _get_sglang_info() -> str:
|
|
"""Get sglang-kt version and installation source information."""
|
|
from kt_kernel.cli.utils.sglang_checker import check_sglang_installation
|
|
|
|
info = check_sglang_installation()
|
|
|
|
if not info["installed"]:
|
|
return t("version_not_installed")
|
|
|
|
# Get version from package metadata (prefer sglang-kt)
|
|
version = get_installed_package_version("sglang-kt")
|
|
if not version:
|
|
version = get_installed_package_version("sglang")
|
|
if not version:
|
|
version = info.get("version") or "unknown"
|
|
|
|
# Determine source label
|
|
if info.get("is_kvcache_fork"):
|
|
if info["from_source"] and info.get("git_info"):
|
|
git_remote = info["git_info"].get("remote", "")
|
|
return f"{version} [dim](Source: {git_remote})[/dim]"
|
|
elif info["editable"]:
|
|
return f"{version} [dim](editable)[/dim]"
|
|
else:
|
|
return f"{version} [dim](sglang-kt)[/dim]"
|
|
elif info["from_source"]:
|
|
if info.get("git_info"):
|
|
git_remote = info["git_info"].get("remote", "")
|
|
return f"{version} [dim](Source: {git_remote})[/dim]"
|
|
return f"{version} [dim](source)[/dim]"
|
|
else:
|
|
return f"{version} [dim](PyPI)[/dim]"
|
|
|
|
|
|
def version(
|
|
verbose: bool = typer.Option(False, "--verbose", "-v", help="Show detailed version info"),
|
|
) -> None:
|
|
"""Show version information."""
|
|
console.print(f"\n[bold]{t('version_info')}[/bold] v{__version__}\n")
|
|
|
|
# Basic info
|
|
versions = {
|
|
t("version_python"): platform.python_version(),
|
|
t("version_platform"): f"{platform.system()} {platform.release()}",
|
|
}
|
|
|
|
# CUDA version
|
|
cuda_version = detect_cuda_version()
|
|
versions[t("version_cuda")] = cuda_version or t("version_cuda_not_found")
|
|
|
|
print_version_table(versions)
|
|
|
|
# Always show key packages with installation source
|
|
console.print("\n[bold]Packages:[/bold]\n")
|
|
|
|
sglang_info = _get_sglang_info()
|
|
key_packages = {
|
|
t("version_kt_kernel"): get_installed_package_version("kt-kernel") or t("version_not_installed"),
|
|
t("version_sglang"): sglang_info,
|
|
}
|
|
|
|
print_version_table(key_packages)
|
|
|
|
# Show SGLang installation hint if not installed
|
|
if sglang_info == t("version_not_installed"):
|
|
from kt_kernel.cli.utils.sglang_checker import print_sglang_install_instructions
|
|
|
|
console.print()
|
|
print_sglang_install_instructions()
|
|
|
|
if verbose:
|
|
console.print("\n[bold]Additional Packages:[/bold]\n")
|
|
|
|
package_versions = {
|
|
t("version_ktransformers"): get_installed_package_version("ktransformers") or t("version_not_installed"),
|
|
t("version_llamafactory"): get_installed_package_version("llamafactory") or t("version_not_installed"),
|
|
"typer": get_installed_package_version("typer") or t("version_not_installed"),
|
|
"rich": get_installed_package_version("rich") or t("version_not_installed"),
|
|
"torch": get_installed_package_version("torch") or t("version_not_installed"),
|
|
"transformers": get_installed_package_version("transformers") or t("version_not_installed"),
|
|
}
|
|
|
|
print_version_table(package_versions)
|
|
|
|
console.print()
|