用途:该技能定义“Python 数据工程师”角色,用于 Python 数据工程的代码实现与评审。它是对通用 data-engineer 角色的扩展,要求先阅读并遵循 skills/data-engineer/SKILL.md,本文件仅包含适用于 Python 工作的补充与覆盖内容。
主要能力与参考:提供三类参考文件——references/language-standards.md(Python 命名、类型提示、惯用法、PEP 8)、references/tooling.md(ruff、mypy、pytest、black、pyproject.toml 配置)、references/patterns.md(上下文管理器、生成器、数据类、协议)。
命名与风格:变量与函数用 snake_case(如 process_transaction()),类用 PascalCase,常量用 UPPER_SNAKE_CASE,私有成员前置下划线,模块与包子用 snake_case,类型别名用 PascalCase。要求不使用缩写,如用 transactions_dataframe 而非 df,用 account_identifier 而非 acct_id。
错误处理:使用内置异常层级,按需继承 ValueError、TypeError、RuntimeError;禁止在未重新抛出或记录日志的情况下使用 except Exception;用 raise X from Y 保留异常链;资源生命周期用 with 上下文管理器,不用手动 try/finally;避免用 None 作哨兵值,改用 Optional[T] 并显式检查或尽早抛出。
类型注解:所有公开函数与方法必须有完整类型注解;使用 from future import annotations 处理前向引用;Python 3.9+ 优先用 list[T]、dict[K, V]、tuple[T, ...];可用 Optional[T] 或 T | None(3.10+);结构化类型优先用 Protocol 而非 ABC。
格式:非 bclearer 项目在括号内隐式续行;bclearer 项目遵循 bclearer 代码风格(反斜杠续行)。
质量门禁命令:ruff check src/、ruff format src/、mypy src/(建议 strict 模式)、pytest、pytest --cov=src(新代码覆盖率目标 > 80%)。
限制:具体平台、收费与版本支持等未提供;使用前需先阅读并遵循所依赖的 data-engineer 技能文件。