[Python-checkins] r45562 - python/trunk/Doc/whatsnew/whatsnew25.tex
andrew.kuchling
python-checkins at python.org
Wed Apr 19 14:55:39 CEST 2006
Author: andrew.kuchling
Date: Wed Apr 19 14:55:39 2006
New Revision: 45562
Modified:
python/trunk/Doc/whatsnew/whatsnew25.tex
Log:
Write datetime.strptime() item; show use of @contextmanager in defining __context__ methods; minor edits; add two names
Modified: python/trunk/Doc/whatsnew/whatsnew25.tex
==============================================================================
--- python/trunk/Doc/whatsnew/whatsnew25.tex (original)
+++ python/trunk/Doc/whatsnew/whatsnew25.tex Wed Apr 19 14:55:39 2006
@@ -145,7 +145,7 @@
\begin{seealso}
\seepep{308}{Conditional Expressions}{PEP written by
-Guido van Rossum and Raymond D. Hettinger; implemented by Thomas
+Guido van~Rossum and Raymond D. Hettinger; implemented by Thomas
Wouters.}
\end{seealso}
@@ -549,7 +549,7 @@
therefore been removed. This seems like a minor bit of language
trivia, but using generators and \code{try...finally} is actually
necessary in order to implement the \keyword{with} statement
-described by PEP 343. We'll look at this new statement in the following
+described by PEP 343. I'll look at this new statement in the following
section.
Another even more esoteric effect of this change: previously, the
@@ -560,7 +560,7 @@
\begin{seealso}
\seepep{342}{Coroutines via Enhanced Generators}{PEP written by
-Guido van Rossum and Phillip J. Eby;
+Guido van~Rossum and Phillip J. Eby;
implemented by Phillip J. Eby. Includes examples of
some fancier uses of generators as coroutines.}
@@ -581,10 +581,10 @@
uses \code{try...finally} blocks to ensure that clean-up code is
executed.
-First, I'll discuss the statement as it will commonly be used, and
-then a subsection will examine the implementation details and how to
-write objects (called ``context managers'') that can be used with this
-statement.
+In this section, I'll discuss the statement as it will commonly be
+used. In the next section, I'll examine the implementation details
+and show how to write objects called ``context managers'' and
+``contexts'' for use with this statement.
The \keyword{with} statement is a new control-flow structure whose
basic structure is:
@@ -830,10 +830,29 @@
...
\end{verbatim}
-There's a \function{nested(\var{mgr1}, \var{mgr2}, ...)} manager that
-combines a number of context managers so you don't need to write
-nested \keyword{with} statements. This example
-both uses a database transaction and also acquires a thread lock:
+You can also use this decorator to write the \method{__context__()} method
+for a class without creating a new class for the context:
+
+\begin{verbatim}
+class DatabaseConnection:
+
+ @contextmanager
+ def __context__ (self):
+ cursor = self.cursor()
+ try:
+ yield cursor
+ except:
+ self.rollback()
+ raise
+ else:
+ self.commit()
+\end{verbatim}
+
+
+There's a \function{nested(\var{mgr1}, \var{mgr2}, ...)} manager that
+combines a number of context managers so you don't need to write
+nested \keyword{with} statements. This example statement does two
+things, starting a database transaction and acquiring a thread lock:
\begin{verbatim}
lock = threading.Lock()
@@ -853,8 +872,8 @@
\begin{seealso}
-\seepep{343}{The ``with'' statement}{PEP written by Guido van Rossum
-and Nick Coghlan; implemented by Mike Bland, Guido van Rossum, and
+\seepep{343}{The ``with'' statement}{PEP written by Guido van~Rossum
+and Nick Coghlan; implemented by Mike Bland, Guido van~Rossum, and
Neal Norwitz. The PEP shows the code generated for a \keyword{with}
statement, which can be helpful in learning how context managers
work.}
@@ -926,7 +945,7 @@
\begin{seealso}
\seepep{352}{Required Superclass for Exceptions}{PEP written by
-Brett Cannon and Guido van Rossum; implemented by Brett Cannon.}
+Brett Cannon and Guido van~Rossum; implemented by Brett Cannon.}
\end{seealso}
@@ -1174,9 +1193,6 @@
% the cPickle module no longer accepts the deprecated None option in the
% args tuple returned by __reduce__().
-% XXX datetime.datetime() now has a strptime class method which can be used to
-% create datetime object using a string and format.
-
% XXX fileinput: opening hook used to control how files are opened.
% .input() now has a mode parameter
% now has a fileno() function
@@ -1250,6 +1266,19 @@
\member{line_num} is not the same as the number of records read.
(Contributed by Skip Montanaro and Andrew McNamara.)
+\item The \class{datetime} class in the \module{datetime}
+module now has a \method{strptime(\var{string}, \var{format})}
+method for parsing date strings, contributed by Josh Spoerri.
+It uses the same format characters as \function{time.strptime()} and
+\function{time.strftime()}:
+
+\begin{verbatim}
+from datetime import datetime
+
+ts = datetime.strptime('10:13:15 2006-03-07',
+ '%H:%M:%S %Y-%m-%d')
+\end{verbatim}
+
\item In the \module{gc} module, the new \function{get_count()} function
returns a 3-tuple containing the current collection counts for the
three GC generations. This is accounting information for the garbage
@@ -1943,6 +1972,7 @@
The author would like to thank the following people for offering
suggestions, corrections and assistance with various drafts of this
-article: Martin von~L\"owis, Mike Rovner, Thomas Wouters.
+article: Phillip J. Eby, Kent Johnson, Martin von~L\"owis, Mike
+Rovner, Thomas Wouters.
\end{document}
More information about the Python-checkins
mailing list