https://github.com/python/cpython/commit/7258dbc51803e27c1fec7b2a402e297187de3b95
commit: 7258dbc51803e27c1fec7b2a402e297187de3b95
branch: main
author: Raymond Hettinger <[email protected]>
committer: rhettinger <[email protected]>
date: 2026-02-21T08:14:53-06:00
summary:

Use `lazy` imports in `collections` (gh-145054)

files:
M Lib/collections/__init__.py

diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py
index 55ffc36ea5b0c7..2eee4c70955513 100644
--- a/Lib/collections/__init__.py
+++ b/Lib/collections/__init__.py
@@ -32,6 +32,8 @@
 _sys.modules['collections.abc'] = _collections_abc
 abc = _collections_abc
 
+lazy from copy import copy as _copy
+lazy from heapq import nlargest as _nlargest
 from itertools import chain as _chain
 from itertools import repeat as _repeat
 from itertools import starmap as _starmap
@@ -59,8 +61,6 @@
 except ImportError:
     pass
 
-heapq = None  # Lazily imported
-
 
 
################################################################################
 ### OrderedDict
@@ -634,12 +634,7 @@ def most_common(self, n=None):
         if n is None:
             return sorted(self.items(), key=_itemgetter(1), reverse=True)
 
-        # Lazy import to speedup Python startup time
-        global heapq
-        if heapq is None:
-            import heapq
-
-        return heapq.nlargest(n, self.items(), key=_itemgetter(1))
+        return _nlargest(n, self.items(), key=_itemgetter(1))
 
     def elements(self):
         '''Iterator over elements repeating each as many times as its count.
@@ -1249,11 +1244,10 @@ def __copy__(self):
     def copy(self):
         if self.__class__ is UserDict:
             return UserDict(self.data.copy())
-        import copy
         data = self.data
         try:
             self.data = {}
-            c = copy.copy(self)
+            c = _copy(self)
         finally:
             self.data = data
         c.update(self)

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to