Armored Analytics in Your Terminal — 终端数据分析驾驶舱
Project description
🐼🔧 Panzr v0.5.0
Armored Analytics in Your Terminal. 终端里的装甲数据分析。
Panzr 是你的终端数据分析驾驶舱。 "Your Terminal Data Cockpit."
产品定位
Panzr 是一个 TUI (Terminal User Interface) 数据分析工具箱。底层整合 DuckDB、Polars、plotext、matplotlib 等成熟引擎,Panzr 本身只负责:菜单导航、参数拼装、流程串联、结果展示。
功能矩阵
| Tab | 功能 | 底层引擎 |
|---|---|---|
| 🔌 连接 | 扫描目录、分组多选、逐文件勾选加载、DuckDB View 注册 | DuckDB + Polars |
| 🔍 探查 | Polars 管道 (筛选→排序→去重→选列), 左侧数据目录, 懒加载 | Polars Lazy |
| 📝 SQL | DuckDB 查询 + AI 生成 + 常用规则 + 收藏 + 报告 + 出图, 可隐藏目录 | DuckDB + AI |
| 📊 可视化 | Grid 多图表 + AI 生成 + plotext/matplotlib 双引擎 + 对话面板 | textual-plotext + matplotlib |
| 📋 报告 | 一键数据诊断报告, 多数据源支持 | DuckDB + Rich |
安装
pip install panzr
依赖: textual duckdb polars plotext rich openai textual-plotext
可选: matplotlib(导出高清 PNG 图表)
如果启动时报 AVX2 指令集错误(老 CPU / 虚拟机),请安装兼容版本:
pip install panzr[compat]
LLM 配置
export DEEPSEEK_API_KEY=sk-你的key
使用
panzr
# 自动加载目录
panzr --load ~/FinData/资金结算
# 加载 siku 插件
panzr --siku
快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+Q / Ctrl+C |
退出 |
Ctrl+Right |
下一 Tab |
Ctrl+Left |
上一 Tab |
Ctrl+Enter |
执行 SQL |
Ctrl+Up / Ctrl+Down |
调整 SQL 编辑器高度 |
项目结构
panzr/
├── app.py # 主 App + CSS + 快捷键
├── state.py # 全局数据上下文 (AppState)
├── startup_check.py # 启动环境检测器
├── clipboard.py # OSC 52 系统剪贴板
├── config/
│ ├── sql-rules.json # 内置常用规则 (sql/prompt/chat)
│ ├── report-prompt.md # 报告 AI 管理视角 Prompt
│ └── report-template.md # 报告 Markdown 模板
├── engines/
│ ├── loader.py # 文件扫描 + 分组
│ ├── duckdb_engine.py # DuckDB 查询引擎
│ ├── harlequin_launcher.py # Harlequin 子进程启动
│ ├── llm.py # LLM (DeepSeek) SQL/图表/文本生成
│ ├── history.py # 查询/图表/对话历史持久化
│ ├── exporter.py # 导出 (CSV/JSON/Parquet/MD)
│ └── rules.py # 共享规则系统
├── tabs/
│ ├── connect.py # 连接 Tab (扫描+左右分栏多选+DuckDB)
│ ├── explore.py # 探查 Tab (Polars lazy 管道 + 左侧目录)
│ ├── query.py # SQL Tab + AI 对话 + 常用规则 + 收藏 + 报告
│ ├── vision.py # 可视化 Tab (Grid 多图表 + AI + 双引擎)
│ └── report.py # 报告 Tab (多数据源数据诊断)
└── widgets/
├── splitter.py # 可拖动分隔条
├── resizable.py # Ctrl+Up/Down 调节高度 TextArea
├── ai_chat.py # AI 多轮对话面板
└── context_menu.py # 右键菜单
数据目录
~/.panzr/
├── history.json # 查询/图表/对话历史
├── rules.json # 用户收藏规则
├── charts/ # matplotlib 高清图表
├── reports/ # Markdown 查询报告
└── data/ # CSV/Parquet 数据导出
Changelog
v0.5.0
- ✨ 连接 Tab 左右分栏:分组 + 文件多选
- ✨ SQL Tab 常用规则支持 sql/prompt/chat 三种类型,⭐ 收藏 + 删除
- ✨ SQL Tab 报告生成:AI 管理视角 + 数据源 schema + 完整数据诊断,模板可配置
- ✨ 可视化 Grid 多图表布局,支持 6 个图表同时显示
- ✨ 可视化 textual-plotext 原生彩色渲染 + matplotlib PNG 导出双引擎
- ✨ 可视化 AI 对话面板 + 常用规则 + 历史 + 收藏
- ✨ 探查 Tab 左侧数据目录,可隐藏
- ✨ SQL Tab 左侧数据目录可隐藏
- ✨ SQL → 可视化一键出图,多查询结果不覆盖
- ✨ 全局右键复制覆盖所有控件类型
- ✨ 历史记录按 SQL/可视化 Tab 分离
- ✨ 收藏规则按 SQL/可视化 Tab 分离
- ✨ 报告/导出文件统一到 ~/.panzr/{reports,data,charts}/
- ✨ src 布局 + pytest 测试拆分
- 🗑 下线聚合 Tab(功能并入常用规则)
- 🐛 修复右键复制、Ctrl+P 冲突、中文 Widget ID、SQL 占位符等 Bug
v0.4.2
- 🐛 修复 Textual 8.x
Key.ctrl属性移除导致的Ctrl+Enter崩溃 - ✨ 新增
pyarrow依赖
v0.4.1
- 🐛 修复老 CPU(缺 AVX2)安装标准 polars 后 SIGILL 崩溃的问题
- ✨ 新增
panzr[compat]安装选项,使用polars-runtime-compat - ✨ 启动时自动检测 polars 兼容性并给出安装指引
v0.4.0
- ✨ 新增 Header(版本号) + Footer(动态快捷键栏)
- ✨ 新增全局右键复制:DataTable/Tree/Select/Input 均支持
- ✨ 新增常用 SQL 规则按钮(
📋 常用),读取panzr/config/sql-rules.json - ✨ 新增输出格式选择器(CSV/Parquet),统一为
输出按钮 - ✨ 精简 SQL 页操作栏:合并为一行,去掉冗余按钮
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file panzr-0.5.1.tar.gz.
File metadata
- Download URL: panzr-0.5.1.tar.gz
- Upload date:
- Size: 68.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c08c6a4560e6056e417b6f8cd93f7eaa951acbd621c2d8a3ff08e9b6a50053dc
|
|
| MD5 |
ea0c84d3faf106ff4ffc989717e5b6a9
|
|
| BLAKE2b-256 |
7057d4482d012daa02dc8795e2b30967868ac5e97ff4b852842a0625ed0ffe9d
|
File details
Details for the file panzr-0.5.1-py3-none-any.whl.
File metadata
- Download URL: panzr-0.5.1-py3-none-any.whl
- Upload date:
- Size: 82.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c3fa42be7260c58db28a54bd3fbf61a79f06433f71efa72a562288d24318426
|
|
| MD5 |
2ebab374222028005402c3c5d41bd5d8
|
|
| BLAKE2b-256 |
6f73eddc2d7e6c0f8ddfce89e5b246633f39922278483b35279518a6295dedf4
|