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

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第三方库


热门话题
在Eclipse中使用多个调用在一行上打印java   javajackson序列化问题。只有同一实体的第一个对象可以很好地序列化   Java中Deflate函数的等价充气   使用customlitview的java Android actionbar搜索   java“<T>T get()”是什么意思?(它有用吗?)   目标c使用CommonCrypto使用AES256加密,使用OpenSSL或Java解密   java在运行时更新资源文件   fileinputstream在java中访问并将数据写入现有文件   带集群的java Android Mapbox我希望每个功能都有不同的标记图像   java JDK8>JDK10:PKIX路径生成失败:SunCertPathBuilderException:找不到请求目标的有效证书路径   java使用Hk2生成具有指定构造函数参数的实例   为什么这个系统。出来Java中的println()打印到控制台?   java目录和文件名连接不起作用   使用mockito和通配符绘图的java