doit выполняет каждую функцию внутри dodo.py.Могу ли я это изменить? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь автоматизировать поток, и я столкнулся с проблемой с "doit", потому что он запускает все функции внутри dodo.py, и я не хочу, чтобы это делалось.

Яработа на Python 2.7 с использованием функции "doit".Ниже приведена часть кода из файла dodo.py.Проблема в том, что когда я пытаюсь запустить «список doit» (базовая функция из doit), он также печатает эти 2 сообщения из моих функций.

Я пытался установить DOIT_CONFIG, я пыталсяиспользуйте «uptodate: [True]», но ничего из этого не сработало.

Я читал в интернете, что python выполняет команды в 2 этапа.На первом этапе он запускает все функции, а после этого выполняет команду, которую вы написали.

Я хочу спросить, есть ли способ отключить эту «функцию»?Все, что я хочу, это запустить «список точек» без вызова задач «настройка» и «тест», потому что задача «тест» печатает текст и ожидает ввода, даже если «список точек» не нуждается в них.

Есть ли способ сказать "doit" не выполнять какую-либо функцию, если я не вызову их?Поскольку нет никаких зависимостей, я думаю, что должен быть способ, но я не смог его найти.


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».

1 Ответ

0 голосов
/ 29 марта 2019

Из документов:

Функция, которая начинается с имени task_, определяет создателя задачи признано доит. Эти функции должны возвращать (или давать) словари, представляющие задачу.

doit необходимо выполнить эти функции, чтобы получить определения задач и узнать, какие задачи должны быть выполнены. Поэтому вы должны называть свои служебные функции, начиная с task_, и не печатать внутри функций задачи, если это не необходимо, например, для отладки.

...