Pytables h5py

 

 

Anthony Scopatz,南卡罗来纳大学助理教授,HDF客座博主

“Python很棒,它的科学计算生态系统也是世界一流的。HDF5非常棒,是科学数据持久性的黄金标准。许多人使用Python的HDF5,而这个数字只是由于大熊猫的HDFStore而增长但是,使用Python的HDF5至少还有一个比它需要的结。让我们改变它。“

几乎在使用Python的HDF5时,您可以选择两个具有重叠功能的精彩软件包:h5pyPyTablesh5py使用自动生成的Cython更紧密地包装HDF5 API。PyTables虽然也包装了HDF5,但更多地关注Table数据结构,并增加了复杂的索引和核心外查询。您使用哪个包取决于您的使用案例 - 有时您真的需要两个!

SciPy 2015上,来自PyTables,h5py,HDF Group,pandas以及社区成员的开发人员坐下来讨论了如何使Python和HDF5的故事更精简和更易于维护。以下是我们提出的建议: 

  • 重构PyTables依赖于h5py与HDF5的结合。
  • 更新h5py以支持PyTables重构(需要一些数据类型等)。
  • PyTables将保留其所有高级抽象。
  • 使h5py - PyTables交互无缝。
  • 确保API和HDF5文件向后兼容h5py和PyTable。
    • PyTables的主要版本号,也许是h5py。

我们相信用户和开发人员都将从中受益。你将不再被迫在前面选择h5py和PyTables。相反,您可以根据需要自由地向上或向下移动堆栈。

重构的努力不仅仅是技术优势。我们也将其视为社区融合虽然项目将保持独立 - 它们填补了不同的利基 - 它们变得比以往更加共生。我们相信重构将为h5py和PyTables带来更多用户。作为实现这一目标的重要手段,h5py的核心开发人员现在拥有主要PyTables存储库的推送权限,反之亦然。我们致力于实现这一愿景。

可持续性,维护和资金

从长远来看,类似于提议的新堆栈必须发生,以使Python和HDF5生态系统保持可行。没有理由存在两个规范的低级别绑定库到HDF5。这不仅是核心开发人员的冗余工作,也是用户社区的冗余工作。目前的情况意味着现在有两个地方可以报告错误,两个地方可能会出现令人讨厌的unicode问题,两个处理内存中的HDF5文件,依此类推。这是不可持续的。

我们认为,拟议的重构是解决这些长期维护问题的最佳方法。PyTables和其他任何东西一样长。说真的,PyTables的工作始于2001年 - 这是在NumPy之前,只要IPython等等。可能很容易认为PyTables可以顺其自然地走。但是PyTables已经存在了很长时间,因为它已经适应了当天的需求。现在,任何代码生存的最佳方式是协同工作。

当然,确保这些变化发生的最佳方式是我们获得资金。这可能来自一个非常慷慨的来源,或来自多个组织。我们看到三种途径,我们希望看到资助:

  • 需要约6个月到1年FTE的重构器在PyTables和h5py之间分配。
  • 针对需要每年约3个月FTE的h5py和PyTables的长期维护问题:例如发布管理,CI,错误修复,邮件列表响应等。
  • 新颖的功能实现:

然而,筹款的一个主要问题是,“钱在哪里?”嗯,我们很高兴地宣布我们已经解决了这个问题,因为......

PyTables现在是NumFOCUS项目!

截至2015年8月29日,PyTables的核心开发商已NumFOCUS(NF)签署了一份全面的财政赞助协议,这是一家501(c)3非营利性科学计算机。我们很荣幸加入IPython / Jupyter,Matplotlib,Julia,SymPy,Software Carpentry,Data Carpentry等行列。更重要的是,我们可以接受针对Python和HDF5活动的免税捐赠。这包括雇用人员完成上述工作。我们非常兴奋。

对于想要参与项目的个人,我们很快就会有PayPal链接。对于大型组织,请联系PyTables的核心开发人员或h5py或NumFOCUS。我们非常乐意撰写有竞争力的提案。如果您知道任何并希望我们申请,请告诉我们。

如果您是潜在的资助者并且被限制向非营利组织捐赠,请不要担心!h5py和PyTable都有核心开发人员,他们能够在美国的R1大学进行PI项目。

当然,如果编码更符合你的风格,我们总会审查任何拉动请求。如果您需要帮助入门,请询问我们,我们将很乐意为您提供指导。

所以无论你是谁,或者你的兴趣是什么,我们都在这里,准备好,并且能够帮助使Python和HDF5比以前更好地工作。这里的建议是我们想要的,也是挂钟数月集体努力的结果。我们许多人都看不起这些项目的消失。简化堆栈将有助于确保h5py和PyTables在可预见的未来都健康且充满活力。  

请让我们将这个愿景变为现实!

PyTables治理团队 - Anthony Scopatz,Francesc Alted,Antonio Valentino,Andrea Bedini

h5py核心开发人员 - Andrew Collette

致谢

非常感谢NumFOCUS为我们提供财政赞助。这一点的重要性不容忽视。

非常感谢HDF集团(Mike Folk,John Readey,特别是Gerd Herber)在整个过程中鼓励和参与我们。

编者注:安东尼为HDF5事业做出了许多精彩的贡献,包括他恰如其分的“HDF5 for Lovers”教程。谢谢,安东尼!

posted @ 2019-01-07 13:02  Lucas_Yu  阅读(1749)  评论(0编辑  收藏  举报