[Python-checkins] cpython (merge default -> default): merge

brett.cannon python-checkins at python.org
Fri Nov 22 22:14:26 CET 2013


http://hg.python.org/cpython/rev/830bb51eb31c
changeset:   87375:830bb51eb31c
parent:      87374:cd09766bb18f
parent:      87373:64ff3457010c
user:        Brett Cannon <brett at python.org>
date:        Fri Nov 22 16:14:24 2013 -0500
summary:
  merge

files:
  Doc/glossary.rst                      |   6 +-
  Doc/library/asynchat.rst              |   6 +-
  Doc/library/asyncore.rst              |   6 +-
  Doc/library/pathlib.rst               |   7 +-
  Doc/library/stdtypes.rst              |   3 +
  Lib/distutils/sysconfig.py            |   8 ++
  Lib/distutils/tests/test_sysconfig.py |  43 +++++++++++---
  Lib/test/test_pkgutil.py              |   2 +
  Misc/NEWS                             |  14 +++-
  9 files changed, 71 insertions(+), 24 deletions(-)


diff --git a/Doc/glossary.rst b/Doc/glossary.rst
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -41,7 +41,7 @@
 
    argument
       A value passed to a :term:`function` (or :term:`method`) when calling the
-      function.  There are two types of arguments:
+      function.  There are two kinds of argument:
 
       * :dfn:`keyword argument`: an argument preceded by an identifier (e.g.
         ``name=``) in a function call or passed as a value in a dictionary
@@ -601,7 +601,7 @@
    parameter
       A named entity in a :term:`function` (or method) definition that
       specifies an :term:`argument` (or in some cases, arguments) that the
