Metadata-Version: 2.4
Name: panzr
Version: 0.2.7
Summary: Armored Analytics in Your Terminal — 终端数据分析驾驶舱
Author-email: Song <song@example.com>
License: MIT
Keywords: cli,csv,data-analysis,duckdb,polars,sql,terminal,tui
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.10
Requires-Dist: duckdb>=1.0.0
Requires-Dist: openai>=1.0.0
Requires-Dist: plotext>=5.0.0
Requires-Dist: polars>=1.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: textual>=0.52.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: full
Requires-Dist: harlequin; extra == 'full'
Requires-Dist: jq; extra == 'full'
Requires-Dist: visidata; extra == 'full'
Provides-Extra: harlequin
Requires-Dist: harlequin; extra == 'harlequin'
Provides-Extra: visidata
Requires-Dist: visidata; extra == 'visidata'
Description-Content-Type: text/markdown

# 🐼🔧 Panzr v0.2.7

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

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

---

## 产品定位

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

**v0.2.6** 核心升级：**DuckDB 成为唯一数据引擎**。文件组注册为 DuckDB View（零内存），探查/聚合/SQL 统一走 DuckDB。新增 LLM 自然语言生成 SQL。

---

## 功能矩阵

| Tab | 功能 | 底层引擎 |
|:---|:---|:---|
| 🔌 **连接** | 扫描目录、关键词搜索分组、多选加载、DuckDB View 注册 | DuckDB + Polars |
| 🔍 **探查** | Polars 管道 (筛选→排序→去重→选列), 懒加载, 三段式布局 | Polars Lazy |
| 📝 **SQL** | DuckDB 查询, DataCatalog + 编辑器 + 结果, Harlequin 布局 | DuckDB |
| 🤖 **AI SQL** | 自然语言 → SQL (DeepSeek), 自动注入表结构 | LLM |
| 📊 **聚合** | 跨文件 GROUP BY, 多聚合函数, DuckDB 全量扫描 | DuckDB |
| 📈 **可视化** | 柱状图/折线图/散点图/直方图, 终端渲染 | plotext |
| 📋 **报告** | 一键数据诊断报告 (Data Profile) | DuckDB + Rich |

---

## 安装

```bash
pip install -e .
```

依赖: `textual` `duckdb` `polars` `plotext` `rich` `openai`

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

### LLM SQL 生成

```bash
export DEEPSEEK_API_KEY=sk-你的key
```

---

## 使用

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

### 典型工作流

```
扫描目录 → 多选分组 → DuckDB View 注册 (全量零内存)
  → 探查 (Polars lazy 管道, limit 500)
  → SQL (AI 生成或手写, 全量查询)
  → 聚合 (跨文件 GROUP BY)
  → 可视化
```

---

## 快捷键

| 快捷键 | 功能 |
|:---|:---|
| `Ctrl+Q` / `Ctrl+C` | 退出 Panzr |
| `Ctrl+T` | 下一个 Tab |
| `Ctrl+P` | 上一个 Tab |
| `Ctrl+Enter` | 执行 SQL 查询 |

---

## 项目结构

```
panzr/
├── app.py                  # 主 App + CSS + 快捷键
├── state.py                # 全局数据上下文 (AppState)
├── startup_check.py        # 启动环境检测器
├── engines/
│   ├── loader.py           # 文件扫描 + 分组
│   ├── duckdb_engine.py    # DuckDB 查询引擎
│   ├── harlequin_launcher.py  # Harlequin 子进程启动
│   ├── llm.py              # LLM SQL 生成 (DeepSeek)
│   └── exporter.py         # 导出
└── tabs/
    ├── connect.py          # 连接 Tab (扫描+多选+DuckDB)
    ├── explore.py          # 探查 Tab (Polars lazy 管道)
    ├── query.py            # SQL Tab (DataCatalog 布局)
    ├── aggregate.py        # 聚合 Tab (DuckDB GROUP BY)
    ├── vision.py           # 可视化 Tab (plotext)
    └── report.py           # 报告 Tab (Rich)
```

---

## License

MIT
