summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2013-10-13 00:04:20 (GMT)
committerChristian Heimes <christian@cheimes.de>2013-10-13 00:04:20 (GMT)
commitf1dc3ee16dbc81d7f91fd844c5dfcb0fd1a06500 (patch)
treef29fbbb86d3b40e738c2ab220d0a27cacf66d383
parentad9c9bb5a93fe922dd5768ab4e84eed96d72083c (diff)
downloadcpython-f1dc3ee16dbc81d7f91fd844c5dfcb0fd1a06500.zip
cpython-f1dc3ee16dbc81d7f91fd844c5dfcb0fd1a06500.tar.gz
cpython-f1dc3ee16dbc81d7f91fd844c5dfcb0fd1a06500.tar.bz2
Issue #19218: Rename collections.abc to _collections_abc in order to speed up interpreter start
-rw-r--r--Doc/library/collections.abc.rst2
-rw-r--r--Lib/_collections_abc.py (renamed from Lib/collections/abc.py)0
-rw-r--r--Lib/collections/__init__.py6
-rw-r--r--Lib/os.py2
-rw-r--r--Lib/random.py2
-rw-r--r--Lib/test/test_site.py5
-rw-r--r--Misc/NEWS3
7 files changed, 14 insertions, 6 deletions
diff --git a/Doc/library/collections.abc.rst b/Doc/library/collections.abc.rst
index 06dfe80..09fa4c7 100644
--- a/Doc/library/collections.abc.rst
+++ b/Doc/library/collections.abc.rst
@@ -15,7 +15,7 @@
import itertools
__name__ = '<doctest>'
-**Source code:** :source:`Lib/collections/abc.py`
+**Source code:** :source:`Lib/_collections_abc.py`
--------------
diff --git a/Lib/collections/abc.py b/Lib/_collections_abc.py
index d19e592..d19e592 100644
--- a/Lib/collections/abc.py
+++ b/Lib/_collections_abc.py
diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py
index 0f19f30..02bdc57 100644
--- a/Lib/collections/__init__.py
+++ b/Lib/collections/__init__.py
@@ -3,9 +3,9 @@ __all__ = ['deque', 'defaultdict', 'namedtuple', 'UserDict', 'UserList',
# For backwards compatibility, continue to make the collections ABCs
# available through the collections module.
-from collections.abc import *
-import collections.abc
-__all__ += collections.abc.__all__
+from _collections_abc import *
+import _collections_abc
+__all__ += _collections_abc.__all__
from _collections import deque, defaultdict
from operator import itemgetter as _itemgetter, eq as _eq
diff --git a/Lib/os.py b/Lib/os.py
index 1b1ce18..e9880a1 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -631,7 +631,7 @@ def get_exec_path(env=None):
# Change environ to automatically call putenv(), unsetenv if they exist.
-from collections.abc import MutableMapping
+from _collections_abc import MutableMapping
class _Environ(MutableMapping):
def __init__(self, data, encodekey, decodekey, encodevalue, decodevalue, putenv, unsetenv):
diff --git a/Lib/random.py b/Lib/random.py
index 4a9fbd1..808175a 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -41,7 +41,7 @@ from types import MethodType as _MethodType, BuiltinMethodType as _BuiltinMethod
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin
from os import urandom as _urandom
-from collections.abc import Set as _Set, Sequence as _Sequence
+from _collections_abc import Set as _Set, Sequence as _Sequence
from hashlib import sha512 as _sha512
__all__ = ["Random","seed","random","uniform","randint","choice","sample",
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
index 20e1868..3ada0a6 100644
--- a/Lib/test/test_site.py
+++ b/Lib/test/test_site.py
@@ -445,6 +445,11 @@ class StartupImportTests(unittest.TestCase):
self.assertNotIn('locale', modules, stderr)
# http://bugs.python.org/issue19209
self.assertNotIn('copyreg', modules, stderr)
+ # http://bugs.python.org/issue19218>
+ collection_mods = {'_collections', 'collections', 'functools',
+ 'heapq', 'itertools', 'keyword', 'operator',
+ 'reprlib', 'types', 'weakref'}
+ self.assertFalse(modules.intersection(re_mods), stderr)
if __name__ == "__main__":
diff --git a/Misc/NEWS b/Misc/NEWS
index 68df359..ded3bb4 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -42,6 +42,9 @@ Core and Builtins
Library
-------
+- Issue #19218: Rename collections.abc to _collections_abc in order to
+ speed up interpreter start.
+
- Issue #18582: Add 'pbkdf2_hmac' to the hashlib module. It implements PKCS#5
password-based key derivation functions with HMAC as pseudorandom function.