PythonLuigi:处理缺少依赖项的有效方法

PythonLuigi:处理缺少依赖项的有效方法,python,luigi,Python,Luigi,目前,我正在使用Luigi库创建一个数据管道。在管道的末尾,我有一个Plot函数,它看起来像这样: class PlotAll(luigi.Task): ... def requires(self): return{ "tool1" : analyzeTool1Data(...), "tool2" : analyzeTool2Sata(...)} def run(self):

目前,我正在使用Luigi库创建一个数据管道。在管道的末尾,我有一个Plot函数,它看起来像这样:

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仍然认为它们已经运行