diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-06-28 14:08:35 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-06-28 14:08:35 (GMT) |
commit | eab770404437bd49ebf897b681221784b0035795 (patch) | |
tree | 291450eb49145a982a5d30b60f31070d5eb56fdf /Lib/contextlib.py | |
parent | 4801383c2953d3a45beafa1e945d60412460b9c3 (diff) | |
parent | 101ff3541cbe5bd9549722dc53c28d6c21b9389c (diff) | |
download | cpython-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.py | 6 |
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 |