3030import traceback
3131from argparse import Namespace
3232from pathlib import Path
33- from typing import TYPE_CHECKING
3433
3534import genai_perf .logging as logging
35+ from genai_perf import parser
36+ from genai_perf .constants import DEFAULT_PARQUET_FILE
3637from genai_perf .exceptions import GenAIPerfException
37-
38- # Import heavy modules to make type checker happy
39- if TYPE_CHECKING :
40- from genai_perf import parser
41- from genai_perf .constants import DEFAULT_PARQUET_FILE
42- from genai_perf .export_data .json_exporter import JsonExporter
43- from genai_perf .llm_inputs .llm_inputs import LlmInputs
44- from genai_perf .llm_metrics import LLMProfileDataParser
45- from genai_perf .plots .plot_config_parser import PlotConfigParser
46- from genai_perf .plots .plot_manager import PlotManager
47- from genai_perf .tokenizer import Tokenizer , get_tokenizer
48-
49-
50- def import_heavy_modules ():
51- global parser , DEFAULT_PARQUET_FILE , JsonExporter , LlmInputs , LLMProfileDataParser , PlotConfigParser , PlotManager , get_tokenizer
52- from genai_perf import parser
53- from genai_perf .constants import DEFAULT_PARQUET_FILE
54- from genai_perf .export_data .json_exporter import JsonExporter
55- from genai_perf .llm_inputs .llm_inputs import LlmInputs
56- from genai_perf .llm_metrics import LLMProfileDataParser
57- from genai_perf .plots .plot_config_parser import PlotConfigParser
58- from genai_perf .plots .plot_manager import PlotManager
59- from genai_perf .tokenizer import get_tokenizer
38+ from genai_perf .export_data .json_exporter import JsonExporter
39+ from genai_perf .llm_inputs .llm_inputs import LlmInputs
40+ from genai_perf .llm_metrics import LLMProfileDataParser
41+ from genai_perf .plots .plot_config_parser import PlotConfigParser
42+ from genai_perf .plots .plot_manager import PlotManager
43+ from genai_perf .tokenizer import Tokenizer , get_tokenizer
6044
6145
6246def create_artifacts_dirs (args : Namespace ) -> None :
@@ -66,9 +50,8 @@ def create_artifacts_dirs(args: Namespace) -> None:
6650 os .makedirs (plot_dir , exist_ok = True )
6751
6852
69- def generate_inputs (args : Namespace , tokenizer : " Tokenizer" ) -> None :
53+ def generate_inputs (args : Namespace , tokenizer : Tokenizer ) -> None :
7054 # TODO (TMA-1759): review if add_model_name is always true
71- import_heavy_modules ()
7255 input_filename = Path (args .input_file .name ) if args .input_file else None
7356 add_model_name = True
7457 try :
@@ -99,17 +82,14 @@ def generate_inputs(args: Namespace, tokenizer: "Tokenizer") -> None:
9982 )
10083
10184
102- def calculate_metrics (
103- args : Namespace , tokenizer : "Tokenizer"
104- ) -> "LLMProfileDataParser" :
85+ def calculate_metrics (args : Namespace , tokenizer : Tokenizer ) -> LLMProfileDataParser :
10586 return LLMProfileDataParser (
10687 filename = args .profile_export_file ,
10788 tokenizer = tokenizer ,
10889 )
10990
11091
111- def report_output (data_parser : "LLMProfileDataParser" , args : Namespace ) -> None :
112- import_heavy_modules ()
92+ def report_output (data_parser : LLMProfileDataParser , args : Namespace ) -> None :
11393 if args .concurrency :
11494 infer_mode = "concurrency"
11595 load_level = f"{ args .concurrency } "
@@ -152,12 +132,10 @@ def run():
152132 try :
153133 # TMA-1900: refactor CLI handler
154134 logging .init_logging ()
155- import_heavy_modules ()
156135 args , extra_args = parser .parse_args ()
157136 if args .subcommand == "compare" :
158137 args .func (args )
159138 else :
160- import_heavy_modules ()
161139 create_artifacts_dirs (args )
162140 tokenizer = get_tokenizer (args .tokenizer )
163141 generate_inputs (args , tokenizer )
@@ -169,10 +147,6 @@ def run():
169147
170148
171149def main ():
172- # Check if help is requested early
173- if any (arg in sys .argv for arg in ("--help" , "-h" )):
174- return 0
175-
176150 # Interactive use will catch exceptions and log formatted errors rather than
177151 # tracebacks.
178152 try :
0 commit comments