Metadata-Version: 2.3
Name: blues-lib
Version: 1.20.2
Summary: Blues's core library
Author: Blues Liu
Author-email: Blues Liu <1121557826@qq.com>
Requires-Dist: uv>=0.4.0
Requires-Dist: pillow>=10.3.0
Requires-Dist: requests>=2.31.0
Requires-Dist: selenium>=4.25.0
Requires-Dist: tld==0.13
Requires-Dist: pymysql==1.0.2
Requires-Dist: beautifulsoup4==4.9.3
Requires-Dist: pyperclip==1.9.0
Requires-Dist: undetected-chromedriver==3.5.5
Requires-Dist: pyyaml==6.0.2
Requires-Dist: pytest-html==4.1.1
Requires-Dist: jsonschema==4.21.1
Requires-Dist: json5==0.12.0
Requires-Dist: pyhocon==0.3.63
Requires-Dist: pytest-bdd>=8.1.0
Requires-Dist: openai>=2.3.0
Requires-Dist: python-dotenv>=1.1.1
Requires-Dist: setuptools>=80.9.0
Requires-Dist: mergedeep>=1.3.4
Requires-Dist: jinja2>=3.1.6
Requires-Dist: apscheduler>=3.11.2
Requires-Dist: pytz>=2026.1.post1
Requires-Dist: psutil>=7.2.2
Requires-Dist: pandas>=3.0.2
Requires-Dist: deepmerge>=2.0
Requires-Dist: pytest>=8.3.5
Requires-Dist: pytest-cov>=6.0.0
Requires-Dist: pyparsing>=3.2.4
Requires-Dist: markdown>=3.5.0
Requires-Dist: markdownify>=0.11.0
Requires-Dist: openpyxl>=3.1.5
Requires-Dist: json-repair>=0.60.1
Requires-Dist: lxml>=6.1.1
Requires-Dist: paramiko>=3.5
Requires-Dist: pydantic>=2.12.0
Requires-Dist: fastapi>=0.141.1
Requires-Dist: uvicorn>=0.52.3
Requires-Python: >=3.12
Provides-Extra: dev
Description-Content-Type: text/markdown

# blues-lib

Python library writed by Blues Liu.

[blues-lib](https://pypi.org/project/blues-lib/) | 版本：`1.19.3`

---

## 简介

`blues-lib` 是一个以 **Web 自动化** 为核心的 Python 库，提供浏览器操作（Selenium/WebDriver）、LLM 调用、数据预处理（DPP）、文件/数据库/消息等能力，并以 **MCP 风格工具**（`ww_*`）统一封装，通过 `ww` CLI 或 `AbilityClient` 执行自动化任务。

## 安装

```bash
pip install blues-lib
```

本地开发（推荐 uv）：

```bash
uv sync
```

## CLI

安装后提供 `ww` 与 `webwork` 两个全局命令：

```bash
ww -v                                  # 查看版本
ww help                                # 查看可用命令
ww run -m <meta_path> [-b <bizdata_path>]   # 执行 meta/task/flow
ww dash <bizdata_path>                 # 快速执行（读取/填充模式）
ww tool list                           # 列出所有 ww_* 工具及 schema
ww config / mysql / sqlite / ftp / ssh / webdriver / email / ding / llm ...
```

详见 [`readme-cli.md`](readme-cli.md)。

## 示例

```python
from blues_lib.tools.runner import AbilityClient

# 执行一个 ww_* 工具
result = AbilityClient.run({
    "name": "ww_time",
    "options": {"action": "sleep", "value": 0.5, "id": "t1"},
})

# 执行任务 / 流程（meta 内 name 为 ww_task / ww_flow 自动分发）
AbilityClient.run("tests/template/write/base/fillin-article.json5")
```

## 目录结构

```
src/blues_lib/
├── cli/                # ww / webwork CLI（run/dash/config/... 16 个命令）
├── services/
│   ├── dpp/            # 数据预处理职责链（Read/Write/Persist）
│   ├── schema/         # 工具 schema（ToolSchema，基于 pydantic）
│   ├── webdriver/      # WebDriver 工厂与 CFT 自动下载
│   └── llm/            # LLM 客户端
├── tools/
│   ├── runner/         # AbilityClient / MetaLoader / Facade
│   └── ability/        # ww_* 工具定义（atom/sequence/task）
└── types/schemas/      # 工具入参 pydantic 模型（TOOL_ADAPTERS）
```

## 测试

```bash
uv run pytest                 # 全部测试
uv run pytest tests/tools/    # 指定目录
uv run pytest --cov=src/blues_lib --cov-report=term-missing   # 覆盖率
```

## 相关文档

- [`readme-cli.md`](readme-cli.md) — CLI 使用说明
- [`CHANGELOG.md`](CHANGELOG.md) — 版本历史
- [`src/blues_lib/services/dpp/readme.md`](src/blues_lib/services/dpp/readme.md) — DPP 职责链设计
- [`src/blues_lib/services/webdriver/readme.md`](src/blues_lib/services/webdriver/readme.md) — WebDriver 配置与自动下载
- [`src/blues_lib/tools/readme.md`](src/blues_lib/tools/readme.md) — 工具机制（发现/注释/Schema/测试）
- [`src/blues_lib/tools/ability/sequence/README.md`](src/blues_lib/tools/ability/sequence/README.md) — ww_walk 三种执行模式
