summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2009-07-01 01:32:12 (GMT)
committerRaymond Hettinger <python@rcn.com>2009-07-01 01:32:12 (GMT)
commit9c4d0edd645764844b53fc634fb11a9bf4683e87 (patch)
tree8079bb5cf382e3035783d8a6999d4754555d8a3d /Doc
parent6e5b0a1140536f55ffb59cac255b12f9db1597a6 (diff)
downloadcpython-9c4d0edd645764844b53fc634fb11a9bf4683e87.zip
cpython-9c4d0edd645764844b53fc634fb11a9bf4683e87.tar.gz
cpython-9c4d0edd645764844b53fc634fb11a9bf4683e87.tar.bz2
Removed contextlib.nested()
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/contextlib.rst49
1 files changed, 0 insertions, 49 deletions
diff --git a/Doc/library/contextlib.rst b/Doc/library/contextlib.rst
index ca37f0f..2ee9e8d 100644
--- a/Doc/library/contextlib.rst
+++ b/Doc/library/contextlib.rst
@@ -52,55 +52,6 @@ Functions provided:
immediately following the :keyword:`with` statement.
-.. function:: nested(mgr1[, mgr2[, ...]])
-
- Combine multiple context managers into a single nested context manager.
-
- This function has been deprecated in favour of the multiple manager form
- of the :keyword:`with` statement.
-
- The one advantage of this function over the multiple manager form of the
- :keyword:`with` statement is that argument unpacking allows it to be
- used with a variable number of context managers as follows::
-
- from contextlib import nested
-
- with nested(*managers):
- do_something()
-
- Note that if the :meth:`__exit__` method of one of the nested context managers
- indicates an exception should be suppressed, no exception information will be
- passed to any remaining outer context managers. Similarly, if the
- :meth:`__exit__` method of one of the nested managers raises an exception, any
- previous exception state will be lost; the new exception will be passed to the
- :meth:`__exit__` methods of any remaining outer context managers. In general,
- :meth:`__exit__` methods should avoid raising exceptions, and in particular they
- should not re-raise a passed-in exception.
-
- This function has two major quirks that have led to it being deprecated. Firstly,
- as the context managers are all constructed before the function is invoked, the
- :meth:`__new__` and :meth:`__init__` methods of the inner context managers are
- not actually covered by the scope of the outer context managers. That means, for
- example, that using :func:`nested` to open two files is a programming error as the
- first file will not be closed promptly if an exception is thrown when opening
- the second file.
-
- Secondly, if the :meth:`__enter__` method of one of the inner context managers
- raises an exception that is caught and suppressed by the :meth:`__exit__` method
- of one of the outer context managers, this construct will raise
- :exc:`RuntimeError` rather than skipping the body of the :keyword:`with`
- statement.
-
- Developers that need to support nesting of a variable number of context managers
- can either use the :mod:`warnings` module to suppress the DeprecationWarning
- raised by this function or else use this function as a model for an application
- specific implementation.
-
- .. deprecated:: 3.1
- The with-statement now supports this functionality directly (without the
- confusing error prone quirks).
-
-
.. function:: closing(thing)
Return a context manager that closes *thing* upon completion of the block. This