diff options
author | Benjamin Peterson <benjamin@python.org> | 2016-04-19 00:01:37 -0700 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2016-04-19 00:01:37 -0700 |
commit | 648c4dddb7703c32161780def0563d3d806bd5b4 (patch) | |
tree | ae3e9033e4dfae12ed2ddbfc026035f56090a0e0 | |
parent | 2c1141f9d8b74e2fea72281080bc091eb2319f8d (diff) | |
parent | fe838eb31308f92e9967443c6c3dcb0ce488b0cc (diff) | |
download | six-648c4dddb7703c32161780def0563d3d806bd5b4.tar.gz |
Merged in asottile/six (pull request #75)
Add six.moves.email_mime_image
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | documentation/index.rst | 2 | ||||
-rw-r--r-- | six.py | 33 | ||||
-rw-r--r-- | tox.ini | 2 |
4 files changed, 31 insertions, 12 deletions
@@ -3,6 +3,12 @@ Changelog for six This file lists the changes in each six version. +Development version +------------------- + +- Pull request #72: Avoid creating reference cycles through tracebacks in + `reraise`. + 1.10.0 ------ diff --git a/documentation/index.rst b/documentation/index.rst index 1cb53ad..e43ab43 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -345,7 +345,7 @@ Python 2 and 3. on Python 3 or :: class MyClass(object): - __metaclass__ = MyMeta + __metaclass__ = Meta on Python 2. @@ -680,11 +680,15 @@ if PY3: exec_ = getattr(moves.builtins, "exec") def reraise(tp, value, tb=None): - if value is None: - value = tp() - if value.__traceback__ is not tb: - raise value.with_traceback(tb) - raise value + try: + if value is None: + value = tp() + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value + finally: + value = None + tb = None else: def exec_(_code_, _globs_=None, _locs_=None): @@ -700,19 +704,28 @@ else: exec("""exec _code_ in _globs_, _locs_""") exec_("""def reraise(tp, value, tb=None): - raise tp, value, tb + try: + raise tp, value, tb + finally: + tb = None """) if sys.version_info[:2] == (3, 2): exec_("""def raise_from(value, from_value): - if from_value is None: - raise value - raise value from from_value + try: + if from_value is None: + raise value + raise value from from_value + finally: + value = None """) elif sys.version_info[:2] > (3, 2): exec_("""def raise_from(value, from_value): - raise value from from_value + try: + raise value from from_value + finally: + value = None """) else: def raise_from(value, from_value): @@ -1,7 +1,7 @@ [tox] envlist=py26,py27,py31,py32,py33,py34,pypy,flake8 indexserver= - default = http://pypi.python.org/simple + default = https://pypi.python.org/simple testrun = http://pypi.testrun.org [testenv] |