Poch:一个帮你获取数据文件的朋友

2020-07-19 17:59:53

不再支持🚨Python2.7。如果需要2.7支持,请使用Pooch<;=0.6.0。🚨。

您的Python包是否包含示例数据集?你要把它们和密码一起运吗?它们是不是变得太大了?

普奇是来帮忙的!它将通过仅在需要时从服务器下载数据文件并将其本地存储在数据缓存(计算机上的文件夹)中来管理数据注册表。

仅在必要时下载文件(该文件不在数据缓存中或需要更新)。

通过SHA256散列验证下载完整性(也用于检查文件是否需要更新)。

设计可扩展:插件自定义下载(FTP、SCP等)和后处理(解压缩、解压缩、重命名)功能。

可以处理基本的HTTP身份验证(对于需要登录的服务器)和打印下载进度条。

自动下载您的数据文件,这样您就不必将它们保存在GitHubrepository中。

确保每个运行代码的人都有相同版本的数据文件(通过SHA256散列强制执行)。

从pooch import检索#下载文件并将其保存在本地。再次运行此程序不会导致#a下载。Pooch将对照给定值检查下载文件#的散列(校验和),以确保它是正确的文件(未损坏#或过期)。FName=检索(URL=";https://some-data-server.org/a-data-file.nc";,KNOWN_HASH=";md5:70e2afd3fd7e336ae478b1e740a5f08e";,)。

";";";";Module mypackage/datets.py";";";导入pkg_resources导入熊猫导入pooch#从项目中获取版本字符串。你有一个这样的,对吗?从。Import version#创建一个新朋友来管理示例数据存储GoodBoy=pooch。创建(#将存储数据的文件夹。对于合理的默认值,请使用适用于您的操作系统的#Default缓存文件夹。PATH=POOCH。OS_CACHE(";mypackage";),#远程数据存储区的基本URL。将在此字符串#上调用.format以插入版本(见下文)。Base_url=";https://github.com/myproject/mypackage/raw/{version}/data/";,#POCH是版本化的,因此您可以同时使用#包的多个版本。使用符合PEP440标准的版本号。#version将附加到路径中。Version=version,#如果版本后缀为";+XX.XXXXX";,我们将假定这是dev#版本,并用此字符串替换该版本。Version_dev=";master";,#覆盖路径的环境变量。Env=";MYPACKAGE_DATA_DIR";,#缓存文件注册表。包含此#pooch管理的所有文件的字典。键是文件名(相对于*base_url*),值#是它们各自的SHA256散列。文件将在需要时#自动下载(请参阅FETCH_GRANITION_DATA)。注册表={";graight-data.csv";:";89y10phsdwhs09whljwc09whcowsdhcwodcydw";})#您也可以从文件加载注册表。每一行都包含一个文件#name和它的sha256散列,中间用空格分隔。这使得#管理大量数据文件变得更容易。注册表文件应打包#并随软件一起分发。好孩子。LOAD_REGISTRY(pkg_resources。Resource_stream(";mypackage";,";registry.txt";))#定义您的用户可以调用以取回内存中的数据的函数def FETCH_GRANGATION_DATA():";";";加载一些样本重力数据以在您的文档中使用。";";";#获取本地存储中文件的路径。如果它不在那里,#我们将下载它。Fname=GoodBoy。FETCH(";grasion-data.csv";)#用Numpy/Pandas/etc data=Pandas加载它。READ_CSV(Fname)返回数据。

如果您正在使用Pooch,请向我们发送拉取请求,将您的项目添加到列表中。

大多数讨论都发生在Github上,可以自由地打开问题或评论任何打开的问题或拉回请求。

这是科学家制作的研究软件(见AUTHORS.md)。CitationShelp证明我们在建设和维护这个项目上所付出的努力是合理的。如果您使用Pooch进行研究,请考虑引用我们。

请注意,此项目是随贡献者契约代码一起发布的。通过参与此项目,您同意遵守其条款。

也许你的脑海里有个小小的声音告诉你,你还没有准备好成为一名开源贡献者;你的技能还不够好,不足以做出贡献。你能提供什么呢?

作为一名贡献者不仅仅意味着编写代码。同样重要的贡献包括:编写或校对文档,建议或实施测试,甚至对项目提供反馈(包括对贡献过程提供反馈)。如果你以全新的视角进入项目,你可能会看到经验丰富的贡献者掩盖的错误和假设。如果你能写任何代码,你就可以为开源贡献代码。我们不断尝试新技能,犯错误,并从中学习。

这是自由软件:您可以根据BSD 3条款许可证的条款重新分发和/或修改它。本许可证的副本在LICENSE.txt中提供。