Task Parameters¶
Luigi Parameter¶
We can set parameters for tasks. Also please refer to Task Settings section.
class Task(gokart.TaskOnKart):
param_a = luigi.Parameter()
param_c = luigi.ListParameter()
param_d = luigi.IntParameter(default=1)
Please refer to luigi document for a list of parameter types.
Gokart Parameter¶
There are also parameters provided by gokart.
- gokart.TaskInstanceParameter
- gokart.ListTaskInstanceParameter
- gokart.ExplicitBoolParameter
gokart.TaskInstanceParameter¶
The TaskInstanceParameter()
executes a task using the results of a task as dynamic parameters.
class TaskA(gokart.TaskOnKart):
def run(self):
self.dump('Hello')
class TaskB(gokart.TaskOnKart):
require_task = gokart.TaskInstanceParameter()
def requires(self):
return self.require_task
def run(self):
task_a = self.load()
self.dump(','.join([task_a, 'world']))
task = TaskB(require_task=TaskA())
print(gokart.build(task)) # Hello,world
Helps to create a pipeline.
gokart.ListTaskInstanceParameter¶
The ListTaskInstanceParameter()
is list of TaskInstanceParameter.
gokart.ExplicitBoolParameter¶
The ExplicitBoolParameter()
is parameter for explicitly specified value.
luigi.BoolParameter
already has “explicit parsing” feature, but also still has implicit behavior like follows.
$ python main.py Task --param
# param will be set as True
$ python main.py Task
# param will be set as False
ExplicitBoolParameter
solves these problems on parameters from command line.