doit запускает все функции внутри dodo.py. Могу ли я это изменить?

#python #python-2.7 #doit

#python #python-2.7 #doit

Вопрос:

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

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

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

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

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

Есть ли способ сообщить «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] %snr" %(cnt, fileName) )
        cnt = cnt   1                              

    fileName = int(input("nrSelect 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 , но он также печатает сообщения из задач «настройка» и «тест».

Ответ №1:

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

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

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