生成/使用具有特定标签的数据的脚本的管理

data-path-utils的Python项目详细描述


概述

在过去的几年里,我已经将 我为我的研究写的代码。我更喜欢分析的每一步 作为独立脚本实现的管道,尽管通常使用函数和 在其他模块中可导入的类-此类脚本通常会加载一些 数据,执行一些处理,保存处理过的数据,保存绘图/图形, 等

此包提供用于创建和查找标记路径的实用程序,这些路径 适用于存储数据和绘图。能够 比较某个分析步骤的不同版本之间的结果,因此 路径被加上时间戳以防止脚本的重复运行被覆盖 以前的结果。

此包区分“数据”路径,以保存可能 在分析管道的下一个阶段由另一个脚本加载,并且 “输出”路径,用于仅供人们检查的绘图/等。

此代码的主要接口是通过补充函数 create_data_pathfind_newest_data_path,每个都取一个 “label”字符串参数并返回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的脚本使用脚本名作为 “label”参数,但这不是强制的-可以包括参数值 或者其他相关的东西。

附加功能

通过这些对create_data_pathfind_newest_data_path的调用,一个 然后可以将一组这样的脚本建模为有向图,其中包含节点 同时表示脚本和数据路径,以及表示“需要”的边 关系,例如“脚本x需要数据标签y,它由 脚本Z”。此包还包含独立脚本(需要 package networkx)解析特定项目中的python文件,构造 此图,并使用此图在 三个独立可执行脚本的形式:

  • dependency_graph:使用pydotplus包绘制此图,并 对dotgraphviz可执行文件的调用。
  • list_script_dependencies:将脚本文件名作为命令行 参数,并生成 通过对图的子集执行拓扑排序的脚本 可从该脚本访问。有助于回答诸如“应该 我按什么顺序运行,以使所有的东西都准备好运行这个脚本 兴趣?“请注意,这要求子图可以从脚本访问 节点是非循环的(它应该是非循环的)。
  • archive_script_data_dependencies:将脚本文件名作为 命令行参数,并标识该脚本的所有数据依赖项。 将这些数据路径下的所有文件归档到一个zip文件,该文件可以很容易地 在机器之间运输。

要求

Python3.6或更新版本。

“附加功能”下面列出的内容需要networkx和pydotplus。

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

推荐PyPI第三方库


热门话题
java为什么需要ScheduledExecutorService。shutdown()使用我100%的CPU吗?   java如何加载应用程序。spring框架中的属性?   java立即绘制JFrame   java定时器不允许用户进行编辑   java如何通过在React应用程序中提交值来加载数据   java在Multimultiul maven项目中集成特性(文件)存储在哪里?   java Arjuna JTA事务意外回滚   java禁用edittext 安卓,在视图中使用if-else   java中的错误。图书馆从Matlab调用使用Cplex的Java函数时的路径   Java中的浮点计算错误   Java中C#IEnumerable的等价物是什么?是可协变的,不是可协变的   最终播放商店用户可见的java Apk名称