Skip to main content

Armored Analytics in Your Terminal — 终端数据分析驾驶舱

Project description

🐼🔧 Panzr v0.5.2

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.2

  • 🐛 修复加载文件后状态信息不显示
  • 🐛 视觉历史 prompt 不回填 AI 输入框
  • 🐛 补上 textual-plotext 依赖声明
  • ✨ 加载文件逐组显示进度
  • ✨ matplotlib 可选依赖 panzr[viz]

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

panzr-0.5.2.tar.gz (68.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

panzr-0.5.2-py3-none-any.whl (82.5 kB view details)

Uploaded Python 3

File details

Details for the file panzr-0.5.2.tar.gz.

File metadata

  • Download URL: panzr-0.5.2.tar.gz
  • Upload date:
  • Size: 68.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for panzr-0.5.2.tar.gz
Algorithm Hash digest
SHA256 585673fb808dd2e7d8ff5d15ae0460856916d0558b5cef17d92138479b93065b
MD5 32c3175bb97b23cfc8308e0becc55ad3
BLAKE2b-256 bf3b1624cf4ab40fe2e50ce829edcbf63d8914c38832b5b3490b523541304faa

See more details on using hashes here.

File details

Details for the file panzr-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: panzr-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 82.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for panzr-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a95c4260bbc742394865f5e6cd706a06058fc2ae15aac744a5a370dd1a1c4a9f
MD5 48fa24e67d051842636d87ada60d7ee8
BLAKE2b-256 7cfb962f55fc38e64c44e5fc4f652301c1053422727da9520e35177db71ffe48

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page