Skip to main content

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

Project description

🐼🔧 Panzr v0.4.1

Armored Analytics in Your Terminal. 终端里的装甲数据分析。

Panzr 是你的终端数据分析驾驶舱。 "Your Terminal Data Cockpit."


产品定位

Panzr 是一个 TUI (Terminal User Interface) 数据分析工具箱。底层整合 DuckDB、Polars、plotext 等成熟引擎,Panzr 本身只负责:菜单导航、参数拼装、流程串联、结果展示。

v0.4.0 新增:Header/Footer、全局右键复制、常用 SQL 规则、输出格式选择器、紧凑 UI。


功能矩阵

Tab 功能 底层引擎
🔌 连接 扫描目录、关键词搜索分组、多选加载、DuckDB View 注册 DuckDB + Polars
🔍 探查 Polars 管道 (筛选→排序→去重→选列), 懒加载, 三段式布局 Polars Lazy
📝 SQL DuckDB 查询 + AI 对话 + 常用规则 + 导出, 可拖动分隔条 DuckDB
💬 AI 对话 多轮 SQL 讨论, 上下文感知, 历史持久化, 底部面板切换 DeepSeek LLM
📊 聚合 跨文件 GROUP BY, 多聚合函数, DuckDB 全量扫描 DuckDB
📈 可视化 柱状图/折线图/散点图/直方图, 终端渲染 plotext
📋 报告 一键数据诊断报告 (Data Profile) DuckDB + Rich

安装

pip install panzr

依赖: textual duckdb polars plotext rich openai

如果启动时报 AVX2 指令集错误(老 CPU / 虚拟机),请安装兼容版本:

pip install panzr[compat]

panzr[compat] 使用 polars-runtime-compat 替代 polars,无需 AVX2 指令集。

外部工具 (可选): visidata harlequin jq

LLM 配置

export DEEPSEEK_API_KEY=sk-你的key

使用

panzr
# 自动加载目录
panzr --load ~/FinData/资金结算
# 加载 siku 插件
panzr --siku

典型工作流

扫描目录 → 多选分组 → DuckDB View 注册 (全量零内存)
  → SQL (AI 多轮对话或手写, 全量查询)
  → 聚合 (跨文件 GROUP BY)
  → 可视化

快捷键

快捷键 功能
Ctrl+Q / Ctrl+C 退出 Panzr
Ctrl+T 下一个 Tab
Ctrl+P 上一个 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 规则
├── engines/
│   ├── loader.py             # 文件扫描 + 分组
│   ├── duckdb_engine.py      # DuckDB 查询引擎
│   ├── harlequin_launcher.py # Harlequin 子进程启动
│   ├── llm.py                # LLM SQL 生成 + 多轮对话 (DeepSeek)
│   ├── history.py            # 查询历史 + 聊天记录持久化
│   └── exporter.py           # 导出
├── tabs/
│   ├── connect.py            # 连接 Tab (扫描+多选+DuckDB)
│   ├── explore.py            # 探查 Tab (Polars lazy 管道)
│   ├── query.py              # SQL Tab + AI 对话面板
│   ├── aggregate.py          # 聚合 Tab (DuckDB GROUP BY)
│   ├── vision.py             # 可视化 Tab (plotext)
│   └── report.py             # 报告 Tab (Rich)
└── widgets/
    ├── splitter.py            # 可拖动分隔条 (纵向/横向)
    ├── resizable.py           # Ctrl+Up/Down 调节高度 TextArea
    ├── ai_chat.py             # AI 多轮对话面板
    └── context_menu.py        # 右键菜单 (可复用)

Changelog

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 页操作栏:合并为一行,去掉冗余按钮
  • 🐛 修复 CLI 版本号解析(提取纯版本号)
  • 🐛 修复 importlib.resources 打包后路径问题

v0.3.0

  • ✨ 新增 AI 多轮对话面板 (底部 Tab 切换, 上下文感知, 聊天记录持久化)
  • ✨ 新增可拖动分隔条 (鼠标拖动调整编辑器高度)
  • ✨ 新增 Ctrl+Up/Ctrl+Down 调节编辑器高度
  • ✨ 新增右键全选复制 (OSC 52 系统剪贴板)
  • ✨ 新增聊天记录本地持久化 (~/.panzr/history.json)
  • 🐛 修复 LIMIT 500 追加时 SQL 末尾分号导致的语法错误

v0.2.6

  • DuckDB 成为唯一数据引擎、LLM 自然语言生成 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.4.1.tar.gz (61.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.4.1-py3-none-any.whl (67.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for panzr-0.4.1.tar.gz
Algorithm Hash digest
SHA256 ca954e9e3d33c5ac9a04808315875d2580ca8e7691c37eb72fc7d67ce521ec22
MD5 332f3c076713dd03c77371c4f9668257
BLAKE2b-256 d4e1c49b9ae733f5f2a4309642160814e818ebe4a2a3c982d09cd77c30ff04a1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for panzr-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 444c3f0e781bd644fca21d1f530f106553099e4909f819f88878d0e2eda29d4a
MD5 dfdeff1bdfadf46713c73b2b0ab56ec4
BLAKE2b-256 dc7fa169b8ff222b856c49f321576f51dde49e18570aa125d1a40200da942028

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