Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>DataFlow GuardNew to Visual Studio Code? Get it now.
DataFlow Guard

DataFlow Guard

orgcw01

|
1 install
| (0) | Free
Pandas 数据 Schema 静态校验与数据预览(100% 本地,零上传)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

DataFlow Guard

Pandas 数据 Schema 静态校验与数据预览的 VS Code 插件(MVP)。 100% 本地化处理,零数据上传——在按下运行键之前拦截错误并提供数据预览。

设计文档:docs/design.md;实施计划:docs/superpowers/plans/2026-11-13-dataguard-mvp.md。

功能(MVP:CSV 单文件闭环)

  • pd.read_csv(...) 前 100 行有界抽样,构建轻量 Schema 库(mtime 缓存,不重复采样)
  • 实时诊断(红线):列不存在(含 did-you-mean 拼写建议)、CSV 读文件失败
  • ▶ Preview Data (50 rows) CodeLens:在白名单识别的数据节点(read_csv / 掩码 / groupby / 聚合链)上,基于抽样数据本地重放并展示前 50 行
  • 用户代码永不被 exec;全部计算在本机 Python 子进程完成

开发环境准备

依赖:Node ≥20(本机 v23)、Python ≥3.10(本机 3.13)。

# 1. 后端 venv + 依赖
python -m venv backend\.venv
backend\.venv\Scripts\python -m pip install -e "backend[dev]"

# 2. 前端依赖 + 编译
npm install
npm run compile

调试验收(F5)

  1. VS Code 打开 DataGuard/ 根目录,按 F5(无 .vscode/launch.json 时新建 Extension Development Host 配置,或直接用默认 Run Extension)
  2. 新窗口中 File → Open Folder 打开 sample-workspace/,并在设置里指定解释器:
    { "dataflow-guard.pythonPath": "backend/.venv/Scripts/python.exe 的绝对路径" }
    
    (Extension Development Host 的设置需指向绝对路径)
  3. 打开 demo.py,逐项确认:
    • [ ] df["acctt_id"] 下方画红线,提示"是否想用「acct_id」?"
    • [ ] df["region"] 画红线(无相近列,无建议)
    • [ ] df["profit"](新建列)不报红线
    • [ ] df = pd.read_csv("sales.csv")、stats = …groupby…sum()、north = df[df["region"] == "north"] 三处上方出现 ▶ Preview Data (50 rows) · df
    • [ ] 点击三处 CodeLens 分别弹出 Webview 表格;stats 那处展示按城市聚合的三行结果(北京/广州/深圳);north 那处展示"⚠ 预览失败"错误框(region 列不存在 → pandas KeyError 被折叠为错误信息)
    • [ ] 手工把 sales.csv 改名后保存 demo.py → read_csv 行出现黄色警告"文件不存在";把文件名改回后再次保存 demo.py,警告消失(诊断随文档事件重新发布)
  4. 测试回归:backend\.venv\Scripts\python -m pytest backend/tests -q(28 个用例,含 LSP stdio 端到端)

架构速览

VS Code ──stdio JSON-RPC── python -m dataguard.server (pygls)
  │                            ├─ analyzer.py  ast 解析(白名单链提取)
  │                            ├─ schema.py    nrows=100 抽样 + 缓存
  │                            ├─ rules.py     诊断规则
  │                            ├─ preview.py   白名单链重放
  │                            └─ license.py   License 桩(W3 接真实校验)
  └─ CodeLens / Webview(enableScripts:false + CSP)

已知边界(MVP)

  • 仅支持 pd.read_csv;read_parquet / polars / SQL / merge 类型校验 / ipynb 列 W2-W3
  • 仅校验直接绑定 read_csv 的变量;派生变量(df2 = df...)不参与列校验(引用收集会跳过)
  • 列引用检测范围:df["col"]、df[["a","b"]]、掩码内下标、groupby/sort_values/drop/value_counts 首个字符串参数;df.col 属性访问不检测(避免与 pandas 方法名混淆)
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft