[Python-checkins] r77393 - in python/branches/py3k: Doc/library/zipimport.rst Doc/whatsnew/2.7.rst Lib/cmd.py Lib/test/test_cmd.py Lib/test/test_hashlib.py Misc/build.sh Misc/developers.txt setup.py

benjamin.peterson python-checkins at python.org
Sat Jan 9 19:53:07 CET 2010


Author: benjamin.peterson
Date: Sat Jan  9 19:53:06 2010
New Revision: 77393

Log:
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77185 | andrew.kuchling | 2009-12-31 10:17:05 -0600 (Thu, 31 Dec 2009) | 1 line
  
  Add some items
........
  r77186 | benjamin.peterson | 2009-12-31 10:28:24 -0600 (Thu, 31 Dec 2009) | 1 line
  
  update expat comment
........
  r77187 | andrew.kuchling | 2009-12-31 10:38:53 -0600 (Thu, 31 Dec 2009) | 1 line
  
  Add various items
........
  r77188 | benjamin.peterson | 2009-12-31 10:49:37 -0600 (Thu, 31 Dec 2009) | 1 line
  
  add another advancement
........
  r77262 | andrew.kuchling | 2010-01-02 19:15:21 -0600 (Sat, 02 Jan 2010) | 1 line
  
  Add a few items
........
  r77313 | benjamin.peterson | 2010-01-04 18:04:19 -0600 (Mon, 04 Jan 2010) | 1 line
  
  add a test about hashing array.array
........
  r77317 | georg.brandl | 2010-01-05 12:14:52 -0600 (Tue, 05 Jan 2010) | 1 line
  
  Add Stefan.
........
  r77331 | georg.brandl | 2010-01-06 11:43:06 -0600 (Wed, 06 Jan 2010) | 1 line
  
  Small fixes to test_cmd: fix signature of do_shell, remove duplicate import, add option to run the custom Cmd class.
........
  r77332 | georg.brandl | 2010-01-06 12:02:16 -0600 (Wed, 06 Jan 2010) | 7 lines
  
  #5991: let completion for the "help" command include help topics.
  
  This also simplifies the Cmd.get_names() method implementation; it was written
  at a time where dir() didn't consider base class attributes.
........
  r77333 | georg.brandl | 2010-01-06 12:26:08 -0600 (Wed, 06 Jan 2010) | 1 line
  
  #5950: document that zip files with comments are unsupported in zipimport.
........
  r77337 | r.david.murray | 2010-01-06 21:09:08 -0600 (Wed, 06 Jan 2010) | 3 lines
  
  Add -W to the 'basics', 'opt', and 'all' test runs so that we get verbose
  information if a failure happens.
........
  r77338 | r.david.murray | 2010-01-06 22:04:28 -0600 (Wed, 06 Jan 2010) | 2 lines
  
  Fix inadvertent checkin of debug line.
........


Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Doc/library/zipimport.rst
   python/branches/py3k/Doc/whatsnew/2.7.rst
   python/branches/py3k/Lib/cmd.py
   python/branches/py3k/Lib/test/test_cmd.py
   python/branches/py3k/Lib/test/test_hashlib.py
   python/branches/py3k/Misc/build.sh
   python/branches/py3k/Misc/developers.txt
   python/branches/py3k/setup.py

Modified: python/branches/py3k/Doc/library/zipimport.rst
==============================================================================
--- python/branches/py3k/Doc/library/zipimport.rst	(original)
+++ python/branches/py3k/Doc/library/zipimport.rst	Sat Jan  9 19:53:06 2010
@@ -26,6 +26,8 @@
 corresponding :file:`.pyc` or :file:`.pyo` file, meaning that if a ZIP archive
 doesn't contain :file:`.pyc` files, importing may be rather slow.
 
