summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew M. Kuchling <amk@amk.ca>2002-11-13 13:24:41 (GMT)
committerAndrew M. Kuchling <amk@amk.ca>2002-11-13 13:24:41 (GMT)
commit8a61f499dcb6ea90cb6f283c13e9de53485dfb47 (patch)
treede99311a1a7ed8cf331bfc4b8063d583cbc638a2
parente1172588e608858d26e9de328309fe924c16081c (diff)
downloadcpython-8a61f499dcb6ea90cb6f283c13e9de53485dfb47.zip
cpython-8a61f499dcb6ea90cb6f283c13e9de53485dfb47.tar.gz
cpython-8a61f499dcb6ea90cb6f283c13e9de53485dfb47.tar.bz2
Fill out the 'Porting' section
Add random.sample()
-rw-r--r--Doc/whatsnew/whatsnew23.tex64
1 files changed, 62 insertions, 2 deletions
diff --git a/Doc/whatsnew/whatsnew23.tex b/Doc/whatsnew/whatsnew23.tex
index 244d7ca..27b67e5 100644
--- a/Doc/whatsnew/whatsnew23.tex
+++ b/Doc/whatsnew/whatsnew23.tex
@@ -943,7 +943,7 @@ property is O(lg~n). (See
\url{http://www.nist.gov/dads/HTML/priorityque.html} for more
information about the priority queue data structure.)
-The Python \module{heapq} module provides \function{heappush()} and
+The \module{heapq} module provides \function{heappush()} and
\function{heappop()} functions for adding and removing items while
maintaining the heap property on top of some other mutable Python
sequence type. For example:
@@ -1000,6 +1000,31 @@ your character data handler and therefore faster performance. Setting
the parser object's \member{buffer_text} attribute to \constant{True}
will enable buffering.
+\item The \function{sample(\var{population}, \var{k})} function was
+added to the \module{random} module. \var{population} is a sequence
+containing the elements of a population, and \function{sample()}
+chooses \var{k} elements from the population without replacing chosen
+elements. \var{k} can be any value up to \code{len(\var{population})}.
+For example:
+
+\begin{verbatim}
+>>> pop = range(6) ; pop
+[0, 1, 2, 3, 4, 5]
+>>> random.sample(pop, 3) # Choose three elements
+[0, 4, 3]
+>>> random.sample(pop, 6) # Choose all six elements
+[4, 5, 0, 3, 2, 1]
+>>> random.sample(pop, 6) # Choose six again
+[4, 2, 3, 0, 5, 1]
+>>> random.sample(pop, 7) # Can't choose more than six
+Traceback (most recent call last):
+ File ``<stdin>'', line 1, in ?
+ File ``/home/amk/src/sf/python/dist/src/Lib/random.py'', line 396, in sample
+ raise ValueError, ``sample larger than population''
+ValueError: sample larger than population
+>>>
+\end{verbatim}
+
\item The \module{readline} module also gained a number of new
functions: \function{get_history_item()},
\function{get_current_history_length()}, and \function{redisplay()}.
@@ -1338,7 +1363,42 @@ under ``python -O'' in earlier versions of Python.
%======================================================================
\section{Porting to Python 2.3}
-XXX write this
+This section lists changes that may actually require changes to your code:
+
+\begin{itemize}
+
+\item \keyword{yield} is now always a keyword; if it's used as a
+variable name in your code, a different name must be chosen.
+
+\item You can no longer disable assertions by assigning to \code{__debug__}.
+
+\item Using \code{None} as a variable name will now result in a
+\exception{SyntaxWarning} warning.
+
+\item Names of extension types defined by the modules included with
+Python now contain the module and a \samp{.} in front of the type
+name.
+
+\item For strings \var{X} and \var{Y}, \code{\var{X} in \var{Y}} now works
+if \var{X} is more than one character long.
+
+\item The Distutils \function{setup()} function has gained various new
+keyword arguments such as \samp{depends}. Old versions of the
+Distutils will abort if passed unknown keywords. The fix is to check
+for the presence of the new \function{get_distutil_options()} function
+in your \file{setup.py} if you want to only support the new keywords
+with a version of the Distutils that supports them:
+
+\begin{verbatim}
+from distutils import core
+
+kw = {'sources': 'foo.c', ...}
+if hasattr(core, 'get_distutil_options'):
+ kw['depends'] = ['foo.h']
+ext = Extension(**kw)
+\end{verbatim}
+
+\end{itemize}
%======================================================================