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