svn path=/trunk/packages/sipb-xen-base/; revision=786
#
def with_closing(rsrc):
- "Utility to emulate Python 2.5's `with closing(rsrc)` context manager."
+ """
+ Utility to emulate Python 2.5's `with closing(rsrc)` context manager.
+
+ E.g.,
+ @with_closing(file('/tmp/foo'))
+ def contents(f):
+ return f.read()
+ # now 'contents' is the contents of /tmp/foo
+ """
def wrapper(func):
try: return func(rsrc)
finally: rsrc.close()
def input():
print 'locked'
return raw_input()
- # decorator is executed immediately
- print input # prints the input text
+ # prints 'locked'
+ print input # prints what raw_input() returned
"""
def wrapper(func):
@with_closing(file(path, 'w'))