首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >doit正在运行dodo.py中的每个函数。我能改变它吗?

doit正在运行dodo.py中的每个函数。我能改变它吗?
EN

Stack Overflow用户
提问于 2019-03-28 23:38:37
回答 1查看 324关注 0票数 0

我正在尝试自动化一个流程,我遇到了"doit“的问题,因为它正在运行dodo.py中的所有函数,而我不希望它这样做。

我正在使用"doit“特性在Python 2.7上工作。下面是dodo.py文件中的一部分代码。问题是,当我尝试运行"doit list“( doit的一个基本函数)时,它也会从我的函数中打印出这两条消息。

我试着设置DOIT_CONFIG,我试着使用"uptodate: True",但都不起作用。

我在网上看到python分两步执行命令。在第一步中,它运行所有函数,然后运行您编写的命令。

我想问的是,有没有办法禁用这个“功能”?我只想在不调用任务"setup“和"test”的情况下运行"doit list“,因为任务"test”正在打印文本并等待输入,即使"doit list“不需要它们。

有没有办法告诉"doit“不要执行某些函数,除非我调用它们?既然没有依赖,我想应该有一种方法,但我找不到它。

代码语言:javascript
复制
def task_setup():
    print("Doing setup")
    a = 3

    return a

def task_test():

    items = os.listdir(pd_audit_path)
    fileList = []

    for names in items:
        if names.startswith(pd_step):
            fileList.append(names)
    cnt = 0                                                       
    for fileName in fileList:
        sys.stdout.write( "[%d] %s\n\r" %(cnt, fileName) )
        cnt = cnt + 1                              

    fileName = int(input("\n\rSelect run [0 - " + str(cnt - 1) + "]: "))
    path = fileList[fileName]

    return { 
        'file_dep': [],                          
        'actions': ['The path is: %s',%(path)],
        'params':[{'name':'all', 'long': 'all', 'type': bool,
        'default': True, 'help': 'all relevant reports'},],
        'verbosity': 2,
    } 

当我调用"doit list“时,我期望得到一个包含来自dodo.py的所有任务的列表,但它也会打印来自任务"setup”和“Test.”的消息。

EN

回答 1

Stack Overflow用户

发布于 2019-03-30 00:53:37

从文档中:

以名称task_开头的函数定义了由doit识别的任务创建者。这些函数必须返回(或产生)表示任务的字典。

doit需要执行这些函数,以便获得任务定义,并知道必须执行哪些任务。因此,您应该以task_开头命名您的实用程序函数,除非必要,否则不要在任务函数中打印,例如用于调试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55401596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档