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

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限制C++代码访问JNI中的某些类   Android上的java DateFormat:不可解析的日期   通过json进行java迭代,并为其他请求调用多个API   Netbeans中的java JavaFX项目引发异常“输入流不能为null”   多线程Java newFixedThreadPool解释   |在java字符串中无法识别。split()方法   Java中的原始包装器类是否被视为引用类型?   Java swing。如何在intellij idea GUI设计工具中重写组件方法   数组乘矩阵   java将30GB的XML文件分割成小块XML   java通过一棵树递归找到一个节点,并返回指向该节点的路径   java如何将可观察的<Observable<List<T>>转换为可观察的<List<T>>   使用java在web服务器上更改php文件中的字符串?   java希望开发像tomcat这样的servlet容器   java希望提高编程的数学技能