#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_
, и не печатать внутри функций задачи, если это не необходимо, например, для отладки.