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,不要复制命令行里的业务逻辑。