Pyppo是一个基于流的小型编程微框架
Pyppo的Python项目详细描述
pyppo是一个简单的基于流的python编程微框架。
示例
简单管道
这是一个非常简单的管道示例。简单地传递列表函数 在管道执行时执行。
obj=[]defdo_something(obj):obj.append(1)returnobjdefdo_something_else(obj):obj.append(2)returnobjconsume(pipeline([obj],[do_something,do_something_else]))print(obj)[1,2]
叉管
此示例显示管道的分叉。fork本质上是另一个 管道步骤,但它接受函数分支的列表。
obj=[]deffirst_step(obj):obj.append(1)returnobjdefbranch_add_two(obj):obj.append(2)returnobjdefbranch_add_four(obj):obj.append(4)returnobjpipeline([obj],first_step,fork([branch_add_two],[branch_add_four]))
验证管道步骤
还可以通过提供validate函数来验证管道步骤 使用decorator对validate\u进行验证,如下例所示
validation=lambdaentry:'x'inentrydefadd_x_to_entry(entry):# should add 'x' key to entry dictionary but didn'treturnentry@validate_with(validation)defincrement_1_on_x_key(entry):entry['x']+=1returnentryentry={}# consume will saise a StepValidationErrorconsume(pipeline([entry],[add_x_to_entry,increment_1_on_x_key]))