summaryrefslogtreecommitdiffstats
path: root/Lib/contextlib.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-06-28 14:08:35 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2015-06-28 14:08:35 (GMT)
commiteab770404437bd49ebf897b681221784b0035795 (patch)
tree291450eb49145a982a5d30b60f31070d5eb56fdf /Lib/contextlib.py
parent4801383c2953d3a45beafa1e945d60412460b9c3 (diff)
parent101ff3541cbe5bd9549722dc53c28d6c21b9389c (diff)
downloadcpython-eab770404437bd49ebf897b681221784b0035795.zip
cpython-eab770404437bd49ebf897b681221784b0035795.tar.gz
cpython-eab770404437bd49ebf897b681221784b0035795.tar.bz2
Issue #24336: The contextmanager decorator now works with functions with
keyword arguments called "func" and "self". Patch by Martin Panter.
Diffstat (limited to 'Lib/contextlib.py')
-rw-r--r--Lib/contextlib.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/Lib/contextlib.py b/Lib/contextlib.py
index 379c251..5377987 100644
--- a/Lib/contextlib.py
+++ b/Lib/contextlib.py
@@ -34,7 +34,7 @@ class ContextDecorator(object):
class _GeneratorContextManager(ContextDecorator):
"""Helper for @contextmanager decorator."""
- def __init__(self, func, *args, **kwds):
+ def __init__(self, func, args, kwds):
self.gen = func(*args, **kwds)
self.func, self.args, self.kwds = func, args, kwds
# Issue 19330: ensure context manager instances have good docstrings
@@ -52,7 +52,7 @@ class _GeneratorContextManager(ContextDecorator):
# _GCM instances are one-shot context managers, so the
# CM must be recreated each time a decorated function is
# called
- return self.__class__(self.func, *self.args, **self.kwds)
+ return self.__class__(self.func, self.args, self.kwds)
def __enter__(self):
try:
@@ -130,7 +130,7 @@ def contextmanager(func):
"""
@wraps(func)
def helper(*args, **kwds):
- return _GeneratorContextManager(func, *args, **kwds)
+ return _GeneratorContextManager(func, args, kwds)
return helper