Skip to main content

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


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.0.tar.gz (68.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.0-py3-none-any.whl (82.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: panzr-0.5.0.tar.gz
  • Upload date:
  • Size: 68.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.0.tar.gz
Algorithm Hash digest
SHA256 e57ccf6a14003d7a69bb8806280c01241577dbf20c8ff1f135a6b6bd964dc787
MD5 e58e0850fcb1514a603d7a4e05b30960
BLAKE2b-256 5e332b45c3fc221f9754cc807b2095cdf8c29fb9d44b6cf566218f89ea9b485f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: panzr-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 82.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 db5933adab8ef39105481b11b7f0864b0237fc286ccb5ee9ab0d1777d219469a
MD5 7cb412fb22d39bd97dcd8ee4a268d4c7
BLAKE2b-256 7480282ac91bb639a6cfed574cb38f18563c0ed21022d4859828061259ab4806

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