Вы можете переопределить всю функцию.
class LuigiTaskB(luigi.Task):
def run(self):
print "running task b"
with self.output().open('w') as out_file:
print >> out_file, "some text"
def output(self):
return luigi.LocalTarget("somefile")
class LuigiTaskA(luigi.Task):
task_complete = False
def requires(self):
return LuigiTaskB()
def run(self):
print "running task a"
self.task_complete = true
def complete(self):
# Make sure you return false when you want the task to run.
# And true when complete
return self.task_complete
# This will out put :
# running task b
# running task a
# And this on the second time you'll run:
# running task a
Функция complete () просматривает функцию output (), переопределяя complete (), вы можете передать любой вывод и записать свой в завершенном состоянии.
Обратите внимание, что если ваша полная функция зависит от функции запуска, она не может быть пропущена.