Skip to main content

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

Project description

🐼🔧 Panzr v0.5.5

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 编辑器高度
Ctrl+Y 复制最新错误信息
左键点击 ❌ 标签 复制该错误信息

项目结构

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

  • 🐛 移除无效的左键点击 ❌ 复制功能,Ctrl+Y 仍可用

v0.5.4

  • Ctrl+Y 复制最新错误信息到剪贴板
  • ✨ AppState 新增 last_error 追踪 + set_status() 统一错误状态入口

v0.5.3

  • 🐛 修复"其他"分组中不同 schema 文件合并加载导致数据错位
  • ✨ "其他"分组多文件时按文件独立注册 DuckDB 视图,每个文件成为独立数据源
  • ✨ 新增 get_csv_columns() / schema_compatible() schema 检查工具

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.5.tar.gz (70.5 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.5-py3-none-any.whl (84.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: panzr-0.5.5.tar.gz
  • Upload date:
  • Size: 70.5 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.5.tar.gz
Algorithm Hash digest
SHA256 41eebc3017889c83812ac4a8e7f1ac0627f001c2724a01cb99bcac6c36bb5b66
MD5 00f2e1b028a0f6b25b9a8a192e52dfca
BLAKE2b-256 c25ccec39b29520af886300757fac71b4352a7d18be7ba13bcac14cc70e1ee34

See more details on using hashes here.

File details

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

File metadata

  • Download URL: panzr-0.5.5-py3-none-any.whl
  • Upload date:
  • Size: 84.4 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 60552d382360de0113a4976d01edef0e9e8c17051b0899a2367277315bd72a5a
MD5 81026f4378f83c21c407a7faf4865b57
BLAKE2b-256 3182f3dd83a2df0de7f95e0ceab7203ed6b4a436d4776b1bf1e3bcd999433674

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