パッケージ名の正規化#

プロジェクト名は、さまざまな文脈で使用するために "正規化" されます。この説明文書では、プロジェクト名がどのように正規化されるべきかについて記述します。

正当な非正規化名#

正当な名前は ASCII 文字・数字・ピリオド・アンダースコア・ハイフンだけで構成されているものです。名前の先頭と末尾は文字か数字でなければなりません。正当なプロジェクト名は、次の正規表現に (re.IGNORECASE 付きで) マッチするものに限らるということになります:

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

正規化#

名前は、すべての文字を小文字にして、 .,_ の文字が連続で1個以上出現したらそれを単独の - の文字に置き換えるべきです。これは、 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 (a terrible way to write a name, but it is valid)

歴史#