SuperAPI AI 工具集

building-reusable-cli-tools

通用与其它

查看项目

更新于 10-16 04:33

技能介绍

用途:指导在 Python 中编写数据处理脚本、分析工具或多步自动化工具时,使其模块化、可配置、可测试,避免写成硬编码的一次性脚本。

主要能力与原则:

  1. 参数设计遵循 UNIX 惯例:位置参数只用于命令的主要目标(如输入文件路径、目录、资源 ID),最多 1-2 个;可选输入、过滤条件、阈值、开关使用带前缀的命名选项(如 --category 或 -c),布尔标志(如 --verbose、--force)不带额外参数。
  2. 分层架构:将 CLI 展示层与核心逻辑分离,核心业务逻辑独立成函数,便于单独测试和在其他脚本中复用。资料给出反例(解析与业务逻辑混合、硬编码文件路径)与推荐模式(薄包装:filter_amounts(csv_path, category=None) 负责逻辑,main 中解析参数并调用)。
  3. 框架选择:sys.argv 适用于 90% 只有 1-2 个位置参数的基础脚本;argparse 仅在需要多个标志、带类型选项或帮助文档时使用,无需外部依赖;除非明确要求,不要使用 click 等重型外部依赖。
  4. UX 与退出码:成功返回 0,一般运行时失败返回 1,校验或命令语法错误返回 64(BSD sysexits.h 的 EX_USAGE)。主输出打印到 stdout,日志、警告、进度和错误写入 stderr。在非 TTY 环境(管道或重定向)自动禁用 ANSI 颜色、回车符和动态进度指示,并尊重 NO_COLOR 环境变量。
  5. 防止过度工程:写代码前先问是否真的需要、标准库是否已覆盖、能否用一行脚本解决;只构建最小可用版本,不做未被要求的抽象。

适用场景:分析 JSON、CSV、日志等数据;多步文件或数据操作;当你想创建多个增量脚本(如 step1.py、step2.py)时;脚本需要可配置参数(输入、阈值、类别)时。

限制与提醒:资料未提供具体安装命令、依赖版本或平台要求。文中列出若干“红旗”信号,如用原始索引解析 sys.argv、硬编码文件路径或配置值、把诊断日志打到 stdout、CLI 函数直接执行数据库查询或文件计算而非包装服务函数,出现时应立即重构。