summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2023-06-07 20:16:00 +0200
committerRicardo Wurmus <rekado@elephly.net>2023-06-08 10:37:08 +0200
commitd7e0306aa5e7c8ac2f8794ab5839424911d62d52 (patch)
tree22ddacaf7d90cd9284ea0c03e8802982d27a1cdf /gnu
parentb9eb74d6559deaa83b8bf32d778fe623f76f78f1 (diff)
gnu: Add python-duckdb.
* gnu/packages/python-xyz.scm (python-duckdb): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/python-xyz.scm53
1 files changed, 53 insertions, 0 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f2a794367f..1aad8b90ca 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -20515,6 +20515,59 @@ from the header, as well as section details and data available.")
Mustache templating language renderer.")
(license license:expat)))
+(define-public python-duckdb
+ (package
+ (name "python-duckdb")
+ (version "0.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "duckdb" version))
+ (sha256
+ (base32
+ "13y1gs565q51li5fi9m7fpf0sqns8frsaii6v95acwjhmdds73f6"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ '(list "--ignore=tests/slow/test_h2oai_arrow.py"
+ ;; Don't install anything, thank you.
+ "-k" "not test_install_non_existent_extension")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Tests need this
+ (add-before 'check 'set-HOME
+ (lambda _ (setenv "HOME" "/tmp")))
+ (add-before 'build 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)
+ (substitute* "setup.py"
+ (("\"setuptools_scm<7.0.0\",") ""))))
+ ;; Later versions of pybind replace "_" with "const_name".
+ (add-after 'unpack 'pybind-compatibility
+ (lambda _
+ (with-directory-excursion "src/include/duckdb_python"
+ (substitute* '("python_objects.hpp"
+ "pyfilesystem.hpp"
+ "pybind11/conversions/pyconnection_default.hpp")
+ (("const_name") "_"))))))))
+ (native-inputs
+ (list pybind11
+ python-fsspec
+ python-google-cloud-storage
+ python-mypy
+ python-numpy
+ python-pandas
+ python-psutil
+ python-pyarrow
+ python-pytest
+ python-pytest-runner
+ python-setuptools-scm))
+ (home-page "https://www.duckdb.org")
+ (synopsis "DuckDB embedded database")
+ (description "DuckDB is an in-process SQL OLAP database management
+system.")
+ (license license:expat)))
+
(define-public python-dulwich
(package
(name "python-dulwich")