名称和规范化#
本规范定义了包和附加组件名称必须遵循的格式。它还描述了如何规范化这些名称,这应在查找和比较之前完成。
名称格式#
有效的名称仅包含 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
(一个编写名称的糟糕方式,但它是有效的)