Exemplo n.º 1
0
    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))
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
Arquivo: deps.py Projeto: wwj718/luigi
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
    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))
Exemplo n.º 7
0
    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))
Exemplo n.º 8
0
    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))