[Python-checkins] cpython (merge 3.2 -> default): Merge fixes for #1326113 and #12297 from 3.2

eric.araujo python-checkins at python.org
Wed Feb 15 17:15:09 CET 2012


http://hg.python.org/cpython/rev/f7163afecb97
changeset: 74949:f7163afecb97
parent: 74942:491f909f19fb
parent: 74948:55fc092dad72
user: Éric Araujo <merwok at netwok.org>
date: Wed Feb 15 17:13:26 2012 +0100
summary:
 Merge fixes for #1326113 and #12297 from 3.2
files:
 Doc/library/atexit.rst | 17 +++++++-------
 Lib/distutils/command/build_ext.py | 3 +-
 Lib/distutils/tests/test_build_ext.py | 12 +++++-----
 Misc/NEWS | 3 ++
 4 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/Doc/library/atexit.rst b/Doc/library/atexit.rst
--- a/Doc/library/atexit.rst
+++ b/Doc/library/atexit.rst
@@ -22,7 +22,8 @@
 
 Register *func* as a function to be executed at termination. Any optional
 arguments that are to be passed to *func* must be passed as arguments to
- :func:`register`.
+ :func:`register`. It is possible to register the same function and arguments
+ more than once.
 
 At normal program termination (for instance, if :func:`sys.exit` is called or
 the main module's execution completes), all functions registered are called in
@@ -35,15 +36,17 @@
 saved. After all exit handlers have had a chance to run the last exception to
 be raised is re-raised.
 
- This function returns *func* which makes it possible to use it as a decorator
- without binding the original name to ``None``.
+ This function returns *func*, which makes it possible to use it as a
+ decorator.
 
 
 .. function:: unregister(func)
 
- Remove a function *func* from the list of functions to be run at interpreter-
+ Remove *func* from the list of functions to be run at interpreter
 shutdown. After calling :func:`unregister`, *func* is guaranteed not to be
- called when the interpreter shuts down.
+ called when the interpreter shuts down, even if it was registered more than
+ once. :func:`unregister` silently does nothing if *func* was not previously
+ registered.
 
 
 .. seealso::
@@ -100,6 +103,4 @@
 def goodbye():
 print("You are now leaving the Python sector.")
 
-This obviously only works with functions that don't take arguments.
-
-
+This only works with functions that can be called without arguments.
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -165,8 +165,7 @@
 if plat_py_include != py_include:
 self.include_dirs.append(plat_py_include)
 
- if isinstance(self.libraries, str):
- self.libraries = [self.libraries]
+ self.ensure_string_list('libraries')
 
 # Life is easier if we're not forever checking for None, so
 # simplify these options to empty lists if unset
diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py
--- a/Lib/distutils/tests/test_build_ext.py
+++ b/Lib/distutils/tests/test_build_ext.py
@@ -178,21 +178,21 @@
 # make sure cmd.libraries is turned into a list
 # if it's a string
 cmd = build_ext(dist)
- cmd.libraries = 'my_lib'
+ cmd.libraries = 'my_lib, other_lib lastlib'
 cmd.finalize_options()
- self.assertEqual(cmd.libraries, ['my_lib'])
+ self.assertEqual(cmd.libraries, ['my_lib', 'other_lib', 'lastlib'])
 
 # make sure cmd.library_dirs is turned into a list
 # if it's a string
 cmd = build_ext(dist)
- cmd.library_dirs = 'my_lib_dir'
+ cmd.library_dirs = 'my_lib_dir%sother_lib_dir' % os.pathsep
 cmd.finalize_options()
- self.assertTrue('my_lib_dir' in cmd.library_dirs)
+ self.assertEqual(cmd.library_dirs, ['my_lib_dir', 'other_lib_dir'])
 
 # make sure rpath is turned into a list
- # if it's a list of os.pathsep's paths
+ # if it's a string
 cmd = build_ext(dist)
- cmd.rpath = os.pathsep.join(['one', 'two'])
+ cmd.rpath = 'one%stwo' % os.pathsep
 cmd.finalize_options()
 self.assertEqual(cmd.rpath, ['one', 'two'])
 
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -472,6 +472,9 @@
 - Issue #13015: Fix a possible reference leak in defaultdict.__repr__.
 Patch by Suman Saha.
 
+- Issue #1326113: distutils' build_ext command --libraries option now
+ correctly parses multiple values separated by whitespace or commas.
+
 - Issue #10287: nntplib now queries the server's CAPABILITIES first before
 sending MODE READER, and only sends it if not already in READER mode.
 Patch by Hynek Schlawack.
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /