summaryrefslogtreecommitdiff
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)
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)))