Dependencies 子类中的Luigi子依赖项

Dependencies 子类中的Luigi子依赖项,dependencies,task,luigi,Dependencies,Task,Luigi,我有一个流a->B->C,其中C依赖于B,B依赖于a 假设我有另一个流D->B->C 我试着重用这个任务。如何轻松地重复使用 我可以创建一个继承任务B的子类,并将requires更改为任务D,但是要允许D->B->C,我需要再次创建继承任务C的子类,并将requires方法更改为B的子类 这很麻烦,我想知道有没有一个简单的方法来做到这一点>,或者这是luigi的正确行为?这没有意义,可能太抽象了。B或C如何知道它需要()任务A还是任务D?A和D是否产生相同类型的输出?如果存在不同的情况,则应以改

我有一个流a->B->C,其中C依赖于B,B依赖于a
假设我有另一个流D->B->C

我试着重用这个任务。如何轻松地重复使用

我可以创建一个继承任务B的子类,并将requires更改为任务D,但是要允许D->B->C,我需要再次创建继承任务C的子类,并将requires方法更改为B的子类


这很麻烦,我想知道有没有一个简单的方法来做到这一点>,或者这是luigi的正确行为?

这没有意义,可能太抽象了。B或C如何知道它需要()任务A还是任务D?A和D是否产生相同类型的输出?如果存在不同的情况,则应以改变任务要求的方式对这些情况进行编码。这里有一个局部的、过于简化的例子,基于您提供的非常有限的信息

类TaskC(luigi.Task):
tasktype=luigi.Parameter()
def需要():
返回TaskB(tasktype=self.tasktype)
类TaskB(luigi.Task):
tasktype=luigi.Parameter()
def需要():
如果self.tasktype==“A”:
返回TaskA()
其他:
返回任务d()
def run():
file=self.input().open('r')
#对其中一个的输出执行一些操作