Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 6547330

Browse filesBrowse files
AA-Turnerjaraco
andauthored
GH-109653: Defer import of importlib.metadata._adapters (#109829)
* adapters * Add comments for deferred imports with links to rationale. * Add blurb --------- Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
1 parent 667294d commit 6547330
Copy full SHA for 6547330

File tree

Expand file treeCollapse file tree

3 files changed

+9
-3
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+9
-3
lines changed

‎Lib/importlib/metadata/__init__.py

Copy file name to clipboardExpand all lines: Lib/importlib/metadata/__init__.py
+4-1Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import posixpath
1919
import collections
2020

21-
from . import _adapters, _meta
21+
from . import _meta
2222
from ._collections import FreezableDefaultDict, Pair
2323
from ._functools import method_cache, pass_none
2424
from ._itertools import always_iterable, unique_everseen
@@ -456,6 +456,9 @@ def metadata(self) -> _meta.PackageMetadata:
456456
Custom providers may provide the METADATA file or override this
457457
property.
458458
"""
459+
# deferred for performance (python/cpython#109829)
460+
from . import _adapters
461+
459462
opt_text = (
460463
self.read_text('METADATA')
461464
or self.read_text('PKG-INFO')

‎Lib/importlib/resources/_common.py

Copy file name to clipboardExpand all lines: Lib/importlib/resources/_common.py
+3-2Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
from typing import Union, Optional, cast
1313
from .abc import ResourceReader, Traversable
1414

15-
from ._adapters import wrap_spec
16-
1715
Package = Union[types.ModuleType, str]
1816
Anchor = Package
1917

@@ -109,6 +107,9 @@ def from_package(package: types.ModuleType):
109107
Return a Traversable object for the given package.
110108
111109
"""
110+
# deferred for performance (python/cpython#109829)
111+
from ._adapters import wrap_spec
112+
112113
spec = wrap_spec(package)
113114
reader = spec.loader.get_resource_reader(spec.name)
114115
return reader.files()
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Deferred select imports in importlib.metadata and importlib.resources for a
2+
14% speedup.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.