[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