summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorJacob MacDonald <jaccarmac@gmail.com>2019-07-11 15:43:31 -0500
committerLudovic Courtès <ludo@gnu.org>2019-07-13 15:13:52 +0200
commite308b4f06a06c38954b1c07c6a83622bb01a0326 (patch)
tree42e949b203194a0e9c8f40324a9609eec80b3108 /gnu/packages
parent86b0b7917fc9e254ced1f25decae6e9a9443fba4 (diff)
downloadguix-e308b4f06a06c38954b1c07c6a83622bb01a0326.tar.gz
gnu: Add python-cached-property.
* gnu/packages/python-xyz.scm (python-cached-property): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/python-xyz.scm37
1 files changed, 37 insertions, 0 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 29aebdf8aa..b078786e13 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -63,6 +63,7 @@
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -15954,3 +15955,39 @@ Complete support for Berkeley DB Base Replication.  Support for RPC.")
 types for further processing.  It is primarily intended for batch jobs and
 one-off scripts.")
     (license license:expat)))
+
+(define-public python-cached-property
+  (package
+    (name "python-cached-property")
+    (version "1.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cached-property" version))
+       (sha256
+        (base32
+         "010m1bl380l2r3vwq24r5v14l6gwvgm9v0mqqjkjss552jgsa5wj"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; https://github.com/pydanny/cached-property/issues/131
+         ;; recent versions of freezegun break one test
+         (add-after 'unpack 'disable-broken-test
+           (lambda _
+             (substitute* "tests/test_cached_property.py"
+               (("def test_threads_ttl_expiry\\(self\\)" m)
+                (string-append "@unittest.skip(\"Disabled by Guix\")\n"
+                               "    " m)))
+             #t)))))
+    (native-inputs
+     `(("python-freezegun" ,python-freezegun)))
+    (home-page
+     "https://github.com/pydanny/cached-property")
+    (synopsis
+     "Decorator for caching properties in classes")
+    (description
+     "This package provides a decorator which makes caching
+time-or-computationally-expensive properties quick and easy and works in Python
+2 or 3.")
+    (license license:bsd-3)))