55
66主程序入口
77
8- 提供命令行和交互式两种运行模式 。
8+ 提供交互式运行模式与打包入口 。
99"""
1010
11- import argparse
1211import subprocess
1312import sys
1413from pathlib import Path
1514from typing import List , Optional
1615
1716from .config import ConfigManager
1817from .core .logging_config import get_logger , setup_logging
19- from .ui .cli import CLIInterface
2018from .ui .interactive import InteractiveInterface
2119
2220
23- def setup_argument_parser () -> argparse . ArgumentParser :
21+ def setup_argument_parser ():
2422 """设置命令行参数解析器
2523
2624 Returns:
2725 argparse.ArgumentParser: 配置好的参数解析器
2826 """
27+ import argparse
28+
2929 parser = argparse .ArgumentParser (
3030 prog = "integrated_script" ,
31- description = "集成脚本工具 - 提供YOLO数据集处理、图像处理、文件管理等功能 " ,
31+ description = "集成脚本工具 - 提供图像处理、数据集处理等功能 " ,
3232 formatter_class = argparse .RawDescriptionHelpFormatter ,
3333 epilog = """
3434示例用法:
35- %(prog)s --interactive # 启动交互式界面
36- %(prog)s yolo validate /path/to/dataset # 验证YOLO数据集
37- %(prog)s image convert /path/to/images # 转换图像格式
38- %(prog)s file organize /path/to/files # 组织文件
39- %(prog)s dataset split /path/to/dataset # 分割数据集
40- %(prog)s label create /path/to/images # 创建标签文件
35+ %(prog)s # 启动交互式界面
36+ %(prog)s --build # 调用打包脚本
4137
4238更多信息请访问: https://github.com/your-repo/integrated_script
4339 """ ,
@@ -57,8 +53,6 @@ def setup_argument_parser() -> argparse.ArgumentParser:
5753
5854 parser .add_argument ("--log-file" , type = str , help = "日志文件路径" )
5955
60- parser .add_argument ("--interactive" , action = "store_true" , help = "启动交互式界面" )
61-
6256 parser .add_argument ("--no-color" , action = "store_true" , help = "禁用彩色输出" )
6357
6458 parser .add_argument ("--quiet" , action = "store_true" , help = "静默模式,减少输出" )
@@ -69,22 +63,10 @@ def setup_argument_parser() -> argparse.ArgumentParser:
6963 "--build" , action = "store_true" , help = "调用根目录的build_exe.py进行打包"
7064 )
7165
72- # 创建子命令解析器
73- subparsers = parser .add_subparsers (
74- dest = "command" ,
75- title = "可用命令" ,
76- description = "选择要执行的操作类型" ,
77- help = '使用 "%(prog)s <command> --help" 查看具体命令的帮助信息' ,
78- )
79-
80- # 添加CLI接口的子命令
81- cli = CLIInterface ()
82- cli .setup_parsers (subparsers )
83-
8466 return parser
8567
8668
87- def setup_logging_from_args (args : argparse . Namespace ) -> None :
69+ def setup_logging_from_args (args ) -> None :
8870 """根据命令行参数设置日志
8971
9072 Args:
@@ -106,7 +88,7 @@ def setup_logging_from_args(args: argparse.Namespace) -> None:
10688 setup_logging (log_dir = log_dir , log_level = log_level , enable_error_file = True )
10789
10890
109- def load_config_from_args (args : argparse . Namespace ) -> ConfigManager :
91+ def load_config_from_args (args ) -> ConfigManager :
11092 """根据命令行参数加载配置
11193
11294 Args:
@@ -152,28 +134,6 @@ def run_interactive_mode(config_manager: ConfigManager) -> int:
152134 return 1
153135
154136
155- def run_cli_mode (args : argparse .Namespace , config_manager : ConfigManager ) -> int :
156- """运行命令行模式
157-
158- Args:
159- args: 命令行参数
160- config_manager: 配置管理器
161-
162- Returns:
163- int: 退出代码
164- """
165- try :
166- cli = CLIInterface (config_manager )
167- return cli .run (args )
168- except KeyboardInterrupt :
169- print ("\n \n 程序被用户中断" )
170- return 130
171- except Exception as e :
172- logger = get_logger (__name__ )
173- logger .error (f"命令行模式运行失败: { e } " )
174- return 1
175-
176-
177137def run_build_mode () -> int :
178138 """运行打包模式
179139
@@ -263,15 +223,9 @@ def main(argv: Optional[List[str]] = None) -> int:
263223 # 加载配置
264224 config_manager = load_config_from_args (args )
265225
266- # 根据参数选择运行模式
267- if args .interactive or not args .command :
268- # 交互式模式
269- logger .info ("启动交互式模式" )
270- return run_interactive_mode (config_manager )
271- else :
272- # 命令行模式
273- logger .info (f"执行命令: { args .command } " )
274- return run_cli_mode (args , config_manager )
226+ # 交互式模式
227+ logger .info ("启动交互式模式" )
228+ return run_interactive_mode (config_manager )
275229
276230 except Exception as e :
277231 logger .error (f"程序运行失败: { e } " )
0 commit comments