summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2016-04-27 23:59:31 -0500
committerMichael Merickel <michael@merickel.org>2016-04-27 23:59:31 -0500
commit78f6ef077c7f67440f5ccfad9b20771fe68ecee1 (patch)
treecf083547036fef23997c03ea6253995357bb3fb8
parentf7d515de86ad1ceab1b330cf1d95257b712b2659 (diff)
downloadpyramid-78f6ef077c7f67440f5ccfad9b20771fe68ecee1.tar.gz
pyramid-78f6ef077c7f67440f5ccfad9b20771fe68ecee1.tar.bz2
pyramid-78f6ef077c7f67440f5ccfad9b20771fe68ecee1.zip
avoid executing the discriminator functions multiple times
-rw-r--r--pyramid/registry.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/pyramid/registry.py b/pyramid/registry.py
index 1073134ff..df9a10822 100644
--- a/pyramid/registry.py
+++ b/pyramid/registry.py
@@ -255,9 +255,13 @@ class Deferred(object):
def __init__(self, func):
self.func = func
- def resolve(self):
+ @reify
+ def value(self):
return self.func()
+ def resolve(self):
+ return self.value
+
def undefer(v):
""" Function which accepts an object and returns it unless it is a
:class:`pyramid.registry.Deferred` instance. If it is an instance of