“一个类似make的工具,语法类似于drake。”
faz的Python项目详细描述
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)
- 依赖项和输出现在可以位于不同的目录上。