Python编码标准Skill dignified-python

这个技能是一个Python编码标准框架,提供自动版本检测、LBYL异常处理模式、现代类型语法、pathlib操作、ABC接口、绝对导入和CLI错误边界。它还包括生产测试的代码气味模式,适用于API设计、参数复杂度和代码组织,确保代码质量和一致性。关键词:Python编码标准,版本检测,LBYL异常处理,现代类型语法,pathlib,ABC接口,绝对导入,CLI错误边界,API设计,代码组织。

架构设计 0 次安装 0 次浏览 更新于 3/18/2026

name: dignified-python description: Python编码标准,带有自动版本检测。 在编写、审查或重构Python代码时使用,以确保遵循LBYL异常处理模式、现代类型语法(list[str], str | None)、pathlib操作、基于ABC的接口、绝对导入和CLI级别的显式错误边界。 还提供来自Dagster Labs的生产测试代码气味模式,用于API设计、参数复杂度和代码组织。对于维护erk的高贵Python标准至关重要。

高贵的Python编码标准

核心知识(始终加载)

@dignified-python-core.md

版本检测

识别项目的最低Python版本 通过检查(按顺序):

  1. pyproject.toml - 查找requires-python字段(例如,requires-python = ">=3.12"
  2. setup.pysetup.cfg - 查找 python_requires
  3. .python-version 文件 - 包含版本如 3.123.12.0
  4. 如果未找到版本说明符,默认使用 Python 3.12

一旦识别,加载相应的版本特定文件:

  • Python 3.10: 加载 versions/python-3.10.md
  • Python 3.11: 加载 versions/python-3.11.md
  • Python 3.12: 加载 versions/python-3.12.md
  • Python 3.13: 加载 versions/python-3.13.md

条件加载(基于任务模式加载)

上述核心文件覆盖了80%以上的Python代码模式。只有在检测到特定模式时才加载这些附加文件:

模式检测示例:

  • 如果任务提到“click”或“CLI” -> 加载 cli-patterns.md
  • 如果任务提到“subprocess” -> 加载 subprocess.md

何时阅读每个参考文档

references/ 目录包含专业主题的详细指导。在遇到相关模式时按需加载:

references/exception-handling.md

阅读时机:

  • 编写 try/except 块
  • 包装可能引发异常的第三方API
  • 看到或编写 from efrom None
  • 不确定是否存在LBYL替代方案

references/interfaces.md

阅读时机:

  • 创建 ABC 或 Protocol 类
  • 编写 @abstractmethod 装饰器
  • 设计网关层接口
  • 选择 ABC 和 Protocol 之间

references/typing-advanced.md

阅读时机:

  • 使用 typing.cast()
  • 创建 Literal 类型别名
  • 在条件块中缩小类型

references/module-design.md

阅读时机:

  • 创建新的 Python 模块
  • 添加模块级代码(超出简单常量)
  • 在模块级使用 @cache 装饰器
  • 看到 Path() 或在模块级进行计算
  • 考虑内联导入

references/api-design.md

阅读时机:

  • 添加函数默认参数值
  • 定义有5个或更多参数的函数
  • 使用 ThreadPoolExecutor.submit()
  • 审查函数签名

references/checklists.md

阅读时机:

  • 提交Python代码前的最终审查
  • 不确定是否遵循了所有规则
  • 需要快速查找要求

如何使用此技能

  1. 核心知识 自动加载(LBYL、pathlib、基本导入、反模式)
  2. 版本检测 发生一次 - 识别最低Python版本并加载适当的版本文件
  3. 参考文档 基于上述触发按需加载
  4. 附加模式 可能需要额外加载(CLI模式、subprocess)
  5. 每个文件是自包含的,具有其领域的完整指导