+ZIP archives with an archive comment are currently not supported.
+
 .. seealso::
 
    `PKZIP Application Note <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_

Modified: python/branches/py3k/Doc/whatsnew/2.7.rst
==============================================================================
--- python/branches/py3k/Doc/whatsnew/2.7.rst	(original)
+++ python/branches/py3k/Doc/whatsnew/2.7.rst	Sat Jan  9 19:53:06 2010
@@ -264,7 +264,9 @@
   Windows, and on Unix platforms using the gcc, icc, or suncc
   compilers.  There may be a small number of platforms where correct
   operation of this code cannot be guaranteed, so the code is not
-  used on such systems.
+  used on such systems.  You can find out which code is being used
+  by checking :data:`sys.float_repr_style`,  which will be ``short``
+  if the new code is in use and ``legacy`` if it isn't.
 
   Implemented by Eric Smith and Mark Dickinson, using David Gay's
   :file:`dtoa.c` library; :issue:`7117`.
@@ -358,6 +360,11 @@
   on the :exc:`IOError` exception when trying to open a directory
   on POSIX platforms.  (Noted by Jan Kaliszewski; :issue:`4764`.)
 
+* The Python tokenizer now translates line endings itself, so the
+  :func:`compile` built-in function can now accept code using any
+  line-ending convention.  Additionally, it no longer requires that the
+  code end in a newline.
+
 * Extra parentheses in function definitions are illegal in Python 3.x,
   meaning that you get a syntax error from ``def f((x)): pass``.  In
   Python3-warning mode, Python 2.7 will now warn about this odd usage.
@@ -433,6 +440,8 @@
   Various benchmarks show speedups of between 50% and 150% for long
   integer divisions and modulo operations.
   (Contributed by Mark Dickinson; :issue:`5512`.)
+  Bitwise operations are also significantly faster (initial patch by
+  Gregory Smith; :issue:`1087418`).
 
 * The implementation of ``%`` checks for the left-side operand being
   a Python string and special-cases it; this results in a 1-3%
@@ -444,6 +453,16 @@
   faster bytecode.  (Patch by Antoine Pitrou, back-ported to 2.7
   by Jeffrey Yasskin; :issue:`4715`.)
 
+* Converting an integer or long integer to a decimal string was made
+  faster by special-casing base 10 instead of using a generalized
+  conversion function that supports arbitrary bases.
+  (Patch by Gawain Bolton; :issue:`6713`.)
+
+* The :meth:`rindex`, :meth:`rpartition`, and :meth:`rsplit` methods
+  of string objects now uses a fast reverse-search algorithm instead of
+  a character-by-character scan.  This is often faster by a factor of 10.
+  (Added by Florent Xicluna; :issue:`7462`.)
+
 * The :mod:`pickle` and :mod:`cPickle` modules now automatically
   intern the strings used for attribute names, reducing memory usage
   of the objects resulting from unpickling.  (Contributed by Jake
@@ -453,11 +472,6 @@
   nearly halving the time required to pickle them.
   (Contributed by Collin Winter; :issue:`5670`.)
 
-* Converting an integer or long integer to a decimal string was made
-  faster by special-casing base 10 instead of using a generalized
-  conversion function that supports arbitrary bases.
-  (Patch by Gawain Bolton; :issue:`6713`.)
-
 .. ======================================================================
 
 New and Improved Modules
@@ -602,6 +616,10 @@
   XXX link to  file:///MacDev/svn.python.org/python-trunk/Doc/build/html/distutils/examples.html#reading-the-metadata
   (Contributed by Tarek Ziade; :issue:`7457`.)
 
+  :file:`setup.py` files will now accept a :option:`--no-user-cfg` switch
+  to skip reading the :file:`~/.pydistutils.cfg` file.  (Suggested by
+  by Michael Hoffman, and implemented by Paul Winkler; :issue:`1180`.)
+
 * The :class:`Fraction` class now accepts two rational numbers
   as arguments to its constructor.
   (Implemented by Mark Dickinson; :issue:`5812`.)
@@ -625,14 +643,6 @@
   recorded in a gzipped file by providing an optional timestamp to
   the constructor.  (Contributed by Jacques Frechet; :issue:`4272`.)
 
-* The :mod:`hashlib` module was inconsistent about accepting
-  input as a Unicode object or an object that doesn't support
-  the buffer protocol.  The behavior was different depending on
-  whether :mod:`hashlib` was using an external OpenSSL library
-  or its built-in implementations.  Python 2.7 makes the
-  behavior consistent, always rejecting such objects by raising a
-  :exc:`TypeError`.  (Fixed by Gregory P. Smith; :issue:`3745`.)
-
 * The default :class:`HTTPResponse` class used by the :mod:`httplib` module now
   supports buffering, resulting in much faster reading of HTTP responses.
   (Contributed by Kristjan Valur Jonsson; :issue:`4879`.)
@@ -745,6 +755,10 @@
   to store data.
   (Contributed by Tarek Ziade; :issue:`6693`.)
 
+* The :mod:`socket` module's :class:`SSL` objects now support the
+  buffer API, which fixed a test suite failure.  (Fixed by Antoine Pitrou;
+  :issue:`7133`.)
+
 * The :mod:`SocketServer` module's :class:`TCPServer` class now
   has a :attr:`disable_nagle_algorithm` class attribute.
   The default value is False; if overridden to be True,
@@ -858,6 +872,10 @@
   whether the two values evaluate to the same object or not.
   (Added by Michael Foord; :issue:`2578`.)
 
+* :meth:`assertIsInstance` and :meth:`assertNotIsInstance` check whether
+  the resulting object is an instance of a particular class, or of
+  one of a tuple of classes.  (Added by Georg Brandl; :issue:`7031`.)
+
 * :meth:`assertGreater`, :meth:`assertGreaterEqual`,
   :meth:`assertLess`, and :meth:`assertLessEqual` compare
   two quantities.
@@ -1025,6 +1043,11 @@
   a :ctype:`long`, an *overflow* flag is set and returned to the caller.
   (Contributed by Case Van Horsen; :issue:`7528`.)
 
+* New function: stemming from the rewrite of string-to-float conversion,
+  a new :cfunc:`PyOS_string_to_double` function was added.  The old
+  :cfunc:`PyOS_ascii_strtod` and :cfunc:`PyOS_ascii_atof` functions
+  are now deprecated.
+
 * New macros: the Python header files now define the following macros:
   :cmacro:`Py_ISALNUM`,
   :cmacro:`Py_ISALPHA`,
@@ -1067,10 +1090,30 @@
 
   (Fixed by Thomas Wouters; :issue:`1590864`.)
 
+* The :cfunc:`Py_Finalize` function now calls the internal
+  :func:`threading._shutdown` function; this prevents some exceptions from
+  being raised when an interpreter shuts down.
+  (Patch by Adam Olsen; :issue:`1722344`.)
+
 * Global symbols defined by the :mod:`ctypes` module are now prefixed
   with ``Py``, or with ``_ctypes``.  (Implemented by Thomas
   Heller; :issue:`3102`.)
 
+* New configure option: the :option:`--with-system-expat` switch allows
+  building the :mod:`pyexpat` module to use the system Expat library.
+  (Contributed by Arfrever Frehtes Taifersar Arahesis; :issue:`7609`.)
+
+* New configure option: Compiling Python with the
+  :option:`--with-valgrind` option will now disable the pymalloc
+  allocator, which is difficult for the Valgrind to analyze correctly.
+  Valgrind will therefore be better at detecting memory leaks and
+  overruns. (Contributed by James Henstridge; :issue:`2422`.)
+
+* New configure option: you can now supply no arguments to
+  :option:`--with-dbmliborder=` in order to build none of the various
+  DBM modules.  (Added by Arfrever Frehtes Taifersar Arahesis;
+  :issue:`6491`.)
+
 * The :program:`configure` script now checks for floating-point rounding bugs
   on certain 32-bit Intel chips and defines a :cmacro:`X87_DOUBLE_ROUNDING`
   preprocessor definition.  No code currently uses this definition,
@@ -1083,11 +1126,6 @@
 * The build process now supports Subversion 1.7.  (Contributed by
   Arfrever Frehtes Taifersar Arahesis; :issue:`6094`.)
 
-* Compiling Python with the :option:`--with-valgrind` option will now
-  disable the pymalloc allocator, which is difficult for the Valgrind to
-  analyze correctly.  Valgrind will therefore be better at detecting
-  memory leaks and overruns. (Contributed by James Henstridge; :issue:`2422`.)
-
 
 .. ======================================================================
 
@@ -1139,12 +1177,14 @@
   The :option:`-r` option also reports the seed that was used
   (Added by Collin Winter.)
 
-* The :file:`regrtest.py` script now takes a :option:`-j` switch
-  that takes an integer specifying how many tests run in parallel. This
+* Another :file:`regrtest.py` switch is :option:`-j`, which
+  takes an integer specifying how many tests run in parallel. This
   allows reducing the total runtime on multi-core machines.
   This option is compatible with several other options, including the
   :option:`-R` switch which is known to produce long runtimes.
-  (Added by Antoine Pitrou, :issue:`6152`.)
+  (Added by Antoine Pitrou, :issue:`6152`.)  This can also be used
+  with a new :option:`-F` switch that runs selected tests in a loop
+  until they fail.  (Added by Antoine Pitrou; :issue:`7312`.)
 
 .. ======================================================================
 
@@ -1175,6 +1215,17 @@
   nothing when a negative length is requested, as other file-like
   objects do.  (:issue:`7348`).
 
+For C extensions:
+
+* C extensions that use integer format codes with the ``PyArg_Parse*``
+  family of functions will now raise a :exc:`TypeError` exception
+  instead of triggering a :exc:`DeprecationWarning` (:issue:`5080`).
+
+* Use the new :cfunc:`PyOS_string_to_double` function instead of the old
+  :cfunc:`PyOS_ascii_strtod` and :cfunc:`PyOS_ascii_atof` functions,
+  which are now deprecated.
+
+
 .. ======================================================================
 
 

Modified: python/branches/py3k/Lib/cmd.py
==============================================================================
--- python/branches/py3k/Lib/cmd.py	(original)
+++ python/branches/py3k/Lib/cmd.py	Sat Jan  9 19:53:06 2010
@@ -278,19 +278,15 @@
             return None
 
     def get_names(self):
-        # Inheritance says we have to look in class and
-        # base classes; order is not important.
-        names = []
-        classes = [self.__class__]
-        while classes:
-            aclass = classes.pop(0)
-            if aclass.__bases__:
-                classes = classes + list(aclass.__bases__)
-            names = names + dir(aclass)
-        return names
+        # This method used to pull in base class attributes
+        # at a time dir() didn't do it yet.
+        return dir(self.__class__)
 
     def complete_help(self, *args):
-        return self.completenames(*args)
+        commands = set(self.completenames(*args))
+        topics = set(a[5:] for a in self.get_names()
+                     if a.startswith('help_' + args[0]))
+        return list(commands | topics)
 
     def do_help(self, arg):
         if arg:

Modified: python/branches/py3k/Lib/test/test_cmd.py
==============================================================================
--- python/branches/py3k/Lib/test/test_cmd.py	(original)
+++ python/branches/py3k/Lib/test/test_cmd.py	Sat Jan  9 19:53:06 2010
@@ -60,15 +60,17 @@
     >>> mycmd.completenames("12")
     []
     >>> mycmd.completenames("help")
-    ['help', 'help']
+    ['help']
 
     Test for the function complete_help():
     >>> mycmd.complete_help("a")
     ['add']
     >>> mycmd.complete_help("he")
-    ['help', 'help']
+    ['help']
     >>> mycmd.complete_help("12")
     []
+    >>> sorted(mycmd.complete_help(""))
+    ['add', 'exit', 'help', 'shell']
 
     Test for the function do_help():
     >>> mycmd.do_help("testet")
@@ -144,7 +146,7 @@
     def complete_command(self):
         print("complete command")
 
-    def do_shell(self):
+    def do_shell(self, s):
         pass
 
     def do_add(self, s):
@@ -171,6 +173,7 @@
     support.run_doctest(test_cmd, verbose)
 
 def test_coverage(coverdir):
+    import trace
     tracer=trace.Trace(ignoredirs=[sys.prefix, sys.exec_prefix,],
                         trace=0, count=1)
     tracer.run('reload(cmd);test_main()')
@@ -181,5 +184,7 @@
 if __name__ == "__main__":
     if "-c" in sys.argv:
         test_coverage('/tmp/cmd.cover')
+    elif "-i" in sys.argv:
+        samplecmdclass().cmdloop()
     else:
         test_main()

Modified: python/branches/py3k/Lib/test/test_hashlib.py
==============================================================================
--- python/branches/py3k/Lib/test/test_hashlib.py	(original)
+++ python/branches/py3k/Lib/test/test_hashlib.py	Sat Jan  9 19:53:06 2010
@@ -6,8 +6,10 @@
 #  Licensed to PSF under a Contributor Agreement.
 #
 
+import array
 import hashlib
 from io import StringIO
+import itertools
 import sys
 try:
     import threading
@@ -93,6 +95,13 @@
 
         super(HashLibTestCase, self).__init__(*args, **kwargs)
 
+    def test_hash_array(self):
+        a = array.array("b", range(10))
+        constructors = self.constructors_to_test.values()
+        for cons in itertools.chain.from_iterable(constructors):
+            c = cons(a)
+            c.hexdigest()
+
     def test_unknown_hash(self):
         try:
             hashlib.new('spam spam spam spam spam')

Modified: python/branches/py3k/Misc/build.sh
==============================================================================
--- python/branches/py3k/Misc/build.sh	(original)
+++ python/branches/py3k/Misc/build.sh	Sat Jan  9 19:53:06 2010
@@ -214,7 +214,7 @@
             ## make and run basic tests
             F=make-test.out
             start=`current_time`
-            $PYTHON $REGRTEST_ARGS -u urlfetch >& build/$F
+            $PYTHON $REGRTEST_ARGS -W -u urlfetch >& build/$F
             NUM_FAILURES=`count_failures build/$F`
             place_summary_first build/$F
             update_status "Testing basics ($NUM_FAILURES failures)" "$F" $start
@@ -222,7 +222,7 @@
 
             F=make-test-opt.out
             start=`current_time`
-            $PYTHON -O $REGRTEST_ARGS -u urlfetch >& build/$F
+            $PYTHON -O $REGRTEST_ARGS -W -u urlfetch >& build/$F
             NUM_FAILURES=`count_failures build/$F`
             place_summary_first build/$F
             update_status "Testing opt ($NUM_FAILURES failures)" "$F" $start
@@ -245,7 +245,7 @@
             start=`current_time`
             ## skip curses when running from cron since there's no terminal
             ## skip sound since it's not setup on the PSF box (/dev/dsp)
-            $PYTHON $REGRTEST_ARGS -uall -x test_curses test_linuxaudiodev test_ossaudiodev $_ALWAYS_SKIP >& build/$F
+            $PYTHON $REGRTEST_ARGS -W -uall -x test_curses test_linuxaudiodev test_ossaudiodev &_ALWAYS_SKIP >& build/$F
             NUM_FAILURES=`count_failures build/$F`
             place_summary_first build/$F
             update_status "Testing all except curses and sound ($NUM_FAILURES failures)" "$F" $start

Modified: python/branches/py3k/Misc/developers.txt
==============================================================================
--- python/branches/py3k/Misc/developers.txt	(original)
+++ python/branches/py3k/Misc/developers.txt	Sat Jan  9 19:53:06 2010
@@ -20,6 +20,9 @@
 Permissions History
 -------------------
 
+- Stefan Krah was given SVN access on January 5 2010 by GFB, at
+  suggestion of Mark Dickinson, for work on the decimal module.
+
 - Doug Hellmann was given SVN access on September 19 2009 by GFB, at
   suggestion of Jesse Noller, for documentation work.
 

Modified: python/branches/py3k/setup.py
==============================================================================
--- python/branches/py3k/setup.py	(original)
+++ python/branches/py3k/setup.py	Sat Jan  9 19:53:06 2010
@@ -1108,12 +1108,12 @@
 
         # Interface to the Expat XML parser
         #
-        # Expat was written by James Clark and is now maintained by a
-        # group of developers on SourceForge; see www.libexpat.org for
-        # more information.  The pyexpat module was written by Paul
-        # Prescod after a prototype by Jack Jansen.  The Expat source
-        # is included in Modules/expat/.  Usage of a system
-        # shared libexpat.so/expat.dll is not advised.
+        # Expat was written by James Clark and is now maintained by a group of
+        # developers on SourceForge; see www.libexpat.org for more information.
+        # The pyexpat module was written by Paul Prescod after a prototype by
+        # Jack Jansen.  The Expat source is included in Modules/expat/.  Usage
+        # of a system shared libexpat.so is possible with --with-system-expat
+        # cofigure option.
         #
         # More information on Expat can be found at www.libexpat.org.
         #


More information about the Python-checkins mailing list