Source code for fastr.examples.failing_macro

import fastr
import failing_network


[docs]def create_network(): # Create network to embed child_network = failing_network.create_network() # Create Network network = fastr.Network('failing_macro_top_level') # create sources source_a = network.create_source(fastr.typelist['Int'], id_='source_a') source_b = network.create_source(fastr.typelist['Int'], id_='source_b') source_c = network.create_source(fastr.typelist['Int'], id_='source_c') # Create MacroNode failing_macro = network.create_macro(child_network, id_='failing_macro') # Link sources to macro failing_macro.inputs['source_1'] = source_a.output failing_macro.inputs['source_2'] = source_b.output failing_macro.inputs['source_3'] = source_c.output # Addint add = network.create_node('AddInt', id_="add") # Create sink sink = network.create_sink(fastr.typelist['Int'], id_='sink') # Adjust constants(non required inputs) in macro network # add_multiple_ints_node.inputs['const_addint1_value2__add_multiple_ints_1'] = 1234, #input.output # Link the network add.inputs['left_hand'] = failing_macro.outputs['sink_5'] add.inputs['right_hand'] = (10,) sink.inputs['input'] = add.outputs['result'] return network
[docs]def source_data(network): fastr.log.info('Creating source data for {}'.format(network.id)) return { 'source_a': {'sample_1': 'vfslist://example_data/add_ints/values'}, 'source_b': {'sample_1': 'vfslist://example_data/add_ints/values'}, 'source_c': {'sample_1': 'vfslist://example_data/add_ints/values'}, }
[docs]def sink_data(network): return {'sink': 'vfs://tmp/results/{}/result_{{sample_id}}_{{cardinality}}{{ext}}'.format(network.id)}
[docs]def main(): network = create_network() # Execute network.draw_network(name=network.id, draw_dimension=True, expand_macro=True) network.execute(source_data(network), sink_data(network))
if __name__ == '__main__': main()