2
我在a.py中有任務A,在b.py中是B,而任務B執行A,因此在b.py中有一個'import a'。在python模塊中組織織物任務
當我做'fab --list'時,我得到a.A,b.B和b.a.A.我怎樣才能避免fab列表中的b.a.A?謝謝。
我在a.py中有任務A,在b.py中是B,而任務B執行A,因此在b.py中有一個'import a'。在python模塊中組織織物任務
當我做'fab --list'時,我得到a.A,b.B和b.a.A.我怎樣才能避免fab列表中的b.a.A?謝謝。
通過限制從模塊導出的功能,可以限制織物將在fab -l
中顯示的內容。這方面的一個很好的說明了defining tasks織物的文件(特別是在namespaces和Limiting with __all__
的章節中給出
如果你有你的fabfile目錄中是這樣的:。
.
└── fabfile
├── a.py
├── b.py
└── __init__.py
蠻力這樣做,這是通過重命名在__init__.py
:
import a
import b
A = a.A
B = b.B
在a.py
(和b.py
)你擋住的所有功能與0出口
from fabric.api import *
@task
def A():
pass
__all__ = []
運行fab -l
下一次,你應該得到正確的結果
$ fab -l
Available commands:
A
B
然而,這是值得我們思考的,這是否是你想要做的事。通常情況下,如果您有足夠的功能來使織物的輸出難以閱讀,那麼您可能需要考慮您是否合法地首先將這些功能作爲任務運行。
到__all__
劈另一種方法是讓織物呈現以不同的格式的任務是,可能是,更易讀
$ fab --list-format=nested --list
Available commands (remember to call as module.[...].task):
A
B
a:
A
b:
B