Invokeを少し触ってみた
Invokeとは?
Python製のタスクランナーだそう。make, rake, gulpみたいな。
↓みたいにタスクを書いて、invoke clean build
みたいに実行できると。
from invoke import run, task @task def clean(docs=False, bytecode=False, extra=''): patterns = ['build'] if docs: patterns.append('docs/_build') if bytecode: patterns.append('**/*.pyc') if extra: patterns.append(extra) for pattern in patterns: run("rm -rf %s" % pattern) @task def build(docs=False): run("python setup.py build") if docs: run("sphinx-build docs docs/_build")
どこで使われている?
Fabric(https://github.com/fabric/fabric/)で。
http://www.pyinvoke.org/faq.html#why-was-invoke-split-off-from-the-fabric-project
↑を読むと、Fabricが仕事し過ぎなため、ライブラリを分割した模様。
サンプルは?
非常にシンプルで直感的に使えるのですが、事例が少ない。。
日本語ではこちらのサイトくらい www.hexacosa.net
一番いいのはFabricの事例と、作者のタスク集みたいなのを見ること。
実戦で使ってみる?
ちょっと悩む。
makeとかrakeで何とかならんこともないし。
While fully usable, Invoke is still pre-1.0 software and has no backwards compatibility
なので、API変更もあり得るし。
どうしてもPythonで全部統一したい人は使ってみたらよいのではないでしょうか・・・