课题基金 / 基金详情

Elements: Simplifying Compiled Python Packaging in the Sciences

Elements: Simplifying Compiled Python Packaging in the Sciences
元素:简化科学领域的已编译 Python 打包
批准号:
2209877
负责人:
Henry Schreiner
金额:
$58.04万
依托单位:
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2022
资助国家:
美国
项目状态:
未结题
起止时间:
2022-08-01 至 2025-07-31

项目摘要

项目成果

相似基金

相关文献

中文摘要
翻译
Python是科学界最流行的语言,它的编译扩展是几乎所有的Python科学包的核心。传统上,构建扩展的过程很复杂。即使是一个简单的扩展也是具有挑战性的,而制作像NumPy这样的复杂扩展仅为了编译就需要数千行代码。Scikit-Build为Python用户提供了对CMake的访问,CMake是最流行和最强大的编译语言构建系统,它以本机和自然的方式提供了访问。SCHKIT-BUILD正在重新设计标准化包装程序,这些程序在2014年SCRICIT-BUILD开始时还没有编写。这将使Scikit-Build成为未来的参考科学Python社区解决方案,并为用户提供许多新功能,包括更简单的配置、更好的稳定性、跨平台编译等。一批受欢迎的科学图书馆正在调整新的Scikit-Build核心基础设施,并就需要提供哪些功能提供反馈。在项目过程中举行了广泛的教程、示例和培训课程,以使比以往任何时候都更多的用户可以使用二进制扩展。Scikit-Build被设计为distutils的包装器,distutils是构建扩展的标准库程序包,这是2014年的唯一选择。它将在已发布的PEP(Python增强建议书)上进行重写,以避免在2023年从Python3.12中移除distutils之前使用distutils。重写的Scikit-Build还将提供符合现代最佳实践的配置系统,改进的开发人员体验,并通过避免脆弱的distutil私有内部来提高稳定性。新功能包括与CMake集成的新库发现系统,使可重复使用的编译后的库可通过Python分发渠道(如PyPI和Conda-Forge)共享、缓存的构建、更好的CUDA和Fortran支持、交叉编译等。Scikit-Build正在与NumPy和SciPy合作编写文档,US-RSE提供教程和研讨会,以及Rapids、PyArrow、PySTAN、Cauthous Array、ITK、3D Slicer、CERN Root、ATLAS、OSQP和Bézier对Scikit-Build重新设计的基础设施进行初步集成和测试。该奖项反映了NSF的法定使命,并通过使用基金会的智力优势和更广泛的影响审查标准进行评估,被认为值得支持。
英文摘要
Python is the most popular language in the sciences, and compiled extensions for it are at the core of almost all scientific packages for Python. The process to build an extension has traditionally been complex. Even a simple extension is challenging and making a complex extension like NumPy requires thousands of lines of code just for compilation. Scikit-build provides access to CMake, the most popular and powerful build system for compiled languages, for Python users in a native and natural way. Scikit-build is being redesigned on top of standardized packaging procedures that were not yet written when scikit-build was started in 2014. This will establish Scikit-build as the reference scientific Python community solution for the future, as well as provide many new features to users, including much simpler configuration, much better stability, cross-platform compilation, and much more. A collection of popular scientific libraries are adapting the new Scikit-build core infrastructure and providing feedback on what features need to be made available. Extensive tutorials, examples, and training sessions are being held during the course of the project to make binary extensions available to far more users than ever before.Scikit-build was designed as a wrapper around distutils, the standard library package for building extensions, which was the only option in 2014. It is being rewritten on published PEPs (Python Enhancement Proposals) to avoid usage of distutils before distutils is removed in 2023 in Python 3.12. The rewritten Scikit-build will also provide a configuration system that conforms to modern best practices, an improved developer experience, and increased stability by avoiding the fragile distutils private internals. New features include a new library discovery system integrated with CMake to make reusable compiled libraries shareable through Python distribution channels like PyPI and conda-forge, cached builds, better CUDA and Fortran support, cross-compilation, and more. Scikit-build is collaborating with NumPy and SciPy on documentation, US-RSE for tutorials and workshops, and RAPIDS, PyArrow, PySTAN, Awkward Array, ITK, 3D Slicer, CERN ROOT, ATLAS, OSQP, and Bézier for initial integration and testing of Scikit-Build’s redesigned infrastructure.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
海外基金