Pipe Dreams:科学数据发布API
项目描述
🔬 Pipe Dreams
你想
- 整理你的大量零散脚本吗?
- 创建整洁且可重用的Python管道来处理你的数据或运行作业吗?
- 拥有基于图(DAG)的并行化而不必过于麻烦吗?
那么,你就在正确的位置。Pipe Dreams是一个超级轻量级的应用程序编程接口(API),用于支持科学数据数据管道的构建和处理。它最初是为实验室目录和存档系统构建的,但现在对其他系统开放。
我们是如何做到的
- 我们使用Python字典来封装管道中流动的所有中间结果/数据,这样您不仅可以声明并运行一系列函数,还可以将单个输出变量连接到某些特定的输入参数。更重要的是,您可以重命名、合并并对您的中间结果进行其他精细控制。
- 我们提供了一个可被继承的Plugin类,可以用来组织您的Python函数,然后在我们的框架中使用它们的相对字符串路径来调用这些函数。
- 我们使用Celery、Redis和NetworkX来并行化工作流程,而对用户部分的设置尽可能少。
🚗 启动Redis
Pipe Dreams API需要Redis来运行。为了启动Redis(假设已安装Docker),请运行
$ docker container run \
--name labcas-redis \
--publish 6379:6379 \
--detach \
redis:6.2.4-alpine
💿 安装Pipe Dreams
Pipe Dreams是一个开源的Python安装包。它需要Python 3.7或更高版本。通常,您会将其安装到Python虚拟环境中,但您也可以将其放入Conda或如果您必须的话,系统Python中。
要使用虚拟环境,请运行
$ python3 -m venv venv
$ venv/bin/pip install --upgrade setuptools pip wheel
$ venv/bin/pip install jpl.pipedreams
$ source venv/bin/activate # or use activate.csh or activate.fish as needed
完成此操作后,您可以使用venv/bin/python
作为Python解释器,并且Pipe Dreams API(及其所有依赖项)将准备就绪以供使用。请注意,尽管activate
步骤已被弃用,但它仍然是必要的,以便在您的执行路径上有celery
程序。
👉 注意:截至Pipe Dreams 1.0.3版本,支持Python 3.7至Python 3.9。Python 3.10尚未被此包支持。
👩💻 定制工作流程
下一步是创建一个工作流程来定义发布数据的处理步骤。例如,请参阅GitHub上此包的发行版中的demo/demo.py。
总之,您需要
- 创建一个
Operation
实例。 - 将管道(一系列命名函数)添加到实例中。
- 以单进程或多进程运行操作。
📗 处理数据管道
最后,在Redis运行并定义了自定义工作流程后,您可以执行您的管道。
例如,我们提供了一个演示工作流程和相关测试数据。您可以在以下方式中运行它(假设您已经获得了上面的虚拟Python环境)
$ curl -LO https://github.com/EDRN/jpl.pipedreams/releases/download/v1.0.2/demo.tar.gz | tar xzf -
$ cd demo
$ ../venv/bin/pip install --requirement requirements.txt
$ ../venv/bin/python demo.py
Adding Node: hello_world_read|+|mydata0.txt
…
num nodes in task graph: 7
num task completed: 7
time taken: 0:00:00.NNNNN
就这样 🥳
关闭
jpl.pipedreams-1.0.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c0a9d6a6f567adbc7c8ed6581aa88d447db45f6b6c2d3b69829809fbad36d910 |
|
MD5 | 0d98cede3b92da8f4c9351cde8395bc6 |
|
BLAKE2b-256 | 4e5cf471aadf513a2551da026dcf588454acfae558870d8c6a2f66878b01d0bc |
关闭
jpl.pipedreams-1.0.5-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 66bb4eed96102163a2fbf397d7d0367a004bb121ea1ab482da60b90ba6b4150d |
|
MD5 | ebd9bb1848f964582fecd245ef75a072 |
|
BLAKE2b-256 | bd25e462b2c0078a2da474ec740a927b1b4195e2b92188a64f9a57bb59bbb54b |