diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 433f6ec0fc..5d9d98e4c3 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -8482,6 +8482,33 @@ (define-public mallard-ducktype provides additional functionality on the produced Mallard documents.") (license license:expat))) +(define-public python-cykhash + (package + (name "python-cykhash") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cykhash" version)) + (sha256 + (base32 "1xwpxff4whfvkwvcyhzhdcj5zzq89vvdjmnqy664s4a9yp4lnydl")))) + (build-system pyproject-build-system) + (native-inputs (list python-cython + python-setuptools + python-wheel)) + (home-page "https://github.com/realead/cykhash") + (synopsis "Khash-sets and maps") + (description + "This package is a Cython wrapper for khash-sets/maps. It brings +functionality of +@url{https://github.com/attractivechaos/klib/blob/master/khash.h, khash} to +Python and Cython and can be used seamlessly in numpy or pandas. Numpy's +world is lacking the concept of a (hash-)set. This shortcoming is fixed and +efficient (memory- and speedwise compared to pandas) @code{unique} and +@code{isin} are implemented. Python-set/dict have a big memory-footprint. +For some datatypes the overhead can be reduced by using khash by factor 4-8.") + (license license:expat))) + (define-public python-cython (package (name "python-cython")