diff --git a/docs/task_on_kart.rst b/docs/task_on_kart.rst index 7c14ffa9..0a924d8a 100644 --- a/docs/task_on_kart.rst +++ b/docs/task_on_kart.rst @@ -147,6 +147,15 @@ The `load` method loads individual task input by passing a key of an input dicti data_b = self.load('b') +As an alternative, the `load` method loads individual task input by passing an instance of TaskOnKart as follows: + +.. code:: python + + def run(self): + data_a = self.load(TaskA()) + data_b = self.load(TaskB()) + + We can also omit the :func:`~gokart.task.TaskOnKart.requires` and write the task used by :func:`~gokart.parameter.TaskInstanceParameter`. Extensions include :func:`~gokart.task.TaskOnKart.load_data_frame` and :func:`~gokart.task.TaskOnKart.load_generator`. Please refer to :func:`~gokart.task.TaskOnKart.load`, :doc:`task_parameters`, and described later Advanced Features section. diff --git a/test/test_build.py b/test/test_build.py index 94df9b2f..ea57c6ae 100644 --- a/test/test_build.py +++ b/test/test_build.py @@ -57,6 +57,17 @@ def run(self): self.dump('done') +class _LoadRequires(gokart.TaskOnKart[None]): + task: _DummyTask = gokart.TaskInstanceParameter() + + def requires(self): + return self.task + + def run(self): + _ = self.load(self.task) + self.dump(None) + + class RunTest(unittest.TestCase): def setUp(self): luigi.setup_logging.DaemonLogging._configured = False @@ -102,6 +113,11 @@ def test_failed_task(self): with self.assertRaises(GokartBuildError): gokart.build(_DummyFailedTask(), reset_register=False, log_level=logging.CRITICAL) + def test_load_requires(self): + text = 'test' + output = gokart.build(_LoadRequires(task=_DummyTask(param=text)), reset_register=False) + self.assertEqual(output, None) + class LoggerConfigTest(unittest.TestCase): def test_logger_config(self):