#
7 追加のメタデータ

setup スクリプトには、名前やバージョンにとどまらず、その他の メタデータを含められます。以下のような情報を含められます:

メタデータ | 説明 | 値 | 注記
--- | --- | --- | ---
`name` | パッケージの名前 | 短い文字列 | (1)
`version` | リリースのバージョン | 短い文字列 | (1)(2)
`author` | パッケージ作者の名前 | 短い文字列 | (3)
`author_email` | パッケージ作者の電子メールアドレス | 電子メールアドレス | (3)
`maintainer` | パッケージメンテナンス担当者の名前 | 短い文字列 | (3)
`maintainer_email` | パッケージメンテナンス担当者の 電子メールアドレス | 電子メールアドレス | (3)
`url` | パッケージのホームページ | URL | (1)
`description` | パッケージについての簡潔な概要説明 | 短い文字列 |
`long_description` | パッケージについての詳細な説明 | 長い文字列 |
`download_url` | パッケージをダウンロードできる場所 | URL | (4)
`classifiers` | Trove 分類語 | 文字列からなるリスト | (4)

注記:

(1)
  必須のフィールドです。
(2)
  バージョン番号は major.minor[.patch[.sub]] の形式をとるよう奨めます。
(3)
  作者かメンテナのどちらかは必ず区別してください。
(4)
  これらのフィールドは、2.2.3 および 2.3 より以前の バージョンの Python でも互換性を持たせたい場合には指定しては なりません。 リストは PyPI ウェブサイト にあります。

「短い文字列」
  200 文字以内の一行のテキスト。
「長い文字列」
  複数行からなり、ReStructuredText 形式で書かれた プレーンテキスト (http://docutils.sf.net/ を参照してください)。
「文字列のリスト」
  下記を参照してください。

これらの文字列はいずれも Unicode であってはなりません。

バージョン情報のコード化は、それ自体が一つのアートです。 Python のパッケージは一般的に、 major.minor[.patch][sub] という バージョン表記に従います。 メジャー (major) 番号は最初は 0 で、これはソフトウェアが実験的リリース にあることを示します。メジャー番号は、パッケージが主要な開発目標を 達成したとき、それを示すために加算されてゆきます。マイナー (minor) 番号は、パッケージに重要な新機能が追加されたときに加算されてゆきます。 パッチ (patch) 番号は、バグフィクス版のリリースが作成されたときに 加算されます。末尾にバージョン情報が追加され、サブリリースを示す こともあります。これは "a1,a2,...,aN" (アルファリリースの場合で、 機能や API が変更されているとき)、 "b1,b2,...,bN" (ベータリリース の場合で、バグフィクスのみのとき) 、そして "pr1,pr2,...,prN" (プレリリースの最終段階で、リリーステストのとき) になります。 以下に例を示します:

0.1.0
  パッケージの最初の実験的なリリース
1.0.1a2
  1.0 の最初のパッチバージョンに対する、2 回目のアルファ リリース

classifiers は、 Python のリスト型で指定します:

    setup(...
          classifiers=[
              'Development Status :: 4 - Beta',
              'Environment :: Console',
              'Environment :: Web Environment',
              'Intended Audience :: End Users/Desktop',
              'Intended Audience :: Developers',
              'Intended Audience :: System Administrators',
              'License :: OSI Approved :: Python Software Foundation License',
              'Operating System :: MacOS :: MacOS X',
              'Operating System :: Microsoft :: Windows',
              'Operating System :: POSIX',
              'Programming Language :: Python',
              'Topic :: Communications :: Email',
              'Topic :: Office/Business',
              'Topic :: Software Development :: Bug Tracking',
              ],
          )

setup.py に classifiers を入れておき、なおかつ 2.2.3 よりも以前のバージョンの Python と後方互換性を保ちたいなら、 setup.py 中で `setup()` を呼び出す前に、以下のコードを 入れます。

    # patch distutils if it can't cope with the "classifiers" or
    # "download_url" keywords
    if sys.version < '2.2.3':
        from distutils.dist import DistributionMetadata
        DistributionMetadata.classifiers = None
        DistributionMetadata.download_url = None