名称和规范化#

本规范定义了包和附加组件名称必须遵循的格式。它还描述了如何规范化这些名称,这应在查找和比较之前完成。

名称格式#

有效的名称仅包含 ASCII 字母和数字、句点、下划线和连字符。它必须以字母或数字开头和结尾。这意味着有效的项目名称仅限于与以下正则表达式匹配的名称(使用 re.IGNORECASE 运行)

^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$

名称规范化#

名称应小写,所有字符 .-_ 的运行都应替换为单个 - 字符。这可以使用 Python 中的 re 模块来实现

import re

def normalize(name):
    return re.sub(r"[-_.]+", "-", name).lower()

这意味着以下名称都是等效的

  • friendly-bard(规范化形式)

  • Friendly-Bard

  • FRIENDLY-BARD

  • friendly.bard

  • friendly_bard

  • friendly--bard

  • FrIeNdLy-._.-bArD(一个编写名称的糟糕方式,但它是有效的)

历史#

  • 2015 年 9 月:名称规范化的规范通过 503 获得批准。

  • 2015 年 11 月:有效名称的规范通过 508 获得批准。