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[str]):
def run(self):
self.dump('Hello')
class TaskB(gokart.TaskOnKart[str]):
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.