# >>> arr = stamper([arr]) # Step 3 (representing computational resources) # creates a resource that allows to utilize all local processors local_computer = NuMap() # Step 4 (creating processing nodes) # this attaches a single computational resource to the two processing nodes # the stamper_node will be tracked i.e. it will store the results of computation # in memory. cleaner_node = Piper(cleaner, parallel=local_computer) stamper_node = Piper(stamper, parallel=local_computer, track=True) # Step 5 (constructing a workflow graph) # we construct a workflow graph add the two processing nodes and define the # connection between them. workflow = Plumber() workflow.add_pipe((cleaner_node, stamper_node)) # Step 6 (execute the workflow) # this starts the workflow, processes data in the "background" and waits # until all data-items have been processed. workflow.start([['AGA.TA', 'TG..AA']]) workflow.run() workflow.wait() results = workflow.stats['pipers_tracked'][stamper_node][0] for seq in results.values(): print "Object \"%s\" has time stamp: %s " % (seq, seq.meta['timestamp'])
from papy.core import Plumber, Piper def l33t(inbox): word = inbox[0] return word.replace('e', '3').replace('o', '0') def l33ter(inbox): word = inbox[0] return word.replace('l', '1') # execution endgine numap = NuMap() # function nodes l33t_piper = Piper(l33t, parallel=numap) l33ter_piper = Piper(l33ter, parallel=numap, track=True) # topology pipeline = Plumber() pipeline.add_pipe((l33t_piper, l33ter_piper)) end = pipeline.get_outputs()[0] # runtime pipeline.start([['hello', 'world']]) pipeline.run() pipeline.wait() print pipeline.stats['pipers_tracked'][end] assert [{0: 'h3110', 1: 'w0r1d'}] == pipeline.stats['pipers_tracked'][end]
def l33t(inbox): word = inbox[0] return word.replace('e', '3').replace('o', '0') def l33ter(inbox): word = inbox[0] return word.replace('l', '1') # execution endgine numap = NuMap() # function nodes l33t_piper = Piper(l33t, parallel=numap) l33ter_piper = Piper(l33ter, parallel=numap, track=True) # topology pipeline = Plumber() pipeline.add_pipe((l33t_piper, l33ter_piper)) end = pipeline.get_outputs()[0] # runtime pipeline.start([['hello', 'world']]) pipeline.run() pipeline.wait() print pipeline.stats['pipers_tracked'][end] assert [{0: 'h3110', 1: 'w0r1d'}] == pipeline.stats['pipers_tracked'][end]
# wraps timestamp stamper = Worker(timestamp) # >>> arr = stamper([arr]) # Step 3 (representing computational resources) # creates a resource that allows to utilize all local processors local_computer = NuMap() # Step 4 (creating processing nodes) # this attaches a single computational resource to the two processing nodes # the stamper_node will be tracked i.e. it will store the results of computation # in memory. cleaner_node = Piper(cleaner, parallel=local_computer) stamper_node = Piper(stamper, parallel=local_computer, track=True) # Step 5 (constructing a workflow graph) # we construct a workflow graph add the two processing nodes and define the # connection between them. workflow = Plumber() workflow.add_pipe((cleaner_node, stamper_node)) # Step 6 (execute the workflow) # this starts the workflow, processes data in the "background" and waits # until all data-items have been processed. workflow.start([['AGA.TA', 'TG..AA']]) workflow.run() workflow.wait() results = workflow.stats['pipers_tracked'][stamper_node][0] for seq in results.values(): print "Object \"%s\" has time stamp: %s " % (seq, seq.meta['timestamp'])