用于强制数据管道输出与git历史之间链接的上下文管理器。
项目描述
gittrail
- 将数据管道输出链接到git历史
使用git进行代码版本控制很简单,而数据管道输入/输出的版本控制则很难。
GitTrail
通过强制数据文件与您处理代码的提交历史之间的链接,帮助您维护可追踪的数据血缘。
像区块链,但更容易。
它如何工作
GitTrail
作为一个上下文管理器用于执行您的数据处理的代码周围
with GitTrail(
repo="/path/to/my_data_processing_code",
data="/path/to/my_data_storage",
):
# TODO: download the pipeline inputs to [data]
在GitTrail会话之间,您可以编辑您的管道代码,进行提交等。
当您的下一个数据处理阶段准备就绪时
with GitTrail(
repo="/path/to/my_data_processing_code",
data="/path/to/my_data_storage",
):
# TODO: run data analysis on inputs from [data]
# TODO: save results to [data]
进入上下文时,GitTrail
会将日志处理器附加到重定向所有日志到[data]子目录中的*.log
文件。当上下文退出时,会断开连接,并将会话元数据存储在*.json
文件中。元数据包括您[repo]的当前git提交,以及[data]内部文件的MD5哈希值。
在上下文中,以下两条规则被强制执行
- 您的代码[repo]的工作树必须是干净的(没有未提交的更改)。
- 当前在[data]中找到的所有文件必须在先前的
GitTrail
上下文中创建/更改过。
结合起来,这意味着
- 您不允许手动添加/编辑[数据]中的任何内容。
- 随着您通过管道前进,您的数据处理代码可以继续发展。
- 您可以对处理代码的 Git 提交进行修改/回滚/重写,但 [data] 中对应的文件以及审计跟踪会话文件必须删除。
- [data] 中的所有文件都与生成它们的处理代码相关联。
局限性
GitTrail
不能监控一切,因此请注意以下几点:
- data 之外的数据,例如数据库,不受跟踪。如果您正在 [data] 之外读取/写入数据,请考虑如何在 Git 历史记录和/或 [data] 审计跟踪中跟踪这些数据。
- repo 之外的所有代码不受跟踪。除非您的 [repo] 指定了确切的依赖版本,否则您的代码可能无法 100% 重复。
- 审计跟踪文件未进行加密签名,因此如果篡改它们,则不会进行跟踪。
项目详细信息
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
gittrail-0.1.1.tar.gz (24.0 kB 查看散列值)
构建分发
gittrail-0.1.1-py3-none-any.whl (24.4 kB 查看散列值)
关闭
gittrail-0.1.1.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | ffb96c6d2eb8b4a011a299aae02dacff80492e5bcb2aff0333639c558af9a09c |
|
MD5 | e9a10585fb2b8ad7fad6b9a2816adb84 |
|
BLAKE2b-256 | b04e6328a009cf39b4007bc2d2ea7d24d7af5896e778a70c71f69651f51c2c66 |
关闭
gittrail-0.1.1-py3-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | db8f399d94aff522a0dd53c4cd24f79f9ea2caee079d8f06cea7ff341f3847eb |
|
MD5 | e4d36d3ac7385dec1cc4070650109e3c |
|
BLAKE2b-256 | 6e331e7c8f1a5ef051e86af133777e2e2cfb05cecea865f0d489fb58d6c2bdca |