Deprecate contextlib.nested(). The with-statement now provides this functionality directly.

This commit is contained in:
Raymond Hettinger 2009-05-29 01:46:48 +00:00
parent b4d2d31874
commit 822b87f276
4 changed files with 11 additions and 2 deletions

View file

@ -83,6 +83,8 @@ Functions provided:
:meth:`__exit__` methods should avoid raising exceptions, and in particular they :meth:`__exit__` methods should avoid raising exceptions, and in particular they
should not re-raise a passed-in exception. should not re-raise a passed-in exception.
.. deprecated:: 2.7
The with-statement now supports this functionality directly.
.. function:: closing(thing) .. function:: closing(thing)

View file

@ -2,6 +2,7 @@
import sys import sys
from functools import wraps from functools import wraps
from warnings import warn
__all__ = ["contextmanager", "nested", "closing"] __all__ = ["contextmanager", "nested", "closing"]
@ -101,6 +102,8 @@ def nested(*managers):
<body> <body>
""" """
warn("With-statements now directly support multiple context managers",
DeprecationWarning, 2)
exits = [] exits = []
vars = [] vars = []
exc = (None, None, None) exc = (None, None, None)

View file

@ -9,6 +9,7 @@ import unittest
import threading import threading
from contextlib import * # Tests __all__ from contextlib import * # Tests __all__
from test import test_support from test import test_support
import warnings
class ContextManagerTestCase(unittest.TestCase): class ContextManagerTestCase(unittest.TestCase):
@ -331,7 +332,9 @@ class LockContextTestCase(unittest.TestCase):
# This is needed to make the test actually run under regrtest.py! # This is needed to make the test actually run under regrtest.py!
def test_main(): def test_main():
test_support.run_unittest(__name__) with warnings.catch_warnings():
warnings.simplefilter('ignore')
test_support.run_unittest(__name__)
if __name__ == "__main__": if __name__ == "__main__":
test_main() test_main()

View file

@ -12,7 +12,8 @@ What's New in Python 2.7 alpha 1
Core and Builtins Core and Builtins
----------------- -----------------
- Added support for multiple context managers in the same with statement. - Added support for multiple context managers in the same with-statement.
Deprecated contextlib.nested() which is no longer needed.
- Issue #6101: A new opcode, SETUP_WITH, has been added to speed up the with - Issue #6101: A new opcode, SETUP_WITH, has been added to speed up the with
statement and correctly lookup the __enter__ and __exit__ special methods. statement and correctly lookup the __enter__ and __exit__ special methods.