mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +00:00
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described here (it's not a Py3K issue, just something Py3K discovers): http://mail.python.org/pipermail/python-dev/2006-April/064051.html Hye-Shik Chang promised to look for a fix, so no need to fix it here. The tests that are expected to break are: test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecs test_multibytecodec This merge fixes an actual test failure (test_weakref) in this branch, though, so I believe merging is the right thing to do anyway.
This commit is contained in:
parent
9ada3d6e29
commit
49fd7fa443
640 changed files with 52240 additions and 18408 deletions
|
@ -30,9 +30,22 @@ class GeneratorContextManager(object):
|
|||
else:
|
||||
try:
|
||||
self.gen.throw(type, value, traceback)
|
||||
return True
|
||||
except StopIteration:
|
||||
return True
|
||||
raise RuntimeError("generator didn't stop after throw()")
|
||||
except StopIteration, exc:
|
||||
# Suppress the exception *unless* it's the same exception that
|
||||
# was passed to throw(). This prevents a StopIteration
|
||||
# raised inside the "with" statement from being suppressed
|
||||
return exc is not value
|
||||
except:
|
||||
# only re-raise if it's *not* the exception that was
|
||||
# passed to throw(), because __exit__() must not raise
|
||||
# an exception unless __exit__() itself failed. But throw()
|
||||
# has to raise the exception to signal propagation, so this
|
||||
# fixes the impedance mismatch between the throw() protocol
|
||||
# and the __exit__() protocol.
|
||||
#
|
||||
if sys.exc_info()[1] is not value:
|
||||
raise
|
||||
|
||||
|
||||
def contextmanager(func):
|
||||
|
@ -68,6 +81,7 @@ def contextmanager(func):
|
|||
try:
|
||||
helper.__name__ = func.__name__
|
||||
helper.__doc__ = func.__doc__
|
||||
helper.__dict__ = func.__dict__
|
||||
except:
|
||||
pass
|
||||
return helper
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue