Pavor使ってみた

From Evernote:

Pavor使ってみた

virtualenv, pip, setuptools, distribute, buildoutなどPythonの環境構築は結構あるが、さらにPavorを教えてもらったので試してみた。

Pavorはタスクをこなすためのスクリプトを一元的に管理するようなもの。
buildoutのレシピとどう違うんだという気がするが、Pavorのタスクはレシピよりも小さな感じで、関数を書いてtaskデコレータで登録するだけで使える。
タスクは、pavement.pyというファイルに書く。

from paver.easy import *

@task
def hello():
    """ Say hello
    """
    print "Hello, world!"

これで、helloタスクを使えるようになる

paverには標準でsetuptools互換のタスクを作るファクトリ、ファイルを操作するためのユーティリティなどがついている。

from paver.easy import *
from paver.setuputils import setup

setup(
    name="hoge",
    version="0.1",
)

これで、bidst_eggやsdist, register タスクが使えるようになる(中でsetuptools呼んでるだけなんだろうけどね)

さらに、generate_setupタスクがデフォルトで用意されていて、これを実行すると、paverを実行するsetup.pyが生成される。
minilibタスクでpaver-minilib.zipを生成させておけば、paverのインストールも不要になる。
この状態だといつものsetup.pyと同じように使えて、かつpavement.pyで定義したタスクも使えるようになる。

なんだかんだでプロジェクト固有のタスクを書いたりするわけで、そういったタスクをbuildoutのレシピを作るより簡単に作れるのは魅力かもしれない。
buildoutは、結構大掛かりで汎用的な感じなので、うまく補完してくれそうな気がする。
連携して使うのはまた今度試してみよう。