PythonLuigi:处理缺少依赖项的有效方法
目前,我正在使用Luigi库创建一个数据管道。在管道的末尾,我有一个Plot函数,它看起来像这样:PythonLuigi:处理缺少依赖项的有效方法,python,luigi,Python,Luigi,目前,我正在使用Luigi库创建一个数据管道。在管道的末尾,我有一个Plot函数,它看起来像这样: class PlotAll(luigi.Task): ... def requires(self): return{ "tool1" : analyzeTool1Data(...), "tool2" : analyzeTool2Sata(...)} def run(self):
class PlotAll(luigi.Task):
...
def requires(self):
return{
"tool1" : analyzeTool1Data(...),
"tool2" : analyzeTool2Sata(...)}
def run(self):
data1 = numpy.load(self.input()["tool1"])
data2 = numpy.load(self.input()["tool2"])
plot(data1, data2)
...
所以现在有时候我只有来自Tool1的数据,或者我只有来自Tool2的数据。我只想绘制一个工具的数据。是否有一种优雅的方式告诉函数,如果缺少一个依赖项,它应该忽略该输入并处理其余的依赖项
到目前为止,我的想法是,首先检查存在哪些数据,然后创建依赖于这些数据的依赖项。luigi的整个想法是,它确保任务的所有依赖项在运行之前都准备好了 它没有可选依赖的概念,但您可以有 您的另一个选择可能是定义任务
analyzeTool1Data
,这样即使任务失败或数据丢失,它仍然会生成输出,因此luigi仍然认为它们已经运行