一个简单的python函数流水库。
simplepipe的Python项目详细描述
#overview
**simplepipe**是一个用于python的简单的、可组合的、功能性的流水线库。它的建立是为了便于将定义为纯函数的小任务组合起来,以便执行复杂的操作。它支持单输出和多输出任务(通过生成器功能)。**SimplePie**还允许创建挂钩,以便在创建工作流后修改其行为。
[![构建状态](https://travis-ci.org/thomasantony/simplepie.svg?branch=master)(https://travis ci.org/thomasantony/simplepie)
[![pypi版本](https://badge.fury.io/py/simplepipe.svg)(https://badge.fury.io/py/simplepipe)
安装
d,运行python setup.py install
每个任务可以是
python函数、生成器函数或其他工作流对象。原始工作区不受影响。可以链接对"添加任务"、"添加挂钩"和"添加挂钩点"的方法调用。
工作区。
工作流对象本身可以用作完整的工作区任务。这些函数应该返回
一个dict,该dict将与工作区dict上的"update()"方法一起使用。
`` python
im端口simplepie
def do_stuff_with_workspace(workspace):
workspace['c']=workspace['b']*2
return workspace
data_in={'a':1,'b':2}
wf.add_task(do_stuff_workspace)'*'是默认模式
output=wf(data_in)
print(o输出{'a':1,'b':2,'c''a':1,'b''b':2,'c':4}
wf2=simplepipe.workflow()
wf2.a d d_task(wf)将另一个工作流添加为task
wf2.add_task(fn=lambda c:5*c,inputs'c','outputs'd''d')
output=wf(data-in)
print(output)打印{'a''a''a':1,'b''a''a''a''a':1,'b''a''a'>
保护反对变异函数
def bad mutator(工作区):
workspace['a']='只要把你和你在一起就行了
return{'e':'foobar'}
wf3=simplepipe.workflow()
wf3.add wf3.add任务(fn=bad mutator'u mutator'u fn)
output=wf(数据输入)
print(输出)打印{'a''a':1,'b':1,'b':1,'b':2,'e':'foobar''foobbar''fooboobar''a'
}
````
``python
impimpimpimpsimplepipe
desum(a,b):
returna+b
def两次(x):
return 2*x
wf=simplepipe.workflow
` ``````````````` python
` ` ` ` `` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `],输出=['c'])\
.a d d_task(两次,inputs=['c',outputs=['d'])
output=wf(d at a_-in)
print(output)prints{'a':1,'b':2,'c':3,'d':6}
`````
multi-output functions
返回多个值的函数必须使用"yield"关键字分别返回
`` python
import simplepipe
def sum_和_积(a,b):
yiela+b
yiela*b
wf=simplepipe.workflow()
data_in={'a''a''1,'b''2}
wf.a d d_task(sum_和_积,inputs=['a','b'],outputs=['c','d']
output=wf(data_in)
print(print)(print)(print)(print)(print(in)
输出)打印{a':1,'b':2,'c':3,'d':2}
````
\hooks
**simplepipe**还支持允许在创建工作流后自定义工作流的钩子。钩子点是使用"add_hook_point"方法定义的。任何数量的钩子函数都可以绑定到工作流中的钩子点。多HO在同一个挂接点添加的oks将按其添加顺序执行。
*注意:挂接函数不是纯函数,应该改变输出工作区。它们不返回任何内容。*
``python
import simplepie
def sum(a,b):
return a+b
def tween(x):
return 2*x
def do_after_sum(workspace):
workspace['c']*10
def do_after_tween(workspace):
workspace['e']=31337
wf=simplepipe.workflow()
wf.a d d_任务(sum,输入量=['a','b'],输出量=['c'])
wf.add_hook_点('u sum后')
wf.add_任务(两次输入量=['c'],输出量=['d'])
wf.add_钩钩点('afu两次后')
wf.add_钩钩点('afu两次后')
wf.add wf.add钩钩点('u钩钩点('>
可以插入钩子函数在工作流执行之前的任何时间
wf.a d d_hook('after_sum,do_after_sum)
wf.add_hook('after_两次,do_after_两次)
>打印(输出)
{'a'<1,'b''a'a''a''a'a'a'1,'b''2,'c''30,'d''d''60,'e''31337'60'e''e''31337}
`````````
<社交网站LinkedIn个人资料](https://www.linkedin.com/in/thomasantony)
**simplepipe**是一个用于python的简单的、可组合的、功能性的流水线库。它的建立是为了便于将定义为纯函数的小任务组合起来,以便执行复杂的操作。它支持单输出和多输出任务(通过生成器功能)。**SimplePie**还允许创建挂钩,以便在创建工作流后修改其行为。
[![构建状态](https://travis-ci.org/thomasantony/simplepie.svg?branch=master)(https://travis ci.org/thomasantony/simplepie)
[![pypi版本](https://badge.fury.io/py/simplepipe.svg)(https://badge.fury.io/py/simplepipe)
安装
d,运行python setup.py install
每个任务可以是
python函数、生成器函数或其他工作流对象。原始工作区不受影响。可以链接对"添加任务"、"添加挂钩"和"添加挂钩点"的方法调用。
工作区。
工作流对象本身可以用作完整的工作区任务。这些函数应该返回
一个dict,该dict将与工作区dict上的"update()"方法一起使用。
`` python
im端口simplepie
def do_stuff_with_workspace(workspace):
workspace['c']=workspace['b']*2
return workspace
wf.add_task(do_stuff_workspace)'*'是默认模式
output=wf(data_in)
print(o输出{'a':1,'b':2,'c''a':1,'b''b':2,'c':4}
wf2=simplepipe.workflow()
wf2.a d d_task(wf)将另一个工作流添加为task
wf2.add_task(fn=lambda c:5*c,inputs'c','outputs'd''d')
output=wf(data-in)
print(output)打印{'a''a''a':1,'b''a''a''a''a':1,'b''a''a'>
保护反对变异函数
def bad mutator(工作区):
workspace['a']='只要把你和你在一起就行了
return{'e':'foobar'}
wf3=simplepipe.workflow()
wf3.add wf3.add任务(fn=bad mutator'u mutator'u fn)
output=wf(数据输入)
print(输出)打印{'a''a':1,'b':1,'b':1,'b':2,'e':'foobar''foobbar''fooboobar''a'
}
````
``python
impimpimpimpsimplepipe
desum(a,b):
returna+b
def两次(x):
return 2*x
wf=simplepipe.workflow
` ``````````````` python
` ` ` ` `` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `],输出=['c'])\
.a d d_task(两次,inputs=['c',outputs=['d'])
output=wf(d at a_-in)
print(output)prints{'a':1,'b':2,'c':3,'d':6}
`````
multi-output functions
返回多个值的函数必须使用"yield"关键字分别返回
`` python
import simplepipe
def sum_和_积(a,b):
yiela+b
yiela*b
wf=simplepipe.workflow()
data_in={'a''a''1,'b''2}
wf.a d d_task(sum_和_积,inputs=['a','b'],outputs=['c','d']
output=wf(data_in)
print(print)(print)(print)(print)(print(in)
输出)打印{a':1,'b':2,'c':3,'d':2}
````
\hooks
**simplepipe**还支持允许在创建工作流后自定义工作流的钩子。钩子点是使用"add_hook_point"方法定义的。任何数量的钩子函数都可以绑定到工作流中的钩子点。多HO在同一个挂接点添加的oks将按其添加顺序执行。
*注意:挂接函数不是纯函数,应该改变输出工作区。它们不返回任何内容。*
``python
import simplepie
def sum(a,b):
return a+b
def tween(x):
return 2*x
def do_after_sum(workspace):
workspace['c']*10
def do_after_tween(workspace):
workspace['e']=31337
wf=simplepipe.workflow()
wf.a d d_任务(sum,输入量=['a','b'],输出量=['c'])
wf.add_hook_点('u sum后')
wf.add_任务(两次输入量=['c'],输出量=['d'])
wf.add_钩钩点('afu两次后')
wf.add_钩钩点('afu两次后')
wf.add wf.add钩钩点('u钩钩点('>
可以插入钩子函数在工作流执行之前的任何时间
wf.a d d_hook('after_sum,do_after_sum)
wf.add_hook('after_两次,do_after_两次)
>打印(输出)
{'a'<1,'b''a'a''a''a'a'a'1,'b''2,'c''30,'d''d''60,'e''31337'60'e''e''31337}
`````````
<社交网站LinkedIn个人资料](https://www.linkedin.com/in/thomasantony)