Metadata-Version: 2.4
Name: bianque
Version: 0.0.1
Summary: BianQue(扁鹊) - cross-platform hardware inspection & burn-in workflow: screen, camera, microphone, speaker, keyboard, mouse, thermal, battery, disk, memory, network
Author: BianQue Contributors
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/cycleuser/BianQue
Project-URL: Repository, https://github.com/cycleuser/BianQue
Project-URL: Issues, https://github.com/cycleuser/BianQue/issues
Keywords: hardware,inspection,burn-in,screen,dead-pixel,camera,microphone,speaker,keyboard,thermal,battery,disk,memory,network,benchmark,gui,pyside6,验机,扁鹊,体检
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Hardware
Classifier: Topic :: System :: Benchmark
Classifier: Topic :: System :: Monitoring
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PySide6>=6.4.0
Requires-Dist: psutil>=5.9.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: sounddevice>=0.4.6
Provides-Extra: dev
Requires-Dist: pytest>=7.3.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: pytest-qt>=4.2.0; extra == "dev"
Requires-Dist: pytest-timeout>=2.1.0; extra == "dev"
Requires-Dist: mypy>=1.3.0; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"
Dynamic: license-file

# BianQue（扁鹊）· 跨平台硬件验机工具

> 望闻问切，给机器做一次全面体检。

**BianQue（扁鹊）** 是一个纯 Python 的硬件验机工作流工具，帮你把新机器从屏幕、摄像头、麦克风、扬声器、键盘、鼠标，到散热、电池、磁盘、内存、网络，从头到尾跑一遍，最后生成一份可存档的验机报告。

名字取自战国名医**扁鹊**——望闻问切四诊法，正对应验机的四个环节：望（屏幕、摄像头）、闻（扬声器、麦克风）、问（硬件信息采集）、切（散热压力测试）。买新电脑、实验室验收设备、二手交易验货，用它一套跑完，心里有底。

## 功能

| 检测项 | 说明 |
|--------|------|
| 硬件总览 | CPU / 内存 / 磁盘 / GPU / 主板型号自动采集 |
| 屏幕 | 分辨率·刷新率·DPI + 全屏六色纯色坏点检测 |
| 摄像头 | 实时预览 + 拍照成像验证 |
| 麦克风 | 实时电平表 + 录音回放 |
| 扬声器 | 左右声道独立 + 扫频测试 |
| 键盘 | 全键测试（虚拟键盘逐键变绿） |
| 鼠标/触控板 | 左右中键、滚轮、移动检测 |
| 散热 | CPU 压力测试 + 频率/温度/降频观察 |
| 电池 | 电量、循环次数、健康度 |
| 磁盘 | 分区信息 + 顺序读写测速 |
| 内存 | 容量/频率信息 + 读写自检 |
| 网络 | 网卡信息 + ICMP 延迟/丢包 |
| 报告 | 汇总导出 HTML / Markdown / JSON |

## 安装

```bash
pip install -e .
```

Python ≥ 3.10。依赖：PySide6、psutil、numpy、sounddevice。

## 使用

```bash
bianque          # 启动图形界面
bianque-gui      # 同上（GUI 脚本）
```

打开后左侧导航逐项检测，每个页面都有明确的"开始/确认"按钮，结果实时汇总到底部状态栏。最后在"验机报告"页一键导出。

## 平台支持

| 能力 | macOS | Windows | Linux |
|------|-------|---------|-------|
| 屏幕 / 摄像头 / 键盘 / 鼠标 | ✅ | ✅ | ✅ |
| CPU / 内存 / 磁盘信息 | ✅ | ✅ | ✅ |
| 磁盘 / 内存测速 | ✅ | ✅ | ✅ |
| 电池循环次数/健康度 | ✅ (`system_profiler`) | ✅ (`wmic`) | ✅ (`upower`) |
| CPU 温度 / 风扇转速 | ⚠️ 需 SMC 权限 | ✅ (WMI) | ✅ (`psutil`) |

macOS 上温度/风扇受系统权限限制无法直接读取，工具会自动降级，改为依据压力测试中的频率与占用率判断散热。

## 目录结构

```
bianque/
├── app.py            # 程序入口
├── core/             # 纯逻辑（无 UI，可单测）
│   ├── system.py     # 系统/硬件信息采集（跨平台）
│   ├── stress.py     # CPU 压力测试
│   ├── thermal.py    # 温度/风扇
│   ├── disk.py       # 磁盘测速
│   ├── memory.py     # 内存信息 + 自检
│   ├── audio.py      # 测试音合成 + 设备枚举
│   ├── network.py    # 网卡 + ping
│   ├── battery.py    # 电池
│   ├── models.py     # 结果/报告数据模型
│   └── report.py     # 报告渲染（MD/HTML/JSON）
└── ui/               # PySide6 界面
    ├── main_window.py
    ├── worker.py     # 后台任务线程
    ├── theme.py      # 深色主题
    └── pages/        # 各检测页面
```

## 开发

```bash
pip install -e ".[dev]"
pytest                # 全部测试
ruff check .          # lint
mypy bianque             # 类型检查
```

## License

[GPL-3.0-or-later](LICENSE)
