def test_dynamic_loading(self): interface = luigi.interface.DynamicArgParseInterface() with tempfile.NamedTemporaryFile(dir='test/', prefix="_foo_module", suffix='.py') as temp_module_file: temp_module_file.file.write(b''' import luigi class FooTask(luigi.Task): x = luigi.IntParameter() ''') temp_module_file.file.flush() temp_module_path = temp_module_file.name temp_module_name = re.search(r'/(_foo_module.*).py', temp_module_path).group(1) tasks = interface.parse([ '--module', temp_module_name, 'FooTask', '--ExtraArgs-blah', 'xyz', '--x', '123' ]) self.assertEqual(ExtraArgs().blah, 'xyz') self.assertEqual(len(tasks), 1) task, = tasks self.assertEqual(task.x, 123) temp_module = __import__(temp_module_name) self.assertEqual(task.__class__, temp_module.FooTask) self.assertEqual(task, temp_module.FooTask(x=123))
def find_deps_cli(): ''' Finds all tasks on all paths from provided CLI task ''' interface = luigi.interface._DynamicArgParseInterface() tasks = interface.parse() task, = tasks upstream_task_family = upstream().family return find_deps(task, upstream_task_family)
def find_deps_cli(): ''' Finds all tasks on all paths from provided CLI task ''' interface = luigi.interface.DynamicArgParseInterface() tasks = interface.parse() task, = tasks upstream_task_family = upstream().family return find_deps(task, upstream_task_family)
def find_deps_cli(): ''' Finds all tasks on all paths from provided CLI task and down to the task provided by --sink ''' interface = luigi.interface.DynamicArgParseInterface() tasks = interface.parse() task, = tasks sink = SinkArg().sink return find_deps(task, sink)
def find_deps_cli(): ''' Finds all tasks on all paths from provided CLI task and down to the task provided by --upstream ''' interface = luigi.interface.DynamicArgParseInterface() tasks = interface.parse() task, = tasks upstream = UpstreamArg().upstream return find_deps(task, upstream)
def test_dynamic_loading(self): interface = luigi.interface.ArgParseInterface() self.assertRaises(SystemExit, interface.parse, (['FooTask', '--blah', 'xyz', '--x', '123'],)) # should raise since it's not imported interface = luigi.interface.DynamicArgParseInterface() tasks = interface.parse(['--module', 'foo_module', 'FooTask', '--blah', 'xyz', '--x', '123']) self.assertEqual(ExtraArgs().blah, 'xyz') self.assertEqual(len(tasks), 1) task, = tasks self.assertEqual(task.x, 123) import foo_module self.assertEqual(task.__class__, foo_module.FooTask) self.assertEqual(task, foo_module.FooTask(x=123))
def test_dynamic_loading(self): interface = luigi.interface.ArgParseInterface() self.assertRaises(SystemExit, interface.parse, (['FooTask', '--ExtraArgs-blah', 'xyz', '--x', '123'],)) # should raise since it's not imported interface = luigi.interface.DynamicArgParseInterface() tasks = interface.parse(['--module', 'foo_module', 'FooTask', '--ExtraArgs-blah', 'xyz', '--x', '123']) self.assertEqual(ExtraArgs().blah, 'xyz') self.assertEqual(len(tasks), 1) task, = tasks self.assertEqual(task.x, 123) import foo_module self.assertEqual(task.__class__, foo_module.FooTask) self.assertEqual(task, foo_module.FooTask(x=123))
def test_dynamic_loading(self): interface = luigi.interface._DynamicArgParseInterface() with tempfile.NamedTemporaryFile(dir='test/', prefix="_foo_module", suffix='.py') as temp_module_file: temp_module_file.file.write(b''' import luigi class FooTask(luigi.Task): x = luigi.IntParameter() ''') temp_module_file.file.flush() temp_module_path = temp_module_file.name temp_module_name = re.search(r'/(_foo_module.*).py', temp_module_path).group(1) tasks = interface.parse(['--module', temp_module_name, 'FooTask', '--ExtraArgs-blah', 'xyz', '--x', '123']) self.assertEqual(ExtraArgs().blah, 'xyz') self.assertEqual(len(tasks), 1) task, = tasks self.assertEqual(task.x, 123) temp_module = __import__(temp_module_name) self.assertEqual(task.__class__, temp_module.FooTask) self.assertEqual(task, temp_module.FooTask(x=123))