<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
<blockquote
 cite="mid:AANLkTi=k9DVFTAKLU3LhAMbJpo_A_4pLb46HnAa2mR=-@mail.gmail.com"
 type="cite">
  <pre wrap="">If you don't like that construct, perhaps this one is nicer:

from twisted.internet.defer import maybeDeferred

def getCachedResult(cache, key):
   def _readItem(item):
       if item.obsolete():
           return None
       return item.read()

   def _gotResult(item):
       def _release(ign):
           item.release()
           return item

       d = maybeDeferred(_readItem, item)
       d.addBoth(_release)
       d.addCallback(renew)
       return d

   def _ebNotFound(f):
       f.trap(NotFound)
       return None

   return cache.open(key).addCallbacks(_gotResult, _ebNotFound</pre>
</blockquote>
Thanks, <span id="result_box" class="short_text"><span
 style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);"
 title="">this is what I was looking for</span></span>
</body>
</html>