Luigi (also gokart) implicitly assumes that the file is output when the Task run is executed, and if it is not, an error Unfulfilled dependency at run time is raised like following sample code.
This behavior is a bit confusing, so how about making sure that the file is output when the run completes?
import gokart
import luigi
class TaskA(gokart.TaskOnKart):
def run(self):
pass
class TaskB(gokart.TaskOnKart):
def requires(self):
return TaskA()
def run(self):
pass
if __name__ == '__main__':
gokart.run(['TaskB', '--local-scheduler'], set_retcode=True)
error:
Traceback (most recent call last):
File "/Users/e-mon/.pyenv/versions/3.7.5/lib/python3.7/site-packages/luigi/worker.py", line 176, in run
raise RuntimeError('Unfulfilled %s at run time: %s' % (deps, ', '.join(missing)))
RuntimeError: Unfulfilled dependency at run time: TaskA__99914b932b
Luigi (also gokart) implicitly assumes that the file is output when the Task
run
is executed, and if it is not, an errorUnfulfilled dependency at run time
is raised like following sample code.This behavior is a bit confusing, so how about making sure that the file is output when the
run
completes?error: