如何在Luigi ExternalTask​​中实例化python类并使用常规Luigi Task中的实例

时间:2018-10-08 14:43:53

标签: python object task instantiation luigi

我有一个定义如下的ExternalTask​​:

class MyExternalTask1(ExternalTask):


    def output(self):
        #<what can I do here to call 'load_instance' method and set the instance as a Target>


    def load_instance(self):
        """Convenience method to load a :class:`.MyClass`"""

        return MyClass()

我需要一种实例化外部类并将其设置为此ExternalTask​​的目标的方法。

我知道我可以使其成为常规类,在运行时调用“ load_instance”,然后将实例序列化为可设置为Target的输出文件。  但是我特别需要从ExternalTask​​进行操作的方法。

我的另一个要求是从包装器常规Task中调用ExternalTask​​并在其中使用“ Myclass”的实例。

类似,

class MyRegularTask1(luigi.Task):

    def requires(self):
        return {
            'data': MyExternalTask1()
         }

    def run(self):

        instance = (self.input()['data'].open('r'))
        #This 'instance' should be the instance that was created in my ExternalTask and I should then be able to call a function of this instance.

0 个答案:

没有答案