ドキュメントヘルパー

fabric.docs.unwrap_tasks(module, hide_nontasks=False)

モジュール 上のタスクオブジェクトをラップされた関数に置き換えます。

特に WrappedCallableTask のインスタンスを探し、その .wrapped 属性(元のデコレートされた関数)と置き換えます。

これはSphinxのautodocツールとともに使用するよう意図されていて、プロジェクトの conf.py の最後のほうで実行されます。autodoc拡張機能が関数シグネチャなどにおける “実際の” 関数に対して完全なアクセスを確実に持つようにします。 unwrap_tasks 利用なしではautodocは関数シグネチャにアクセスできません(__doc__ などで見ることはできますが)。

例えば、conf.py の最後の方で:

from fabric.docs import unwrap_tasks
import my_package.my_fabfile
unwrap_tasks(my_package.my_fabfile)

それ以上のことも可能です。hide_nontasks=True と指定することによってタスク以外のすべての関数を明示的に 隠す ことができます。これによりすべてのオブジェクトで “これはタスク?” のチェックに失敗するようになり、そのためプライベートのように見え、その結果autodocはこれらをスキップします。

したがって、hide_nontasks は、fabfileに実際のタスクを持つサブルーチンが入っていて、本当のタスク だけ をドキュメント化したいときに便利です。

もし実際のセッションを使用しているFabricコード内で(Sphinxの conf.py 内ではなく)これを実行するのなら、すぐに病院で診てもらってください。