summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2013-11-22 21:14:24 (GMT)
committerBrett Cannon <brett@python.org>2013-11-22 21:14:24 (GMT)
commit02ac74eeccf41127faba81d4d6e3e835c5e5faee (patch)
treec9b5f5553d4461df1765ed2d1b7dcb8615b943fd
parentfe77f4ebb554bf40b5c1810aeddc2c240aaef431 (diff)
parent2f66ffa652e1695d39b6c9ba42c9b97da7a7f962 (diff)
downloadcpython-02ac74eeccf41127faba81d4d6e3e835c5e5faee.zip
cpython-02ac74eeccf41127faba81d4d6e3e835c5e5faee.tar.gz
cpython-02ac74eeccf41127faba81d4d6e3e835c5e5faee.tar.bz2
merge
-rw-r--r--Doc/glossary.rst6
-rw-r--r--Doc/library/asynchat.rst6
-rw-r--r--Doc/library/asyncore.rst6
-rw-r--r--Doc/library/pathlib.rst7
-rw-r--r--Doc/library/stdtypes.rst3
-rw-r--r--Lib/distutils/sysconfig.py8
-rw-r--r--Lib/distutils/tests/test_sysconfig.py45
-rw-r--r--Lib/test/test_pkgutil.py2
-rw-r--r--Misc/NEWS14
9 files changed, 72 insertions, 25 deletions
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index 5fcaa85..df47051 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -41,7 +41,7 @@ Glossary
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 @@ Glossary
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 @@ Glossary
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
index 7050f0c..7b81074 100644
--- 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
index d0a30f8..61079c5 100644
--- 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
index 04f6c42..7582315 100644
--- a/Doc/library/pathlib.rst
+++ b/Doc/library/pathlib.rst
@@ -20,7 +20,7 @@ The main point of entry is the :class:`Path` class, which will instantiate
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 @@ property:
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 @@ Pure paths provide the following methods an properties:
.. 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 @@ call fails (for example because the path doesn't exist):
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
index 8c11c1b..6635b0e 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -1149,6 +1149,9 @@ application).
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
index d9c9d65..392d63d 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -518,6 +518,11 @@ def get_config_vars(*args):
_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 @@ def get_config_var(name):
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
index 07812d8..e14646e 100644
--- 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.ccompiler import get_default_compiler
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 @@ class SysconfigTestCase(support.EnvironGuard,
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 @@ class SysconfigTestCase(support.EnvironGuard,
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 @@ class SysconfigTestCase(support.EnvironGuard,
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 @@ class SysconfigTestCase(support.EnvironGuard,
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
index 52dd0bc..d73b211 100644
--- a/Lib/test/test_pkgutil.py
+++ b/Lib/test/test_pkgutil.py
@@ -200,6 +200,8 @@ class ExtendPathTests(unittest.TestCase):
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
index 27c31df..f3ad949 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,7 +10,8 @@ Projected release date: 2013-11-24
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 @@ Library
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 @@ Tests
- 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
-----