2026-08-11 / 5 min

tidyflow 的 CLI 模块边界

将命令行入口、清洗、诊断和报告拆开,让每个模块只负责一类工作。

PythonCLI架构

模块分工

tidyflow 将 CLI、清洗、诊断和报告分开:

  • cli.py:解析命令行参数并组织用户可见输出。
  • cleaner.py:读取 CSV、Excel、JSON 并执行清洗动作。
  • diagnoser.py:检查缺失值、重复行、列名、文本和类型问题。
  • reporter.py:整理清洗前后的差异并生成质量报告。

CLI 不处理 pandas 细节,诊断器也不保存文件。模块之间通过明确输入和输出协作,因此可以分别测试和替换。

清洗状态

Cleaner 保存原始 DataFrame 和当前 DataFrame。每个清洗动作只修改当前数据,同时记录操作链;clean() 返回 CleanResult,再由结果对象决定保存、生成报告或导出对比。

Cleaner("data.csv").remove_duplicates().fill_missing().to_snake_case().clean()

诊断与清洗分离

Diagnoser 保持只读,只报告问题而不改变 DataFrame。问题可以按 warning、error、critical 分级,让调用方先理解问题范围,再决定是否清洗。

扩展边界

CLI 只是编排层。未来增加 Web API、notebook helper 或图形界面时,应复用 Cleaner 和 Diagnoser,不要复制命令行里的业务逻辑。

相关内容:CLI 与 Python API 用法、tidyflow 项目页。