このセクションではDistutilsの新しいコマンドを作成する手順の概要をしめします。
新しいコマンドは distutils.command パッケージ中のモジュールに
作られます。command_template というディレクトリにサンプルのテン
プレートがあります。このファイルを実装しようとしているコマンドと同名の
新しいモジュールにコピーしてください。
このモジュールはモジュール(とコマンド)と同じ名前のクラスを実装する必要があります。
そのため、peel_banana
コマンド(ユーザは
"setup.py peel_banana"と実行できます)を実装する際には、
command_templateを distutils/command/peel_banana.pyにコ
ピーし、distutils.cmd.Commandのサブクラス peel_banana
クラスを実装するように編集してください。
Commandのサブクラスは以下のメソッドを実装する必要があります。
) |
) |
) |
sub_commandsは コマンドの``ファミリー''を定式化したものです。
たとえば install
は サブコマンド
install_lib
、install_headers
などの親です。
コマンドファミリーの親は sub_commandsをクラス属性として持ちます。
2要素のタプル"(command_name, predicate)"のリストで、
command_nameには文字列、predicateには親コマンドのメソッドで、
現在の状況がコマンド実行にふさわしいかどうか判断するものを指定します。
(例えば install_headers
はインストールするべき Cヘッダファイル
がある時だけ有効です。) もし predicate が None なら、そのコマン
ドは常に有効になります。
sub_commands は 通常クラスの最後で定義されます。 これはpredicate は boundされていないメソッドになるので、全て先に定義されてい る必要があるためです。
標準的な例はinstall
コマンドです。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。