在Python 2.7中使用Ruffus库,just_print标志失败

时间:2017-01-16 19:18:21

标签: python python-2.7 pipeline ruffus

我在Python 2.7中有一个ruffus管道,但是当我用-n--just_print调用它时,它仍然运行所有实际任务,而不是像它一样打印管道&#39应该是的。我:
*没有-n参数可以取代内置(尽管我有其他命令行参数)
*拥有@transform()@merge()装饰器的一堆函数 *通过run_pipeline()调用结束管道

还有其他人遇到过这个问题吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

从ruffus 2.4版本开始,您可以使用内置ruffus.cmdline,它通过使用cmdline.py的{​​{1}}模块存储相应的标志,例如:

argparse

然后使用如下命令从终端运行管道:

from ruffus import *
parser = cmdline.get_argparse(description='Example pipeline')
options = parser.parse_args()

@originate("test_out.txt")
def run_testFunction(output):
        with open(output,"w") as f:
            f.write("it's working!\n")

cmdline.run(options)

如果您想手动执行此操作(这对于较旧版本的ruffus是必需的),您可以使用python script.py --verbose 6 --target_tasks run_testFunction --just_print 来调用pipeline_printout()而不是pipeline_run(),以便{{1} } flag指向适当的调用,例如:

argparse

然后您将运行如下命令:

--just_print