跳转到主要内容

管理具有特定标签的数据生成/消费脚本的工具

项目描述

概述

在过去的几年中,我自然而然地对用于研究写的代码结构进行了标准化。我倾向于将分析流程的每一步都实现为一个独立的脚本,尽管通常包含可以在其他模块中导入的函数和类——这些脚本通常加载一些数据,执行一些处理,保存处理后的数据,保存图表/图像等。

此包提供了创建和查找标签路径的实用工具,这些路径适合存储数据和图表。能够比较不同版本某些分析步骤的结果通常很重要,因此这些路径被标记时间戳以防止脚本重复运行而覆盖先前结果。

此包区分了“数据”路径,用于保存可能在分析流程后期由其他脚本加载的内容,以及“输出”路径,用于图表等仅供人们检查的内容。

此代码的主要接口是通过互补函数 create_data_pathfind_newest_data_path,每个函数都接受一个单个“标签”字符串参数,并返回一个 pathlib.Path。这些可以按以下方式使用

input_path = find_newest_data_path('previous_script')
with open(input_path / 'filename') as f:
    data = load(f)

processed_data = do_something_with(data)

data_path = create_data_path('name_of_this_script')
with open(data_path / 'whatever_filename', 'w') as f:
    save(processed_data, f)

同样,输出路径由 create_output_path 创建。建议调用 create_data_path 的脚本使用脚本名称作为“标签”参数,但这不是强制性的——可以包含参数值或任何其他相关内容。

附加功能

通过调用 create_data_pathfind_newest_data_path,可以将一组脚本建模为一个有向图,其中节点代表脚本和数据路径,边表示“需要”关系,例如“脚本 X 需要由脚本 Z 生成的数据标签 Y”。此包还包括独立的脚本(需要 NetworkX 包),用于解析项目中特定项目的 Python 文件,构建此图,并通过三个独立的可执行脚本来提供其他有用的功能。

  • dependency_graph:使用 pydotplus 包和调用 dot GraphViz 可执行文件来绘制此图。

  • list_script_dependencies:接受一个脚本文件名作为命令行参数,并通过对该脚本可到达图的子集进行拓扑排序,生成该脚本的有序数据/脚本依赖列表。这对于回答诸如“我应该按什么顺序运行哪些脚本,以便运行感兴趣的脚本”等问题非常有用。请注意,这需要从脚本节点可到达的子图是无环的(这应该始终如此)。

  • archive_script_data_dependencies:接受一个脚本文件名作为命令行参数,并确定该脚本的所有数据依赖关系。将那些数据路径下的所有文件存档到 zip 文件中,以便在机器之间轻松传输。

要求

Python 3.6 或更高版本。

“附加功能”下列出的事项需要 NetworkX 和 pydotplus。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

data-path-utils-0.8.1.tar.gz (8.2 kB 查看哈希)

上传时间

构建分布

data_path_utils-0.8.1-py3-none-any.whl (10.2 kB 查看哈希)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面