example_pipeline_config.yaml:
pipes:
- example.pipes.ForwardReverse
- example.pipes.Title
example.pipes:
class ForwardReverse(object):
def process_item(self, str_item, step_cnt_ctx):
yield str_item
yield str_item[::-1]
step_cnt_ctx.count += 1
class Title(object):
def process_item(self, str_item, step_cnt_ctx):
yield str_item.title()
step_cnt_ctx.count +=1
example main:
from pipeable.components import YamlPipelineConfigurator
class step_cnt_ctx(object):
#example context object that is shared between pipes
count = 0
pipe_line = YamlPipelineConfigurator.createPipeline(example_pipeline_config, step_cnt_ctx())
result = list(pipe_line.run(['foo', 'bar', 'baz']))
assert ['Foo', 'Oof', 'Bar', 'Rab', 'Baz', 'Zab'] == result
assert pipe_line.context.count == 9