8 追加のメタデータ

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 分類語のリスト 文字列からなるリスト (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.pyclassifiers を入れておき、なおかつ 2.2.3 よりも以前のバージョンの Python と後方互換性を保ちたいなら、 setup.py 中で setup() を呼び出す前に、以下のコードを 入れます。

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

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。