summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libcontextlib.tex
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2006-04-23 15:14:37 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2006-04-23 15:14:37 (GMT)
commit5ef9d9fdb93cd5bd5179d8ce63c28248a4614d44 (patch)
treeacc99224f4b9d88b717ac0bd667e66b61cd1eb9a /Doc/lib/libcontextlib.tex
parent84faa8577557942706b36068da05abf70b74c6cf (diff)
downloadcpython-5ef9d9fdb93cd5bd5179d8ce63c28248a4614d44.zip
cpython-5ef9d9fdb93cd5bd5179d8ce63c28248a4614d44.tar.gz
cpython-5ef9d9fdb93cd5bd5179d8ce63c28248a4614d44.tar.bz2
Update contextlib documentation to use the same terminology as the module implementation
Diffstat (limited to 'Doc/lib/libcontextlib.tex')
-rw-r--r--Doc/lib/libcontextlib.tex15
1 files changed, 8 insertions, 7 deletions
diff --git a/Doc/lib/libcontextlib.tex b/Doc/lib/libcontextlib.tex
index 46f9cdd..0c02cd1 100644
--- a/Doc/lib/libcontextlib.tex
+++ b/Doc/lib/libcontextlib.tex
@@ -49,8 +49,9 @@ occurred. Thus, you can use a
the error (if any), or ensure that some cleanup takes place.
Note that you can use \code{@contextmanager} to define a context
-manager's \method{__context__} method. This is usually more convenient
-than creating another class just to serve as a context. For example:
+object's \method{__context__} method. This is usually more convenient
+than creating another class just to serve as a context manager.
+For example:
\begin{verbatim}
from __future__ import with_statement
@@ -97,10 +98,10 @@ with A as X:
do_something()
\end{verbatim}
-Note that if one of the nested contexts' \method{__exit__()} method
+Note that if the \method{__exit__()} method of one of the nested context managers
raises an exception, any previous exception state will be lost; the new
-exception will be passed to the outer contexts' \method{__exit__()}
-method(s), if any. In general, \method{__exit__()} methods should avoid
+exception will be passed to the \method{__exit__()} methods of any remaining
+outer context managers. In general, \method{__exit__()} methods should avoid
raising exceptions, and in particular they should not re-raise a
passed-in exception.
\end{funcdesc}
@@ -127,9 +128,9 @@ from __future__ import with_statement
from contextlib import closing
import codecs
-with closing(codecs.open("foo", encoding="utf8")) as f:
+with closing(urllib.urlopen('http://www.python.org')) as f:
for line in f:
- print line.encode("latin1")
+ print line
\end{verbatim}
without needing to explicitly close \code{f}. Even if an error occurs,