Revert "[U] Wrap into uv tool."

This reverts commit ca9e32763e.
This commit is contained in:
2026-04-15 13:05:45 +08:00
parent ca9e32763e
commit 1bc74cbd1b
14 changed files with 426 additions and 837 deletions

View File

@@ -4,57 +4,47 @@
## 文档结构
- `README.md` - 文档索引
- `uv-tool.md` - `uv tool` 安装、运行、配置与发布说明
- `USAGE.md` - 命令使用说明,重点覆盖 `view`
- `cloudflare_setup.md` - Cloudflare 配置说明
- `README.md` - 项目主文档
- `USAGE.md` - 使用说明文档
- `progress-tracker.md` - 进度跟踪文档
- `requirements.md` - 需求文档
- `workplan.md` - 工作计划文档
## 快速开始
1. 从源码直接运行
1. 安装项目
```bash
uv tool run --from . config-man --help
pip install -e .
```
2. 安装为本地工具
2. 查看帮助
```bash
uv tool install --from . config-man
config-man --help
python main.py --help
```
3. 查看功能验证
3. 使用查看功能:
```bash
config-man view --version 0.30 --mock
python main.py view --version 0.30 --mock
```
## 开发指南
1. 安装开发依赖:
```bash
uv sync --extra dev
pip install -e ".[dev]"
```
2. 运行测试:
```bash
uv run pytest
pytest
```
3. 代码格式化:
```bash
uv run black src/ tests/
black src/ tests/
```
4. 类型检查:
```bash
uv run mypy src/
mypy src/
```

View File

