requires
サブタスクであるルイージタスクがあります。サブタスクは、親タスク (つまり、require
ing を実行しているタスク) によって渡されるパラメーターに依存します。サブタスクが使用できるパラメーターを設定することで指定できることは知っています...
def requires(self):
return subTask(some_parameter)
...次に、サブタスクで、設定してパラメーターを受け取ります...
x = luigi.Parameter()
ただし、1 つのパラメーターのみを通過させるように見えます。どのようなタイプの任意の数のパラメーターを送信する最良の方法は何ですか? 本当に私はこのようなものが欲しいです:
class parentTask(luigi.Task):
def requires(self):
return subTask({'file_postfix': 'foo',
'file_content': 'bar'
})
def run(self):
return
class subTask(luigi.Task):
params = luigi.DictParameter()
def output(self):
return luigi.LocalTarget("file_{}.csv".format(self.params['file_postfix']))
def run(self):
with self.output().open('w') as f:
f.write(self.params['file_content'])
ご覧のとおりluigi.DictParameter
、ストレートの代わりに使用してみましたが、上記を実行するとルイージの奥深くからluigi.Parameter
取得されます。TypeError: unhashable type: 'dict'
Python 2.7.11、ルイージ 2.1.1 の実行