1414
1515from typing import List , Union , Optional , Tuple
1616
17+ import sys
18+ import importlib_metadata
1719import logging
1820import argparse
1921from argparse import ArgumentParser , Namespace
2022
2123from model_analyzer .config .input .config_command_profile import ConfigCommandProfile
2224from 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
2629logger = 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 ()
0 commit comments