@@ -1,73 +1,68 @@
# Config-Man 使用说明
# Config-Man 查看功能使用说明
## 适用范围
## 功能概述
本文档聚焦 `config-man view` 以及相关配置方式,默认推荐通过 `uv tool` 使用本项目
Config-Man 的查看功能允许您对比显示对象存储和CDN中的配置内容支持Android和iOS平台
## 启动方式
## 安装依赖
### 从源码临时运行
首先安装项目依赖:
```bash
uv tool run --from . config-man --help
uv tool run --from . config-man view --version 0.30 --mock
pip install -e .
```
### 安装为本地命令
## 基本用法
```bash
uv tool install --from . config-man
config-man --help
config-man view --version 0.30 --mock
```
## `view` 命令
### 基本用法
### 1. 查看配置文件
```bash
# 查看版本 0.30 的配置文件
config-man view --version 0.30
python main.py view --version 0.30
# 以 JSON 格式输出
config-man view --version 0.30 --json
# 以JSON格式输出
python main.py view --version 0.30 --json
# 使用模拟环境测试
config-man view --version 0.30 --mock
# 使用模拟环境进行测试
python main.py view --version 0.30 --mock
```
### 参数说明
- `--version`: 版本号,格式如 `0.29``0.30`
- `--json`: 使用 JSON 格式输出
- `--storage-path`: 覆盖配置中的对象存储路径前缀
- `--cdn-url`: 覆盖配置中的 CDN 基础 URL
- `--mock`: 启用模拟环境,避免依赖真实 `rclone` 和远端资源
### 查看帮助
### 2. 查看帮助信息
```bash
config-man --help
config-man view --help
# 查看主命令帮助
python main.py --help
# 查看view命令帮助
python main.py view --help
```
## 配置方式
## 参数说明
Config-Man 支持三类外部配置来源:
### view 命令参数
1. 命令行参数
2. 环境变量
3. 配置文件
- `--version`: 版本号,格式为 0.29, 0.30, 0.31 等(必需)
- `--json`: 以JSON格式输出可选
- `--storage-path`: 对象存储路径前缀(覆盖配置文件
- `--cdn-url`: CDN基础URL覆盖配置文件
- `--mock`: 使用模拟环境进行测试(可选)
整体优先级为:命令行参数 > 环境变量 > 用户配置文件 > 项目默认配置。
### 配置管理命令
### 配置文件位置
- `show-config`: 显示当前配置
- `set-config`: 设置配置值
## 配置文件
Config-Man 支持多种配置方式:
### 1. 配置文件
默认配置文件位置:
- 用户配置: `~/.config/config-man/config-man.json`
- 项目默认配置: `./config-man.json`
### 配置文件示例
- 项目配置: `./config-man.json`
配置文件格式:
```json
{
"storage": {
@@ -78,11 +73,7 @@ Config-Man 支持三类外部配置来源:
"cdn": {
"base_url": "",
"timeout": 10,
"retry_count": 3,
"cloudflare": {
"api_token": "",
"zone_id": ""
}
"retry_count": 3
},
"crypto": {
"algorithm": "DES",
@@ -96,60 +87,45 @@ Config-Man 支持三类外部配置来源:
}
```
### 环境变量
### 2. 环境变量
支持以下环境变量:
| 环境变量 | 配置项 | 说明 |
| --- | --- | --- |
|---------|--------|------|
| `CONFIG_MAN_STORAGE_PATH` | `storage.path` | 存储路径 |
| `CONFIG_MAN_STORAGE_RCLONE_REMOTE` | `storage.rclone_remote` | `rclone` 远程名称 |
| `CONFIG_MAN_STORAGE_RCLONE_REMOTE` | `storage.rclone_remote` | rclone远程名称 |
| `CONFIG_MAN_STORAGE_TIMEOUT` | `storage.timeout` | 存储操作超时时间 |
| `CONFIG_MAN_CDN_BASE_URL` | `cdn.base_url` | CDN 基础 URL |
| `CONFIG_MAN_CDN_TIMEOUT` | `cdn.timeout` | CDN 请求超时时间 |
| `CONFIG_MAN_CDN_RETRY_COUNT` | `cdn.retry_count` | CDN 重试次数 |
| `CONFIG_MAN_CDN_CLOUDFLARE_API_TOKEN` | `cdn.cloudflare.api_token` | Cloudflare API Token |
| `CONFIG_MAN_CDN_CLOUDFLARE_ZONE_ID` | `cdn.cloudflare.zone_id` | Cloudflare Zone ID |
| `CONFIG_MAN_CDN_BASE_URL` | `cdn.base_url` | CDN基础URL |
| `CONFIG_MAN_CDN_TIMEOUT` | `cdn.timeout` | CDN请求超时时间 |
| `CONFIG_MAN_CDN_RETRY_COUNT` | `cdn.retry_count` | CDN重试次数 |
| `CONFIG_MAN_CRYPTO_KEY` | `crypto.key` | 加密密钥 |
| `CONFIG_MAN_CRYPTO_ALGORITHM` | `crypto.algorithm` | 加密算法 |
| `CONFIG_MAN_LOG_LEVEL` | `logging.level` | 日志级别 |
| `CONFIG_MAN_DISPLAY_TABLE_FORMAT` | `display.table_format` | 表格格式 |
| `CONFIG_MAN_DISPLAY_MAX_WIDTH` | `display.max_width` | 最大宽度 |
| `CONFIG_MAN_DISPLAY_TRUNCATE_LENGTH` | `display.truncate_length` | 截断长度 |
示例:
### 3. 命令行参数
```bash
export CONFIG_MAN_STORAGE_PATH=ab
export CONFIG_MAN_STORAGE_RCLONE_REMOTE=remote
export CONFIG_MAN_CDN_BASE_URL=https://cdn.example.com
config-man view --version 0.30 --mock
```
### 本地配置管理命令
```bash
config-man show-config
config-man set-config --key storage.path --value custom_path
config-man set-config --key cdn.base_url --value https://cdn.example.com
config-man set-config --key display.max_width --value 100
config-man setup-cloudflare --api-token <token> --zone-id <zone_id>
```
命令行参数会覆盖配置文件和环境变量的设置。
## 输出格式
### 表格格式
### 表格格式(默认)
```text
```
版本: 0.30 | 平台: Android
┌─────────────────┬─────────────────────┬─────────────────────┬──────────┐
│ 配置项 │ 对象存储内容 │ CDN内容 │ 状态 │
├─────────────────┼─────────────────────┼─────────────────────┼──────────┤
│ Ver │ 0.30.2ghi789 │ 0.30.2ghi789 │ 一致
│ EventApiURL │ https://n3backend │ https://n3backend │ 一致
│ NewFeature │ enabled │ N/A │ 不同
│ Ver │ 0.30.2ghi789 │ 0.30.2ghi789 │ ✅ 一致
│ EventApiURL │ https://n3backend. │ https://n3backend.一致 │
│ NewFeature │ enabled │ N/A │ 不同 │
│ ... │ ... │ ... │ ... │
└─────────────────┴─────────────────────┴─────────────────────┴──────────┘
```
### JSON 格式
### JSON格式
```json
{
@@ -157,7 +133,8 @@ config-man setup-cloudflare --api-token <token> --zone-id <zone_id>
"platform": "android",
"storage_config": {
"EventApiURL": "https://n3backend.azurewebsites.net/",
"Ver": "0.30.2ghi789"
"Ver": "0.30.2ghi789",
"NewFeature": "enabled"
},
"cdn_config": {
"EventApiURL": "https://n3backend.azurewebsites.net/",
@@ -166,43 +143,160 @@ config-man setup-cloudflare --api-token <token> --zone-id <zone_id>
}
```
## 模拟环境
## 模拟环境测试
推荐先用 `--mock` 验证 CLI、格式化输出和本地配置加载
为了方便测试,项目提供了模拟环境
```bash
config-man view --version 0.30 --mock
# 使用模拟环境测试
python main.py view --version 0.30 --mock
```
模拟模式主要用于
模拟环境会
1. 自动创建测试配置文件
2. 模拟rclone命令
3. 提供完整的测试数据
- 绕过真实 `rclone`
- 在无远端依赖时验证 CLI 流程
- 快速检查 `uv tool` 打包后的命令可用性
## 错误处理
## 常见问题
### 常见错误
### `rclone` 未安装
1. **版本号格式错误**
```
错误: 无效的版本号格式: 1.2.3
```
真实环境模式下,如果系统找不到 `rclone`,命令将无法继续。请先确认:
2. **rclone未安装**
```
错误: rclone 未安装或不可用。请先安装 rclone。
```
```bash
rclone version
```
3. **文件不存在**
```
警告: 无法从对象存储下载 ab/0_30/androidconfig.json: 文件不存在
```
### 版本号格式
4. **网络连接失败**
```
警告: 无法从CDN获取 https://cdn.example.com/ab/0_30/androidconfig.json
```
## 配置说明
### 配置文件结构
配置文件包含以下主要字段:
- **EventApiURL**: API端点URL
- **Ver**: 版本信息
- **PlayFabTitle**: PlayFab标题
- **Google_Play_URL**: Google Play商店链接
- **APP_Store_URL**: App Store链接
- **HeartBeat**: 心跳间隔
- **RTMPid**: RTM进程ID
- **RTMServerEndpoint**: RTM服务器端点
- **RTMHmacSecret**: RTM HMAC密钥
- **FuncUrl**: 功能URL
- **FuncKey**: 功能密钥
### 版本号转换
版本号会自动转换为存储路径格式:
- `0.29` → `0_29`
- `0.30` → `0_30`
- `1.00` → `1_00`
- `0.29` -> `0_29`
- `0.30` -> `0_30`
- `1.00` -> `1_00`
## 高级用法
### 网络或权限问题
### 配置管理
如果对象存储、CDN 或 Cloudflare 接口不可达,请检查:
```bash
# 显示当前配置
python main.py show-config
- 网络连接
- 远端访问权限
- `rclone` 配置
- CDN 和 Cloudflare 相关参数是否完整
# 设置配置值
python main.py set-config --key storage.path --value custom_path
python main.py set-config --key cdn.base_url --value https://cdn.example.com
python main.py set-config --key display.max_width --value 100
```
### 环境变量配置
```bash
# 使用环境变量设置配置
export CONFIG_MAN_STORAGE_PATH=custom_path
export CONFIG_MAN_CDN_BASE_URL=https://cdn.example.com
export CONFIG_MAN_DISPLAY_MAX_WIDTH=120
# 运行命令
python main.py view --version 0.30
```
### 命令行参数覆盖
```bash
# 命令行参数会覆盖配置文件设置
python main.py view --version 0.30 --storage-path custom_path --cdn-url https://cdn.example.com
```
### 组合使用
```bash
python main.py view --version 0.30 --json --mock --storage-path test_data/ab
```
## 故障排除
### 1. 安装问题
确保安装了所有依赖:
```bash
pip install click pycryptodome tabulate requests rich
```
### 2. rclone配置
如果使用真实环境需要配置rclone
```bash
rclone config
```
### 3. 权限问题
确保有足够的权限访问对象存储和CDN。
### 4. 网络问题
检查网络连接和防火墙设置。
## 开发说明
### 项目结构
```
config-man/
├── main.py # 主程序入口
├── appconfig_tool.py # 加密解密工具
├── config_manager.py # 配置管理器
├── display_manager.py # 显示管理器
├── view_command.py # 查看命令处理器
├── mock_rclone.py # 模拟rclone环境
└── test_configs.py # 测试配置生成器
```
### 扩展功能
要添加新的查看功能,可以:
1. 在 `config_manager.py` 中添加新的方法
2. 在 `display_manager.py` 中添加新的显示格式
3. 在 `view_command.py` 中添加新的处理逻辑
4. 在 `main.py` 中添加新的CLI命令
## 联系支持
如果遇到问题,请检查:
1. 版本号格式是否正确
2. 网络连接是否正常
3. rclone配置是否正确
4. 依赖是否完整安装

View File

@@ -29,8 +29,8 @@
```
### 2.2 技术栈
- **开发语言**: Python 3.9+
- **CLI框架**: Click
- **开发语言**: Python 3.13+
- **CLI框架**: Click 或 Typer
- **存储同步**: rclone
- **CDN服务**: Cloudflare
- **文件加密**: AES-256
@@ -195,7 +195,7 @@ config-man force-update --platform <平台> --target-version <目标版本> --up
- CDN缓存刷新响应时间 < 10秒
### 5.3 兼容性要求
- 支持Python 3.9+
- 支持Python 3.13+
- 支持Windows、macOS、Linux
- 支持rclone命令行工具

View File

@@ -1,185 +0,0 @@
# Config-Man 的 UV Tool 用法
## 适用场景
`config-man` 已经通过 `pyproject.toml` 暴露了 CLI 入口,因此可以直接作为 `uv tool` 使用。
- 临时从源码运行,适合验证命令是否可用:`uv tool run --from . config-man ...`
- 安装为本地长期命令,适合需要持久配置的日常使用:`uv tool install --from . config-man`
- 发布到包索引后,可直接安装:`uv tool install config-man`
## 前置条件
使用本工具前,需要准备以下环境:
- Python 3.9+
- `uv`
- `rclone`
- 可选的 Cloudflare 凭证,用于自动刷新 CDN 缓存
安装 `rclone` 后,请先确认它在系统 `PATH` 中可用:
```bash
rclone version
```
如果命令无法执行,`config-man` 的非 `--mock` 模式也无法正常工作。
## 从源码运行
在仓库根目录执行:
```bash
uv tool run --from . config-man --help
uv tool run --from . config-man show-config
uv tool run --from . config-man view --version 0.30 --mock
```
这种方式适合:
- 快速验证 CLI 是否能启动
- 本地开发时试跑单个命令
- 不需要保留用户级配置的临时操作
## 本地安装为工具
如果你会反复使用 `config-man`,更推荐安装为本地工具:
```bash
uv tool install --from . config-man
config-man --help
config-man show-config
```
常见维护命令:
```bash
uv tool upgrade config-man
uv tool uninstall config-man
```
安装后更适合使用以下会写入本地配置的命令:
```bash
config-man set-config --key storage.path --value ab
config-man set-config --key storage.rclone_remote --value remote
config-man setup-cloudflare --api-token <token> --zone-id <zone_id>
```
## 配置来源优先级
运行时配置优先级如下:
1. 命令行参数
2. 环境变量
3. 用户配置文件 `~/.config/config-man/config-man.json`
4. 项目默认配置
默认用户配置文件路径由 `src/config_man/utils/config.py` 定义;执行 `set-config``setup-cloudflare` 后,配置会保存到该文件。
## 常用环境变量
如果你不想把配置写入文件,可以使用环境变量:
```bash
export CONFIG_MAN_STORAGE_PATH=ab
export CONFIG_MAN_STORAGE_RCLONE_REMOTE=remote
export CONFIG_MAN_CDN_BASE_URL=https://cdn.example.com
export CONFIG_MAN_CDN_CLOUDFLARE_API_TOKEN=your_api_token
export CONFIG_MAN_CDN_CLOUDFLARE_ZONE_ID=your_zone_id
```
Windows PowerShell 可使用:
```powershell
$env:CONFIG_MAN_STORAGE_PATH="ab"
$env:CONFIG_MAN_STORAGE_RCLONE_REMOTE="remote"
$env:CONFIG_MAN_CDN_BASE_URL="https://cdn.example.com"
$env:CONFIG_MAN_CDN_CLOUDFLARE_API_TOKEN="your_api_token"
$env:CONFIG_MAN_CDN_CLOUDFLARE_ZONE_ID="your_zone_id"
```
## 命令示例
### 查看配置
```bash
config-man view --version 0.30 --mock
config-man view --version 0.30 --json --mock
```
### 建议更新
```bash
config-man suggest-update --platform android --target-version 0.29 --update-version 0.30 --mock
```
### 强制更新
```bash
config-man force-update --platform ios --target-version 0.29 --update-version 0.30 --mock
```
### 查看当前生效配置
```bash
config-man show-config
```
### 交互式加密原始配置
项目还提供一个附加命令:
```bash
uv tool run --from . config-man-encrypt
```
该命令为交互式脚本,更适合作为辅助工具,而不是主入口。
## 验证建议
建议至少验证以下命令:
```bash
uv tool run --from . config-man --help
uv tool run --from . config-man show-config
uv tool run --from . config-man view --version 0.30 --mock
```
如果你计划长期使用,再验证安装后的行为:
```bash
uv tool install --from . config-man
config-man --help
config-man show-config
```
同时建议手动确认:
- `rclone` 在 tool 环境下可以被正常找到
- Cloudflare 相关配置能够从环境变量或配置文件加载
-`--mock` 模式在目标网络环境中可访问对象存储与 CDN
## 构建与发布
如果目标是让其他人直接执行 `uv tool install config-man`,还需要先把包发布到索引。
本地构建:
```bash
uv build
```
构建完成后可验证产物:
```bash
uv tool run --from dist/*.whl config-man --help
```
发布到索引后,用户即可通过:
```bash
uv tool install config-man
```
如果当前项目的 `project.urls` 仍是占位地址,请在正式发布前补成真实仓库和文档链接。

View File

@@ -1,109 +0,0 @@
---
name: uv tool 封装计划
overview: 把现有 `config-man` 项目整理为可通过 `uv tool` 使用的 CLI 工具,重点补齐安装方式、配置持久化说明、外部依赖说明和发布验证文档,并将计划落在 `docs/` 下的 markdown 文档中。
todos:
- id: audit-packaging
content: 核对 `pyproject.toml` 的脚本入口、元数据和 Python 版本约束是否适合 UV tool 分发
status: pending
- id: document-uv-usage
content: 在 `docs/` 中新增一份面向 UV tool 的安装、运行、配置和验证文档
status: pending
- id: align-existing-docs
content: 更新 `README.md``docs/USAGE.md`,把旧的 `python main.py` / `pip install -e .` 说明与 UV 用法对齐
status: pending
- id: define-validation-release
content: 整理本地验证命令与可选发布流程,确保从源码和从索引两条路径都清晰
status: pending
isProject: false
---
# 将 Config-Man 封装为 UV Tool
## 现状判断
- 项目已经是标准可安装包:`[pyproject.toml](D:/workwork/config-man-new-repo/pyproject.toml)` 使用 `hatchling` 构建,并采用 `src` 布局。
- 项目已经暴露 CLI 入口,具备 `uv tool` 的基础条件:
```42:44:pyproject.toml
[project.scripts]
config-man = "config_man.cli.main:main"
config-man-encrypt = "config_man.encrypt_config:main"
```
- CLI 主入口已经集中在 `[src/config_man/cli/main.py](D:/workwork/config-man-new-repo/src/config_man/cli/main.py)`,适合直接作为 `uv tool` 的命令入口。
- 配置持久化逻辑已经存在于 `[src/config_man/utils/config.py](D:/workwork/config-man-new-repo/src/config_man/utils/config.py)`,会优先读取 `~/.config/config-man/config-man.json`,这很适合 tool 安装后的用户级使用。
- 远程配置读写核心已集中在 `[src/config_man/core/config_manager.py](D:/workwork/config-man-new-repo/src/config_man/core/config_manager.py)` 与 `[src/config_man/core/suggest_update_command.py](D:/workwork/config-man-new-repo/src/config_man/core/suggest_update_command.py)`,因此本次工作不需要重写业务逻辑,重点是分发与使用体验。
## UV Tool 做法摘要
- 保持当前 `[project.scripts]` 方案不变。这正是 `uv tool install` / `uv tool run` 识别 CLI 的标准方式。
- 明确两种使用路径:
- 本地源码验证:`uv tool run --from . config-man --help`
- 发布后安装:`uv tool install config-man`
- 将工具运行前置条件写清楚:该工具除 Python 依赖外,还依赖外部命令 `rclone`,并且部分命令需要 Cloudflare 配置与网络访问。
- 明确配置来源优先级:命令行参数 > 环境变量 > `~/.config/config-man/config-man.json` > 项目默认配置。
- 补一份专门面向 `uv` 用户的文档,优先放在 `[docs/](D:/workwork/config-man-new-repo/docs/)` 下,例如新增 `[docs/uv-tool.md](D:/workwork/config-man-new-repo/docs/uv-tool.md)`。
- 如果目标不仅是“本地可作为 tool 使用”,还要“别人可直接安装”,则补充打包校验与发布步骤:`uv build` 或 `python -m build`,然后上传到包索引。
## 计划范围
- 只整理为“可作为 UV tool 使用和分发”的项目。
- 不改远程配置读写逻辑本身,除非在验证过程中发现入口或路径问题。
- 文档以用户安装、配置、验证、发布为主,代码改动以最小必要为原则。
## 实施步骤
1. 校验入口与元数据
- 复核 `[pyproject.toml](D:/workwork/config-man-new-repo/pyproject.toml)` 中的包名、版本、`[project.scripts]`、`readme`、`requires-python`、`project.urls` 是否适合对外发布。
- 确认 CLI 暴露的是稳定入口 `config-man`,并评估 `config-man-encrypt` 是否也需要被纳入 UV tool 使用文档。
1. 统一 UV 使用方式
- 在主文档 `[README.md](D:/workwork/config-man-new-repo/README.md)` 与新文档 `[docs/uv-tool.md](D:/workwork/config-man-new-repo/docs/uv-tool.md)` 中明确:
- 如何本地运行:`uv tool run --from . config-man --help`
- 如何本地安装:`uv tool install --from . config-man`
- 如何卸载/升级:`uv tool uninstall config-man`、`uv tool upgrade config-man`
- 说明哪些命令适合 `uv tool run`,哪些命令因需要持久配置更适合 `uv tool install` 后长期使用。
1. 补齐运行前置条件说明
- 在文档中明确外部依赖 `rclone` 的安装与配置要求。
- 说明 Cloudflare 相关配置项和可选环境变量来源,引用 `[src/config_man/utils/config.py](D:/workwork/config-man-new-repo/src/config_man/utils/config.py)` 中已有键名。
- 明确用户配置文件落点 `~/.config/config-man/config-man.json`,以及 `set-config` / `setup-cloudflare` 如何写入该文件。
1. 验证 UV Tool 体验
- 规划验证命令:
- `uv tool run --from . config-man --help`
- `uv tool run --from . config-man show-config`
- `uv tool run --from . config-man view --version 0.30 --mock`
- 若需要更稳定的 tool 体验,可再验证安装后行为:`uv tool install --from . config-man`,然后运行 `config-man --help`。
- 特别确认从 tool 环境调用 `rclone` 时PATH 与外部命令查找逻辑是否正常。
1. 预留发布路径
- 如果要让他人直接通过 `uv tool install config-man` 安装,则补充发布文档:构建 wheel/sdist、上传到索引、验证索引安装。
- 将现有 `[PROJECT_STRUCTURE.md](D:/workwork/config-man-new-repo/PROJECT_STRUCTURE.md)` 里的构建/发布说明与新的 `uv` 文档保持一致,避免出现 `pip install -e .` 与 `python main.py` 为主的旧说明主导用户路径。
## 预期改动文件
- 主要新增:`[docs/uv-tool.md](D:/workwork/config-man-new-repo/docs/uv-tool.md)`
- 可能更新:`[README.md](D:/workwork/config-man-new-repo/README.md)`
- 可能更新:`[docs/USAGE.md](D:/workwork/config-man-new-repo/docs/USAGE.md)`
- 视情况微调:`[pyproject.toml](D:/workwork/config-man-new-repo/pyproject.toml)`
## 风险与注意点
- 当前 `requires-python = ">=3.13"` 会限制 `uv tool` 安装人群;若这是刻意要求,可保留,否则应评估是否放宽。
- `[src/config_man/encrypt_config.py](D:/workwork/config-man-new-repo/src/config_man/encrypt_config.py)` 是交互式脚本,适合作为附加命令,但不一定适合作为文档主入口。
- 部分现有文档仍以 `python main.py`、`pip install -e .` 为主,需要避免与 `uv tool` 用法并存时造成歧义。
- 该工具依赖外部系统命令 `rclone`,因此即使 Python 打包完整,仍需单独说明系统环境准备。
## 完成标准
- 用户能看着文档直接用 `uv tool run --from . config-man ...` 运行项目。
- 用户能理解何时应改用 `uv tool install --from . config-man` 以获得持久 CLI 体验。
- 文档准确说明配置文件位置、环境变量、外部依赖与发布路径。
- 如需对外分发,项目具备清晰的构建与发布说明,可支持未来 `uv tool install config-man`。