feat: improve run.sh with sync/add commands + fix auth-runtime pkg name
This commit is contained in:
parent
dc92b8857e
commit
585cc659b8
|
|
@ -3,3 +3,7 @@
|
||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
*.env
|
*.env
|
||||||
|
|
||||||
|
# uv build artifacts
|
||||||
|
python_auth_runtime/build/
|
||||||
|
python_auth_runtime/src/*.egg-info/
|
||||||
|
|
|
||||||
55
SKILL.md
55
SKILL.md
|
|
@ -11,7 +11,11 @@ metadata: {"openclaw":{"requires":{"bins":["uv"]},"install":[{"kind":"uv","label
|
||||||
**所有脚本必须通过 `{baseDir}/run.sh` 执行,确保使用 uv 虚拟环境:**
|
**所有脚本必须通过 `{baseDir}/run.sh` 执行,确保使用 uv 虚拟环境:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
{baseDir}/run.sh <script_name> [args...]
|
# 执行脚本(兼容模式)
|
||||||
|
{baseDir}/run.sh read_excel --file data.xlsx
|
||||||
|
|
||||||
|
# 或明确使用 run 子命令
|
||||||
|
{baseDir}/run.sh run read_excel --file data.xlsx
|
||||||
```
|
```
|
||||||
|
|
||||||
**不要直接使用 `python scripts/xxx.py`,会污染系统环境!**
|
**不要直接使用 `python scripts/xxx.py`,会污染系统环境!**
|
||||||
|
|
@ -28,43 +32,46 @@ metadata: {"openclaw":{"requires":{"bins":["uv"]},"install":[{"kind":"uv","label
|
||||||
| `translate_excel` | 翻译中→英 | `./run.sh translate_excel --file data.xlsx` |
|
| `translate_excel` | 翻译中→英 | `./run.sh translate_excel --file data.xlsx` |
|
||||||
| `auto_script` | 自扩展 | `./run.sh auto_script --prompt "计算每列总和"` |
|
| `auto_script` | 自扩展 | `./run.sh auto_script --prompt "计算每列总和"` |
|
||||||
|
|
||||||
|
## 依赖管理
|
||||||
|
|
||||||
|
### 首次使用 / 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd {baseDir}
|
||||||
|
./run.sh sync
|
||||||
|
```
|
||||||
|
|
||||||
|
### 添加新依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./run.sh add pandas openpyxl
|
||||||
|
```
|
||||||
|
|
||||||
|
### 手动同步依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./run.sh sync
|
||||||
|
```
|
||||||
|
|
||||||
## 核心功能
|
## 核心功能
|
||||||
|
|
||||||
### 1. 基础文件操作
|
### 1. 基础文件操作
|
||||||
- 读取 Excel 文件(.xlsx, .csv)
|
- 读取 Excel 文件(.xlsx, .csv)
|
||||||
- 创建新的 Excel 文件
|
- 创建新的 Excel 文件
|
||||||
- 保存和导出
|
|
||||||
|
|
||||||
### 2. 合并功能
|
### 2. 合并功能
|
||||||
- 按行合并多个文件
|
- 按行/列合并多个文件
|
||||||
- 按列合并多个文件
|
- 合并多个 sheet
|
||||||
- 合并同一文件中的多个 sheet
|
|
||||||
|
|
||||||
### 3. 数据处理
|
### 3. 数据处理
|
||||||
- 单元格内容替换
|
- 替换、筛选、排序、去重
|
||||||
- 批量替换(支持正则表达式)
|
|
||||||
- 数据筛选、排序、去重
|
|
||||||
|
|
||||||
### 4. 翻译功能
|
### 4. 翻译功能
|
||||||
- 中文→英文翻译(Google Gemini API)
|
- 中文→英文(Google Gemini API)
|
||||||
- 智能检测中文字符
|
|
||||||
- 保留原始格式
|
- 保留原始格式
|
||||||
|
|
||||||
### 5. 自扩展功能
|
### 5. 自扩展功能
|
||||||
- 根据自然语言需求自动生成脚本
|
- 根据自然语言自动生成脚本
|
||||||
- 模板复用 + 智能缓存
|
|
||||||
|
|
||||||
## 依赖管理
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd {baseDir}
|
|
||||||
|
|
||||||
# 同步依赖
|
|
||||||
uv sync
|
|
||||||
|
|
||||||
# 添加新包
|
|
||||||
uv add <package-name>
|
|
||||||
```
|
|
||||||
|
|
||||||
## 环境变量
|
## 环境变量
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ dependencies = [
|
||||||
"google-generativeai>=0.8.0",
|
"google-generativeai>=0.8.0",
|
||||||
"requests>=2.28.0",
|
"requests>=2.28.0",
|
||||||
# 引用本地 auth-runtime 包
|
# 引用本地 auth-runtime 包
|
||||||
"python-auth-runtime-py @ file:///${PROJECT_ROOT}/python_auth_runtime",
|
"clawd-auth-runtime-py @ file:///${PROJECT_ROOT}/python_auth_runtime",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.uv]
|
[tool.uv]
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
[project]
|
[project]
|
||||||
name = "@clawd/auth-runtime-py"
|
name = "clawd-auth-runtime-py"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
description = "Python 版本的 OpenClaw Auth Runtime"
|
description = "Python 版本的 OpenClaw Auth Runtime"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
||||||
62
run.sh
62
run.sh
|
|
@ -2,20 +2,60 @@
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "$SCRIPT_DIR"
|
cd "$SCRIPT_DIR"
|
||||||
|
|
||||||
|
# 检查 uv
|
||||||
if ! command -v uv &> /dev/null; then
|
if ! command -v uv &> /dev/null; then
|
||||||
echo "❌ uv not found" >&2
|
echo "❌ uv not found. Install: curl -LsSf https://astral.sh/uv/install.sh | sh" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ ! -d ".venv" ] && uv sync
|
# 子命令
|
||||||
|
case "${1:-}" in
|
||||||
SCRIPT_NAME="$1"
|
sync|install)
|
||||||
shift
|
echo "📦 Syncing dependencies..."
|
||||||
|
uv sync
|
||||||
if [ -z "$SCRIPT_NAME" ]; then
|
exit $?
|
||||||
echo "Usage: ./run.sh <script> [args...]"
|
;;
|
||||||
|
add)
|
||||||
|
shift
|
||||||
|
echo "📦 Adding package: $@"
|
||||||
|
uv add "$@"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
run)
|
||||||
|
shift
|
||||||
|
SCRIPT_NAME="$1"
|
||||||
|
shift
|
||||||
|
if [ -z "$SCRIPT_NAME" ]; then
|
||||||
|
echo "Usage: ./run.sh run <script> [args...]"
|
||||||
ls scripts/*.py | xargs -n1 basename | sed 's/\.py$//' | sed 's/^/ /'
|
ls scripts/*.py | xargs -n1 basename | sed 's/\.py$//' | sed 's/^/ /'
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
uv run python "scripts/${SCRIPT_NAME}.py" "$@"
|
||||||
uv run python "scripts/${SCRIPT_NAME}.py" "$@"
|
exit $?
|
||||||
|
;;
|
||||||
|
"")
|
||||||
|
echo "Excel Toolkit - uv managed"
|
||||||
|
echo ""
|
||||||
|
echo "Usage:"
|
||||||
|
echo " ./run.sh sync # Install/sync dependencies"
|
||||||
|
echo " ./run.sh add <package> # Add a new dependency"
|
||||||
|
echo " ./run.sh run <script> # Run a script with uv"
|
||||||
|
echo ""
|
||||||
|
echo "Scripts:"
|
||||||
|
ls scripts/*.py 2>/dev/null | xargs -n1 basename | sed 's/\.py$//' | sed 's/^/ /'
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# 兼容模式:直接当脚本名
|
||||||
|
SCRIPT_NAME="$1"
|
||||||
|
shift
|
||||||
|
SCRIPT_PATH="scripts/${SCRIPT_NAME}.py"
|
||||||
|
if [ ! -f "$SCRIPT_PATH" ]; then
|
||||||
|
echo "❌ Script not found: $SCRIPT_PATH" >&2
|
||||||
|
echo "Try: ./run.sh run <script>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
uv run python "$SCRIPT_PATH" "$@"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue