Skip to content

Commit 1ffa6dc

Browse files
authored
Implement version via CLI in MA (#716)
* Add --version flag support * Add --version flag support * Update * Update version info extraction * Try fixing L0_type_checking error * Remove unused library import * Remove error message * Update function name
1 parent 2d44cc9 commit 1ffa6dc

File tree

2 files changed

+33
-7
lines changed

2 files changed

+33
-7
lines changed

model_analyzer/cli/cli.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,17 @@
1414

1515
from typing import List, Union, Optional, Tuple
1616

17+
import sys
18+
import importlib_metadata
1719
import logging
1820
import argparse
1921
from argparse import ArgumentParser, Namespace
2022

2123
from model_analyzer.config.input.config_command_profile import ConfigCommandProfile
2224
from model_analyzer.config.input.config_command_report import ConfigCommandReport
25+
from model_analyzer.model_analyzer_exceptions import TritonModelAnalyzerException
2326

24-
from model_analyzer.constants import LOGGER_NAME
27+
from model_analyzer.constants import LOGGER_NAME, PACKAGE_NAME
2528

2629
logger = logging.getLogger(LOGGER_NAME)
2730

@@ -56,12 +59,17 @@ def _add_global_options(self):
5659
'--verbose',
5760
action='store_true',
5861
help='Show detailed logs, messages and status.')
59-
self._parser.add_argument('-m',
60-
'--mode',
61-
type=str,
62-
default='online',
63-
choices=['online', 'offline'],
64-
help='Choose a preset configuration mode.')
62+
self._parser.add_argument(
63+
'-m',
64+
'--mode',
65+
type=str,
66+
default='online',
67+
choices=['online', 'offline'],
68+
help='Choose a preset configuration mode.')
69+
self._parser.add_argument(
70+
'--version',
71+
action='store_true',
72+
help='Show the Model Analyzer version.')
6573

6674
def add_subcommand(self, cmd, help, config=None):
6775
"""
@@ -124,6 +132,18 @@ def _add_config_arguments(self, subparser, config):
124132
**config_field.parser_args(),
125133
)
126134

135+
def _show_model_analyzer_version(self):
136+
"""
137+
Displays the current version of Model Analyzer and exits.
138+
"""
139+
try:
140+
version = importlib_metadata.version(PACKAGE_NAME)
141+
print(version)
142+
sys.exit(0)
143+
except importlib_metadata.PackageNotFoundError:
144+
raise TritonModelAnalyzerException(
145+
f"Version information is not available")
146+
127147
def parse(
128148
self,
129149
input_args: Optional[List] = None
@@ -150,6 +170,9 @@ def parse(
150170

151171
args = self._parser.parse_args(input_args)
152172

173+
if args.version:
174+
self._show_model_analyzer_version()
175+
153176
if args.subcommand is None:
154177
self._parser.print_help()
155178
self._parser.exit()

model_analyzer/constants.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,6 @@
6565

6666
# Measurement constants
6767
INVALID_MEASUREMENT_THRESHOLD = 2
68+
69+
# Model analyzer package name
70+
PACKAGE_NAME = "triton-model-analyzer"

0 commit comments

Comments
 (0)