From 4acef69146d41714e9912fb1576f6f64b267eaa2 Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Thu, 12 May 2022 22:43:29 +0300 Subject: [PATCH] gnu: Add python-cymem * gnu/packages/python-xyz.scm (python-cymem): New variable. --- gnu/packages/python-xyz.scm | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index fdfdd3fef3..421a298ccd 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -121,6 +121,7 @@ ;;; Copyright © 2022 Peter Polidoro ;;; Copyright © 2022 Wamm K. D. ;;; Copyright © 2022 Jai Vetrivelan +;;; Copyright © 2022 Artyom V. Poptsov ;;; ;;; This file is part of GNU Guix. ;;; @@ -31150,3 +31151,46 @@ object, which can be useful if you want to force your objects into a table.") "The @code{deep-merge} Python library provides a toolset to deeply merge nested data structures in Python like lists and dictionaries.") (license license:expat))) + +(define-public python-cymem + (package + (name "python-cymem") + (version "2.0.6") + (source (origin + (method url-fetch) + (uri (pypi-uri "cymem" version)) + (sha256 + (base32 + "0pkyy60zk9654sj991w111p1l0m8wvz36nslw96x6nb9h6sjb5qn")))) + (build-system python-build-system) + (native-inputs + (list python-cython + python-pytest)) + (inputs + (list python)) + (arguments + (list + #:modules '((ice-9 ftw) + (ice-9 match) + (guix build utils) + (guix build python-build-system)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-source-file-times-to-1980 + ;; XXX One of the tests uses a ZIP library to pack up some of the + ;; source tree, and fails with "ZIP does not support timestamps + ;; before 1980". Work around this by setting the file times in the + ;; source tree to sometime in early 1980. + (lambda _ + (let ((circa-1980 (* 10 366 24 60 60))) + (ftw "." (lambda (file stat flag) + (utime file circa-1980 circa-1980) + #t)))))))) + (home-page "https://github.com/explosion/cymem") + (synopsis "Cython memory pool for RAII-style memory management") + (description + "Cymem provides two small memory-management helpers for Cython. They make it +easy to tie memory to a Python object's life-cycle, so that the memory is freed +when the object is garbage collected.") + (license license:expat))) + -- 2.25.1