Skip to content

Commit 7c3f706

Browse files
committed
refactor(ui): 移除CLI并默认进入交互模式
- 删除 CLI 实现与导出,清理相关入口 - 主入口不再解析子命令,默认启动交互式界面 - 更新 README 使用方式说明
1 parent 8e2ca79 commit 7c3f706

4 files changed

Lines changed: 17 additions & 937 deletions

File tree

README.md

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -80,26 +80,7 @@ pip install pyinstaller
8080

8181
```bash
8282
# 启动交互式界面
83-
python main.py --interactive
84-
```
85-
86-
### 命令行模式
87-
88-
```bash
89-
# YOLO数据集验证
90-
python main.py yolo validate /path/to/dataset
91-
92-
# 图像格式转换
93-
python main.py image convert /path/to/images
94-
95-
# 文件组织
96-
python main.py file organize /path/to/files
97-
98-
# 数据集分割
99-
python main.py dataset split /path/to/dataset
100-
101-
# 创建标签文件
102-
python main.py label create /path/to/images
83+
python main.py
10384
```
10485

10586
### 可执行文件使用
@@ -108,9 +89,7 @@ python main.py label create /path/to/images
10889

10990
```cmd
11091
# Windows 命令行
111-
integrated_script.exe --help
112-
integrated_script.exe yolo validate /path/to/dataset
113-
integrated_script.exe image convert /path/to/images
92+
integrated_script.exe
11493
```
11594

11695
### 配置文件
@@ -120,7 +99,7 @@ integrated_script.exe image convert /path/to/images
12099
## 💡 技术特点
121100

122101
- **模块化设计** - 清晰的架构,易于扩展和维护
123-
- **双模式操作** - 支持命令行和交互式界面
102+
- **交互式操作** - 以交互式界面为主
124103
- **跨平台兼容** - 特别优化了Windows系统兼容性
125104
- **进度可视化** - 内置进度条和日志系统
126105
- **配置灵活** - 支持YAML配置文件自定义

src/integrated_script/main.py

Lines changed: 12 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,35 @@
55
66
主程序入口
77
8-
提供命令行和交互式两种运行模式
8+
提供交互式运行模式与打包入口
99
"""
1010

11-
import argparse
1211
import subprocess
1312
import sys
1413
from pathlib import Path
1514
from typing import List, Optional
1615

1716
from .config import ConfigManager
1817
from .core.logging_config import get_logger, setup_logging
19-
from .ui.cli import CLIInterface
2018
from .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-
177137
def 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}")

src/integrated_script/ui/__init__.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
66
用户界面相关功能
77
8-
提供命令行界面、交互式界面等用户交互功能
8+
提供交互式界面等用户交互功能
99
"""
1010

11-
from .cli import CLIInterface
1211
from .interactive import InteractiveInterface
1312
from .menu import MenuSystem
1413

15-
__all__ = ["CLIInterface", "InteractiveInterface", "MenuSystem"]
14+
__all__ = ["InteractiveInterface", "MenuSystem"]
1615

1716
__version__ = "1.0.0"
1817
__author__ = "Integrated Script Team"

0 commit comments

Comments
 (0)