Elements: Simplifying Compiled Python Packaging in the Sciences
Elements: Simplifying Compiled Python Packaging in the Sciences
批准号:
2209877
负责人:
Henry Schreiner
金额:
$58.04万
依托单位:
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2022
资助国家:
美国
项目状态:
未结题
起止时间:
2022-08-01 至 2025-07-31
中文摘要
Python是科学中最流行的语言,它的编译扩展是几乎所有Python科学软件包的核心。构建扩展的过程传统上是复杂的。即使是一个简单的扩展也是具有挑战性的,制作像NumPy这样的复杂扩展需要数千行代码才能编译。Scikit-build以原生和自然的方式为Python用户提供了对CMake的访问,CMake是编译语言中最流行和最强大的构建系统。Scikit-build正在重新设计标准化的打包程序,这些程序在2014年scikit-build启动时还没有编写出来。这将使Scikit-build成为未来科学Python社区的参考解决方案,并为用户提供许多新功能,包括更简单的配置,更好的稳定性,跨平台编译等等。一系列流行的科学图书馆正在适应新的Scikit-build核心基础设施,并就需要提供哪些功能提供反馈。Scikit-build是一个封装distutils的工具包,distutils是一个用于构建扩展的标准库包,它是2014年唯一的选择。在发布的PEP(Python Enhancement Proposals)上正在重写它,以避免在2023年Python 3.12中删除distutils之前使用distutils。重写后的Scikit-build还将提供一个符合现代最佳实践的配置系统,改善开发人员体验,并通过避免脆弱的distutils私有内部来提高稳定性。新功能包括与CMake集成的新库发现系统,使可重用的编译库可以通过PyPI和conda-forge等Python分发渠道共享,缓存构建,更好的CUDA和Fortran支持,交叉编译等。Scikit-build正在与NumPy和SciPy合作开发文档,与US-RSE合作开发教程和研讨会,与急流、PyArrow、PySTAN、Awkward Array、ITK、3D Slicer、CERN ROOT、ATLAS、OSQP合作,和Bézier进行Scikit的初始集成和测试-该奖项反映了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)
会议论文
海外基金