-      function can accept.  There are five types of parameters:
+      function can accept.  There are five kinds of parameter:
 
       * :dfn:`positional-or-keyword`: specifies an argument that can be passed
         either :term:`positionally <argument>` or as a :term:`keyword argument
@@ -615,6 +615,8 @@
         parameters.  However, some built-in functions have positional-only
         parameters (e.g. :func:`abs`).
 
+      .. _keyword-only_parameter:
+
       * :dfn:`keyword-only`: specifies an argument that can be supplied only
         by keyword.  Keyword-only parameters can be defined by including a
         single var-positional parameter or bare ``*`` in the parameter list
diff --git a/Doc/library/asynchat.rst b/Doc/library/asynchat.rst
--- a/Doc/library/asynchat.rst
+++ b/Doc/library/asynchat.rst
@@ -10,8 +10,10 @@
 
 --------------
 
-Note: This module exists for backwards compatibility only.  For new code we
-recommend using :module:`asyncio`.
+.. note::
+
+   This module exists for backwards compatibility only.  For new code we
+   recommend using :mod:`asyncio`.
 
 This module builds on the :mod:`asyncore` infrastructure, simplifying
 asynchronous clients and servers and making it easier to handle protocols
diff --git a/Doc/library/asyncore.rst b/Doc/library/asyncore.rst
--- a/Doc/library/asyncore.rst
+++ b/Doc/library/asyncore.rst
@@ -13,8 +13,10 @@
 
 --------------
 
-Note: This module exists for backwards compatibility only.  For new code we
-recommend using :module:`asyncio`.
+.. note::
+
+   This module exists for backwards compatibility only.  For new code we
+   recommend using :mod:`asyncio`.
 
 This module provides the basic infrastructure for writing asynchronous  socket
 service clients and servers.
diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst
--- a/Doc/library/pathlib.rst
+++ b/Doc/library/pathlib.rst
@@ -20,7 +20,7 @@
 a :ref:`concrete path <concrete-paths>` for the current platform.
 
 .. note::
-   This module module has been included in the standard library on a
+   This module has been included in the standard library on a
    :term:`provisional basis <provisional package>`. Backwards incompatible
    changes (up to and including removal of the package) may occur if deemed
    necessary by the core developers.
@@ -250,7 +250,7 @@
 Methods and properties
 ^^^^^^^^^^^^^^^^^^^^^^
 
-Pure paths provide the following methods an properties:
+Pure paths provide the following methods and properties:
 
 .. data:: PurePath.drive
 
@@ -454,7 +454,7 @@
 
 .. method:: PurePath.joinpath(*other)
 
-   Calling this method is equivalent to indexing the path with each of
+   Calling this method is equivalent to combining the path with each of
    the *other* arguments in turn::
 
       >>> PurePosixPath('/etc').joinpath('passwd')
@@ -871,4 +871,3 @@
 
    Remove this file or symbolic link.  If the path points to a directory,
    use :func:`Path.rmdir` instead.
-
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -1149,6 +1149,9 @@
       fail, the entire sort operation will fail (and the list will likely be left
       in a partially modified state).
 
+      :meth:`sort` accepts two arguments that can only be passed by keyword
+      (:ref:`keyword-only arguments <keyword-only_parameter>`):
+
       *key* specifies a function of one argument that is used to extract a
       comparison key from each list element (for example, ``key=str.lower``).
       The key corresponding to each item in the list is calculated once and
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -518,6 +518,11 @@
         _config_vars['prefix'] = PREFIX
         _config_vars['exec_prefix'] = EXEC_PREFIX
 
+        # For backward compatibility, see issue19555
+        SO = _config_vars.get('EXT_SUFFIX')
+        if SO is not None:
+            _config_vars['SO'] = SO
+
         # Always convert srcdir to an absolute path
         srcdir = _config_vars.get('srcdir', project_base)
         if os.name == 'posix':
@@ -568,4 +573,7 @@
     returned by 'get_config_vars()'.  Equivalent to
     get_config_vars().get(name)
     """
+    if name == 'SO':
+        import warnings
+        warnings.warn('SO is deprecated, use EXT_SUFFIX', DeprecationWarning)
     return get_config_vars().get(name)
diff --git a/Lib/distutils/tests/test_sysconfig.py b/Lib/distutils/tests/test_sysconfig.py
--- a/Lib/distutils/tests/test_sysconfig.py
+++ b/Lib/distutils/tests/test_sysconfig.py
@@ -1,7 +1,6 @@
 """Tests for distutils.sysconfig."""
 import os
 import shutil
-import test
 import unittest
 
 from distutils import sysconfig
@@ -9,8 +8,7 @@
 from distutils.tests import support
 from test.support import TESTFN, run_unittest
 
-class SysconfigTestCase(support.EnvironGuard,
-                        unittest.TestCase):
+class SysconfigTestCase(support.EnvironGuard, unittest.TestCase):
     def setUp(self):
         super(SysconfigTestCase, self).setUp()
         self.makefile = None
@@ -32,7 +30,6 @@
         self.assertTrue(os.path.isfile(config_h), config_h)
 
     def test_get_python_lib(self):
-        lib_dir = sysconfig.get_python_lib()
         # XXX doesn't work on Linux when Python was never installed before
         #self.assertTrue(os.path.isdir(lib_dir), lib_dir)
         # test for pythonxx.lib?
@@ -67,8 +64,9 @@
             self.assertTrue(os.path.exists(Python_h), Python_h)
             self.assertTrue(sysconfig._is_python_source_dir(srcdir))
         elif os.name == 'posix':
-            self.assertEqual(os.path.dirname(sysconfig.get_makefile_filename()),
-                                 srcdir)
+            self.assertEqual(
+                os.path.dirname(sysconfig.get_makefile_filename()),
+                srcdir)
 
     def test_srcdir_independent_of_cwd(self):
         # srcdir should be independent of the current working directory
@@ -129,10 +127,13 @@
 
     def test_sysconfig_module(self):
         import sysconfig as global_sysconfig
-        self.assertEqual(global_sysconfig.get_config_var('CFLAGS'), sysconfig.get_config_var('CFLAGS'))
-        self.assertEqual(global_sysconfig.get_config_var('LDFLAGS'), sysconfig.get_config_var('LDFLAGS'))
+        self.assertEqual(global_sysconfig.get_config_var('CFLAGS'),
+                         sysconfig.get_config_var('CFLAGS'))
+        self.assertEqual(global_sysconfig.get_config_var('LDFLAGS'),
+                         sysconfig.get_config_var('LDFLAGS'))
 
-    @unittest.skipIf(sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'),'compiler flags customized')
+    @unittest.skipIf(sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'),
+                     'compiler flags customized')
     def test_sysconfig_compiler_vars(self):
         # On OS X, binary installers support extension module building on
         # various levels of the operating system with differing Xcode
@@ -151,9 +152,29 @@
         import sysconfig as global_sysconfig
         if sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'):
             return
-        self.assertEqual(global_sysconfig.get_config_var('LDSHARED'), sysconfig.get_config_var('LDSHARED'))
-        self.assertEqual(global_sysconfig.get_config_var('CC'), sysconfig.get_config_var('CC'))
+        self.assertEqual(global_sysconfig.get_config_var('LDSHARED'),
+                         sysconfig.get_config_var('LDSHARED'))
+        self.assertEqual(global_sysconfig.get_config_var('CC'),
+                         sysconfig.get_config_var('CC'))
 
+    @unittest.skipIf(sysconfig.get_config_var('EXT_SUFFIX') is None,
+                     'EXT_SUFFIX required for this test')
+    def test_SO_deprecation(self):
+        self.assertWarns(DeprecationWarning,
+                         sysconfig.get_config_var, 'SO')
+
+    @unittest.skipIf(sysconfig.get_config_var('EXT_SUFFIX') is None,
+                     'EXT_SUFFIX required for this test')
+    def test_SO_value(self):
+        self.assertEqual(sysconfig.get_config_var('SO'),
+                         sysconfig.get_config_var('EXT_SUFFIX'))
+
+    @unittest.skipIf(sysconfig.get_config_var('EXT_SUFFIX') is None,
+                     'EXT_SUFFIX required for this test')
+    def test_SO_in_vars(self):
+        vars = sysconfig.get_config_vars()
+        self.assertIsNotNone(vars['SO'])
+        self.assertEqual(vars['SO'], vars['EXT_SUFFIX'])
 
 
 def test_suite():
diff --git a/Lib/test/test_pkgutil.py b/Lib/test/test_pkgutil.py
--- a/Lib/test/test_pkgutil.py
+++ b/Lib/test/test_pkgutil.py
@@ -200,6 +200,8 @@
         dirname = self.create_init(pkgname)
         pathitem = os.path.join(dirname, pkgname)
         fullname = '{}.{}'.format(pkgname, modname)
+        sys.modules.pop(fullname, None)
+        sys.modules.pop(pkgname, None)
         try:
             self.create_submodule(dirname, pkgname, modname, 0)
 
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,7 +10,8 @@
 Core and Builtins
 -----------------
 
-- Use the repr of a module name in more places in import, especially exceptions.
+- Use the repr of a module name in more places in import, especially
+  exceptions.
 
 - Issue #19619: str.encode, bytes.decode and bytearray.decode now use an
   internal API to throw LookupError for known non-text encodings, rather
@@ -79,8 +80,8 @@
   CRL enumeration are now two functions. enum_certificates() also returns
   purpose flags as set of OIDs.
 
-- Issue #19555: Restore sysconfig.get_config_var('SO'), with a
-  DeprecationWarning pointing people at $EXT_SUFFIX.
+- Issue #19555: Restore sysconfig.get_config_var('SO'), (and the distutils
+  equivalent) with a DeprecationWarning pointing people at $EXT_SUFFIX.
 
 - Issue #8813: Add SSLContext.verify_flags to change the verification flags
   of the context in order to enable certification revocation list (CRL)
@@ -351,6 +352,13 @@
 
 - Issue 19384: Fix test_py_compile for root user, patch by Claudiu Popa.
 
+Documentation
+-------------
+
+- Issue #18326: Clarify that list.sort's arguments are keyword-only.  Also,
+  attempt to reduce confusion in the glossary by not saying there are
+  different "types" of arguments and parameters.
+
 Build
 -----
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list