“一个类似make的工具,语法类似于drake。”

faz的Python项目详细描述


https://badge.fury.io/py/faz.pnghttps://travis-ci.org/hmartiniano/faz.png?branch=masterhttps://badge.fury.io/py/faz.svg

faz是一个数据工作流工具,在 ……_德雷克:https://github.com/Factual/drake

预期的用途是将bash、python、ruby中的数据处理脚本(或其他任何东西,只需少量编码)组合成一个文本文件。

“faz”是葡萄牙语的“do”或“make”。

不同的步骤可以分为任务,有定义的输入和输出。任务之间的依赖关系由每个任务的输入和输出确定。程序以适当的顺序执行所有任务,检查输出和输入文件的存在。

为什么?

  • 因为我喜欢德雷克,但无法忍受Java的启动时间。
  • 因为我能(实际上是想看看我能不能,但事实证明我能)。

功能

  • 简单但强大的功能
  • 易于使用和扩展(除去测试,代码大约是300行python)
  • 快速启动时间(与Drake相比)
  • 文档:https://faz.readthedocs.org

安装

使用pypi

pip install faz

用法

在命令行中,只需键入

faz

如果没有参数,程序将从名为“fazfile”的文件中读取任务。 如果要使用另一个文件名,只需将其作为程序的参数

faz <filename>

要获取命令行参数列表,请键入

faz -h

任务文件基础知识

任务文件是纯文本文件,语法类似于drake输入文件。 下面是一个包含两个任务的示例

# file1 <-touchfile1# file2 <- file1catfile1>file2

以“”开头并带有“<;-”符号的行表示任务。 “<;-”左边是任务生成的文件的(逗号分隔)列表。 右边是任务依赖项,即运行该任务所需的文件。 在上面的示例中,第一个任务没有依赖项,并生成一个名为“file1”的文件。 第二个任务将“file1”作为依赖项,并将一个名为“file2”的文件作为输出。

程序使用每个任务的输出、输入和输入来建立顺序。 任务的运行方式,以及是否需要运行它们。在上面的例子中,如果 调用的“file1”已经存在于程序运行的目录中,第一个任务将不会执行。

代码部分是两个任务行之间的所有行。 在这两个任务中,它们只是简单的bash命令,但可以是,例如,python代码

# file1 <-touchfile1# file2 <- file1 :pythonf1=open("file1")text=file1.read()f2=open("file2","w")f2.write(text)

注意,在第二个任务中,有一个额外的选项:python“,wich向程序指示 此任务的代码是python代码。 选项是在“:”之后的(逗号分隔)关键字列表,必须放在输入之后。

历史记录

0.1.0(2014-01-11)

  • 第一次释放。

0.1.1(2015-03-20)

  • 错误修复。

0.1.2(2015-10-17)

  • 项目名称更改。

0.1.3(2016-03-26)

  • 已删除NetworkX依赖项。

0.1.4(2016-05-19)

  • 添加到任务环境的输入和输出名称。

0.1.5(2016-05-19)

  • 变量扩展代码中的错误修复。

0.1.6(2016-07-18)

  • 添加了包含其他任务文件的机制。

0.1.7(2016-07-20)

  • 依赖项和输出现在可以位于不同的目录上。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?   selenium chrome驱动程序中下一个网站url的java空白页   java如何将参数化匿名类转换为lambda?   java JUnit在AfterClass上获取测试结果   java将动态XML/JSON内容与静态标记化负载进行比较,并检索标记值   java共享一个需要数据持久性的项目[数据库]   java在调用方法时获取意外的参数类型。getParameterTypes()   java如何用jdbc在swing中用另一个字段替换外键?   需要java Jersey Tomcat CDI依赖项解释   java如何生成UML图   java如何编写Jersey rest服务可以通过给定的spring代码访问   SpringMaven存储库管理器Nexus与Java依赖项的Artifactory   java将包从另一个项目导入eclipse中的当前项目   加密Java使用密码加密文件