一种允许创建自动数据处理管道的工具。
autopipe的Python项目详细描述
自动管道
一种允许创建自动数据处理管道的工具。在
如何使用
要创建管道,必须创建协调器。为此,请创建一个文件和一个实现基本协调器类的类。 例如,下面是一个简单的协调器的代码,它从googleimage下载与查询相对应的图像。在
fromtypingimportList,Union,CallablefromautopipeimportCoordinator,Pipe,APData,Outputfromautopipe.inputimportRssInputfromautopipe.pipeimportFileData,DownloaderPipeclassDownloadExample(Coordinator):def__init__(self,query:str="raccoon"):super().__init__()self.query=query@classmethoddefname(cls):return"DownloadExample"@propertydefinput(self):returnRssInput(f"http://www.obsrv.com/General/ImageFeed.aspx?{self.query}",lambdax:FileData(None,x["media_content"][0]["url"],False))@propertydefpipeline(self)->List[Union[Pipe,Callable[[APData],Union[APData,Pipe]]]]:return[Output(DownloaderPipe())]
要使autopipe找到此协调器,必须使用以下三种方法之一
- 将协调器文件放入
autopipe/coordinators
文件夹,在autopipe/coordinators/__init__.py
文件中导入协调器,并将协调器名称放入该文件的__all__
数组中。在 - 运行autopipe时,将协调器参数设置为文件的路径,后跟“:”和协调器的类名。例如,如果协调器的文件名为
coordinator.py
,位于当前目录中,并且协调器的名称是DownloadExample
,那么协调器参数将是../coordinator.py:DownloadExample
- 将协调器文件发送到autopipe的标准输入,并使用
-
作为协调器名称。SOON
要运行这个,有三种方法
- 使用bin文件夹中的autopipe文件如下:
./autopipe <coordinator> [coordinator_parameters]
- 使用模块语法如下:
python -m autopipe <coordinator> [coordinator_parameters]
- 使用shebang
#!/usr/bin/env autopipe -
,设置您的协调器文件可执行文件(chmod +x file.py
)并执行它。SOON
协调员选项
管道总是以Input
开头。指定将在get_input()
方法中使用的输入管理器的实例。在
一个输入将返回一个或多个将被逐个发送到管道的数据。在
管道
每个项目都被发送到您在协调器的pipeline
属性中指定的Pipe
。在这个属性中,您可以放置以单个APData
作为参数并返回APData
或Pipe
的管道或函数实例。
当到达Output
管道时,项目的管道结束。这可以通过使用一个预先生成的输出,或者用一个Pipe
或一个Output()
调用来包装Pipe
。在
拦截器
您可以将拦截器添加到您的协调器。拦截器是一个函数,如果指定的条件匹配,将在管道的步骤之间调用该函数。这允许您处理数据的无效情况或不需要在管道中执行特定步骤的特定情况。可以使用@autopipe.interceptor(lambda data: condition)
修饰符指定拦截器。在
默认处理程序
可以在协调器中指定default_handler
方法。一旦整个管道被消耗,但没有返回任何输出,将调用此特殊方法。您还可以通过从协调器中删除该属性(或返回空列表)来使用此方法来代替pipeline
属性。在
使用
^{pr2}$安装
要安装autopipe,请运行sudo pip install autopipe
。要使用开发版本,可以克隆这个项目并运行pip install -e .
。在
- 项目
标签: