diff --git a/README.md b/README.md index 056013a09..f1d73178e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [](https://pypi.org/project/winml-cli/)  -**Windows ML CLI** is a command line tool for building **portable, performant, and high-quality** AI models for Windows ML. It takes you from a source model — whether from Hugging Face or your own pipeline — to a hardware-optimized artifact in a reproducible workflow. +**WinML CLI** is a command line tool for building **portable, performant, and high-quality** AI models for Windows ML. It takes you from a source model — whether from Hugging Face or your own pipeline — to a hardware-optimized artifact in a reproducible workflow. Purpose-built for Windows hardware diversity, the CLI handles conversion, graph optimization, and compilation across AMD, Intel, NVIDIA, and Qualcomm targets. The CLI fits naturally into CI/CD pipelines so teams can validate and ship models easily. diff --git a/pyproject.toml b/pyproject.toml index 64a80427b..2158b5fd8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ requires = [ "setuptools>=61", "wheel" ] [project] name = "winml-cli" version = "0.1.0" -description = "Accelerate Model Deployment on WinML" +description = "Accelerate Model Deployment on Windows ML" readme = "README.md" keywords = [ "onnx", "winml" ] license = { text = "MIT" } diff --git a/src/winml/modelkit/__init__.py b/src/winml/modelkit/__init__.py index 3e3142d71..ef9748312 100644 --- a/src/winml/modelkit/__init__.py +++ b/src/winml/modelkit/__init__.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. # -------------------------------------------------------------------------- -"""WinML CLI - Accelerate Model Deployment on WinML. +"""WinML CLI - Accelerate Model Deployment on Windows ML. WinML CLI provides tools for converting PyTorch models to optimized ONNX format with support for QNN (Qualcomm Neural Processing SDK) and OpenVINO backends. diff --git a/src/winml/modelkit/cli.py b/src/winml/modelkit/cli.py index 2e4745950..287c5b60e 100644 --- a/src/winml/modelkit/cli.py +++ b/src/winml/modelkit/cli.py @@ -240,7 +240,7 @@ def format_commands(self, ctx: click.Context, formatter: click.HelpFormatter) -> invoke_without_command=True, context_settings={"help_option_names": ["-h", "--help"]}, ) -@click.version_option(version=__version__, prog_name="winml") +@click.version_option(version=__version__, prog_name="WinML CLI") @verbosity_options() @click.option( "--debug", @@ -251,9 +251,9 @@ def format_commands(self, ctx: click.Context, formatter: click.HelpFormatter) -> ) @click.pass_context def main(ctx: click.Context, verbose: int, quiet: bool, debug: bool) -> None: - """WinML CLI - Accelerate Model Deployment on WinML. + """WinML CLI - Accelerate Model Deployment on Windows ML. - Universal ONNX export with various WinML execution providers support. + Universal ONNX export with various Windows ML execution providers support. """ # --debug is a backward-compat alias for -vv if debug: diff --git a/src/winml/modelkit/commands/analyze.py b/src/winml/modelkit/commands/analyze.py index b05463a58..95ac5c8f5 100644 --- a/src/winml/modelkit/commands/analyze.py +++ b/src/winml/modelkit/commands/analyze.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. # -------------------------------------------------------------------------- -"""Analyze command for winml CLI. +"""Analyze command for WinML CLI. Analyzes ONNX models for runtime support with Rich Live stacked bar visualization, showing real-time per-node progress display. diff --git a/src/winml/modelkit/commands/compile.py b/src/winml/modelkit/commands/compile.py index 22c1e0097..0ba450fb9 100644 --- a/src/winml/modelkit/commands/compile.py +++ b/src/winml/modelkit/commands/compile.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. # -------------------------------------------------------------------------- -"""Compile command for winml CLI. +"""Compile command for WinML CLI. This module provides the compile command that compiles ONNX models to EP-specific formats (e.g., QNN EPContext). diff --git a/src/winml/modelkit/commands/export.py b/src/winml/modelkit/commands/export.py index 729a41802..ef3a35d75 100644 --- a/src/winml/modelkit/commands/export.py +++ b/src/winml/modelkit/commands/export.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. # -------------------------------------------------------------------------- -"""Export command for winml CLI. +"""Export command for WinML CLI. This module provides the export command that uses export_onnx() as the single implementation path for HuggingFace to ONNX model conversion. diff --git a/src/winml/modelkit/commands/optimize.py b/src/winml/modelkit/commands/optimize.py index 287f9a423..89c6670a0 100644 --- a/src/winml/modelkit/commands/optimize.py +++ b/src/winml/modelkit/commands/optimize.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. # -------------------------------------------------------------------------- -"""Optimize command for winml CLI. +"""Optimize command for WinML CLI. This module provides the optimize command that uses the capability-driven optimizer for ONNX model optimization with fusion and graph optimizations. diff --git a/src/winml/modelkit/commands/quantize.py b/src/winml/modelkit/commands/quantize.py index 90fa794bb..7a68756da 100644 --- a/src/winml/modelkit/commands/quantize.py +++ b/src/winml/modelkit/commands/quantize.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. # -------------------------------------------------------------------------- -"""Quantize command for winml CLI. +"""Quantize command for WinML CLI. This module provides the quantize command that inserts QDQ (Quantize-Dequantize) nodes into ONNX models for quantization-aware inference. diff --git a/src/winml/modelkit/serve/app.py b/src/winml/modelkit/serve/app.py index d19ee96bd..7e7140018 100644 --- a/src/winml/modelkit/serve/app.py +++ b/src/winml/modelkit/serve/app.py @@ -721,7 +721,7 @@ async def get_logs(after: int = 0) -> dict[str, Any]: "/v1/cli/{command}", response_model=CliResponse, tags=["cli"], - summary="Run any winml CLI command", + summary="Run any WinML CLI command", ) async def cli_command(command: str, request: CliRequest) -> CliResponse: """Proxy to the CLI wrapper — available in all server modes.""" diff --git a/src/winml/modelkit/serve/cli_api.py b/src/winml/modelkit/serve/cli_api.py index c47a5cf56..501aba357 100644 --- a/src/winml/modelkit/serve/cli_api.py +++ b/src/winml/modelkit/serve/cli_api.py @@ -5,7 +5,7 @@ """Phase 0: CLI-as-API FastAPI application. -Wraps every winml CLI command as a REST endpoint using Click's CliRunner. +Wraps every WinML CLI command as a REST endpoint using Click's CliRunner. Each request is stateless — the model loads, runs, and unloads within a single CliRunner.invoke() call. @@ -220,7 +220,7 @@ def _extract_json_from_stdout(stdout: str) -> dict[str, Any] | list[Any] | None: def _invoke(command: str, args: dict[str, Any]) -> CliResponse: - """Invoke a winml CLI command via CliRunner and return a CliResponse. + """Invoke a WinML CLI command via CliRunner and return a CliResponse. Applies the per-command JSON extraction strategy to populate ``result``. """ @@ -331,7 +331,7 @@ async def health() -> HealthResponse: "/v1/cli/{command}", response_model=CliResponse, tags=["CLI"], - summary="Invoke a winml CLI command", + summary="Invoke a WinML CLI command", responses={ 200: {"description": "Command invoked (check exit_code for success/failure)"}, 404: {"description": "Unknown command name"}, diff --git a/src/winml/modelkit/serve/static/index.html b/src/winml/modelkit/serve/static/index.html index 1b34d9c90..6dd6611fa 100644 --- a/src/winml/modelkit/serve/static/index.html +++ b/src/winml/modelkit/serve/static/index.html @@ -823,7 +823,7 @@
GET /v1/resources — Memory and request statsGET /v1/models/{id}/stats — Live latency stats for a modelGET /v1/logs — Poll recent log linesPOST /v1/cli/{command} — Run any winml CLI command
+ POST /v1/cli/{command} — Run any WinML CLI command
diff --git a/src/winml/modelkit/utils/console.py b/src/winml/modelkit/utils/console.py
index 165629ef2..8368c8a93 100644
--- a/src/winml/modelkit/utils/console.py
+++ b/src/winml/modelkit/utils/console.py
@@ -3,7 +3,7 @@
# Licensed under the MIT License.
# --------------------------------------------------------------------------
-"""Shared console output utilities for winml CLI commands.
+"""Shared console output utilities for WinML CLI commands.
Provides consistent Rich-based formatting for:
- Config command: headers, I/O specs, resolution summary
diff --git a/tests/cli/test_help_cli.py b/tests/cli/test_help_cli.py
index 346594311..497bb9955 100644
--- a/tests/cli/test_help_cli.py
+++ b/tests/cli/test_help_cli.py
@@ -212,3 +212,7 @@ def test_version_flag_executes(self) -> None:
result = _invoke("--version")
assert result.exit_code == 0
assert __version__ in result.output
+
+ def test_version_uses_canonical_product_name(self) -> None:
+ """``winml --version`` must brand the product as 'WinML CLI' (issue #510)."""
+ assert "WinML CLI" in _invoke("--version").output