summaryrefslogtreecommitdiff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index de004cc567..82728cccf9 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2144,6 +2144,42 @@ generator MkDocs.")
bindings to the C++ random forest implementation, ranger, using Cython.")
(license license:gpl3+)))
+(define-public python-nanobind
+ (package
+ (name "python-nanobind")
+ (version "2.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nanobind" version))
+ (sha256
+ (base32 "15hw9r0znv7pz8mlgcb892m8ahppaf7gx2xcna2i122qbzp2sfd0"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'configure-cmake
+ (lambda _
+ (invoke "cmake" "-S" "." "-B" "build" "-DNB_TEST_STABLE_ABI=ON")))
+ (add-after 'configure-cmake 'build-c++
+ (lambda _
+ (invoke "cmake" "--build" "build" "-j" "2")))
+ (add-before 'check 'pre-check
+ (lambda _ (chdir "build"))))))
+ (inputs (list eigen))
+ (native-inputs (list cmake-minimal
+ python-pytest
+ python-scikit-build-core))
+ (home-page "https://github.com/wjakob/nanobind/")
+ (synopsis "nanobind: tiny and efficient C++/Python bindings")
+ (description "Nanobind is a small binding library that exposes C++ types
+in Python and vice versa. It is reminiscent of @code{Boost.Python} and
+@code{pybind11} and uses near-identical syntax. In contrast to these existing
+tools, @code{nanobind} is more efficient: bindings compile in a shorter amount
+of time, produce smaller binaries, and have better runtime performance.")
+ (license license:bsd-3)))
+
(define-public python-nr-date
(package
(name "python-nr-date")