Example #1
0
def typical_pipeline_complex(use):
    ints1 = use.init_data('ints1', ints1_factory)
    mapper1 = use.init_data('mapper1', mapping1_factory)

    use.action(
        UsageAction(plugin_id='dummy_plugin', action_id='typical_pipeline'),
        UsageInputs(int_sequence=ints1, mapping=mapper1, do_extra_thing=True),
        UsageOutputNames(out_map='out_map1',
                         left='left1',
                         right='right1',
                         left_viz='left_viz1',
                         right_viz='right_viz1'))

    ints2 = use.get_result('left1')
    mapper2 = use.get_result('out_map1')

    use.action(
        UsageAction(plugin_id='dummy_plugin', action_id='typical_pipeline'),
        UsageInputs(int_sequence=ints2, mapping=mapper2, do_extra_thing=False),
        UsageOutputNames(out_map='out_map2',
                         left='left2',
                         right='right2',
                         left_viz='left_viz2',
                         right_viz='right_viz2'))

    right2 = use.get_result('right2')
    right2.assert_has_line_matching(
        label='a nice label about this assertion',
        path='ints.txt',
        expression='1',
    )
Example #2
0
def optional_inputs(use):
    ints_a = use.init_data('ints', ints1_factory)

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='optional_artifacts_method'),
        UsageInputs(ints=ints_a, num1=1),
        UsageOutputNames(output='output'),
    )

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='optional_artifacts_method'),
        UsageInputs(ints=ints_a, num1=1, num2=2),
        UsageOutputNames(output='output'),
    )

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='optional_artifacts_method'),
        UsageInputs(ints=ints_a, num1=1, num2=None),
        UsageOutputNames(output='ints_b'),
    )

    ints_b = use.get_result('ints_b')

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='optional_artifacts_method'),
        UsageInputs(ints=ints_a, optional1=ints_b, num1=3, num2=4),
        UsageOutputNames(output='output'),
    )
Example #3
0
    def __call__(self, use):
        inputs = {}
        transformed_inputs = {}

        for name, argument in self.inputs.items():
            template = self.param_templates[name]

            if argument is None or not is_semantic_type(template.qiime_type):
                inputs[name] = transformed_inputs[name] = argument
            else:
                inputs[name] = use.init_data(argument.__name__, argument)
                artifact = argument()
                view = artifact.view(template.view_type)
                view.__hide_from_garbage_collector = artifact
                transformed_inputs[name] = view

        use.action(
            UsageAction(plugin_id='mystery_stew', action_id=self.name),
            UsageInputs(**inputs),
            UsageOutputNames(**self.output_names),
        )

        for idx, (output_name, expected_type) in enumerate(self.outputs):
            self._assert_output(use, transformed_inputs, self.defaults,
                                output_name, expected_type, idx)
Example #4
0
def concatenate_ints_complex(use):
    ints_a = use.init_data('ints_a', ints1_factory)
    ints_b = use.init_data('ints_b', ints2_factory)
    ints_c = use.init_data('ints_c', ints3_factory)

    use.comment('This example demonstrates chained usage (pt 1).')
    use.action(
        UsageAction(plugin_id='dummy_plugin', action_id='concatenate_ints'),
        UsageInputs(ints1=ints_a, ints2=ints_b, ints3=ints_c, int1=4, int2=2),
        UsageOutputNames(concatenated_ints='ints_d'),
    )

    ints_d = use.get_result('ints_d')
    use.comment('This example demonstrates chained usage (pt 2).')
    use.action(
        UsageAction(plugin_id='dummy_plugin', action_id='concatenate_ints'),
        UsageInputs(ints1=ints_d, ints2=ints_b, ints3=ints_c, int1=41, int2=0),
        UsageOutputNames(concatenated_ints='concatenated_ints'),
    )
Example #5
0
def identity_with_metadata_simple(use):
    ints = use.init_data('ints', ints1_factory)
    md = use.init_metadata('md', md1_factory)

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='identity_with_metadata'),
        UsageInputs(ints=ints, metadata=md),
        UsageOutputNames(out='out'),
    )
Example #6
0
def variadic_input_simple(use):
    ints = use.init_data('int', int_sequence_list_factory)
    int_set = use.init_data('int_set', single_int_set_factory)

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='variadic_input_method'),
        UsageInputs(ints=ints, int_set=int_set, nums={7, 8, 9}),
        UsageOutputNames(output='out'),
    )
Example #7
0
def identity_with_metadata_column_from_factory(use):
    ints = use.init_data('ints', ints1_factory)
    mdc = use.init_data('mdc', mdc1_factory)

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='identity_with_metadata_column'),
        UsageInputs(ints=ints, metadata=mdc),
        UsageOutputNames(out='out'),
    )
Example #8
0
def typical_pipeline_simple(use):
    ints = use.init_data('ints', ints1_factory)
    mapper = use.init_data('mapper', mapping1_factory)

    use.action(
        UsageAction(plugin_id='dummy_plugin', action_id='typical_pipeline'),
        UsageInputs(int_sequence=ints, mapping=mapper, do_extra_thing=True),
        UsageOutputNames(out_map='out_map', left='left', right='right',
                         left_viz='left_viz', right_viz='right_viz')
    )
Example #9
0
def concatenate_ints_simple(use):
    ints_a = use.init_data('ints_a', ints1_factory)
    ints_b = use.init_data('ints_b', ints2_factory)
    ints_c = use.init_data('ints_c', ints3_factory)

    use.comment('This example demonstrates basic usage.')
    use.action(
        UsageAction(plugin_id='dummy_plugin', action_id='concatenate_ints'),
        UsageInputs(ints1=ints_a, ints2=ints_b, ints3=ints_c, int1=4, int2=2),
        UsageOutputNames(concatenated_ints='ints_d'),
    )
Example #10
0
def identity_with_metadata_merging(use):
    ints = use.init_data('ints', ints1_factory)
    md1 = use.init_metadata('md1', md1_factory)
    md2 = use.init_metadata('md2', md2_factory)

    md3 = use.merge_metadata('md3', md1, md2)

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='identity_with_metadata'),
        UsageInputs(ints=ints, metadata=md3),
        UsageOutputNames(out='out'),
    )
Example #11
0
def variadic_input_simple(use):
    ints_a = use.init_data('ints_a', ints1_factory)
    ints_b = use.init_data('ints_b', ints2_factory)
    ints = use.init_data_collection('ints', list, ints_a, ints_b)

    single_int1 = use.init_data('single_int1', single_int1_factory)
    single_int2 = use.init_data('single_int2', single_int2_factory)
    int_set = use.init_data_collection('int_set', set, single_int1,
                                       single_int2)

    use.action(
        UsageAction(plugin_id='dummy_plugin',
                    action_id='variadic_input_method'),
        UsageInputs(ints=ints, int_set=int_set, nums={7, 8, 9}),
        UsageOutputNames(output='out'),
    )