]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.10] bpo-44241: Incorporate changes from importlib_metadata 4.1. (GH-26382) (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 27 May 2021 01:22:25 +0000 (18:22 -0700)
committerGitHub <noreply@github.com>
Thu, 27 May 2021 01:22:25 +0000 (18:22 -0700)
(cherry picked from commit 06ac3a4742228b0230981720060248a7425b2486)

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
Automerge-Triggered-By: GH:jaraco
Lib/importlib/metadata/__init__.py
Lib/importlib/metadata/_adapters.py
Lib/importlib/metadata/_meta.py
Misc/NEWS.d/next/Library/2021-05-26-13-15-51.bpo-44241.TBqej8.rst [new file with mode: 0644]

index 629f1858e5b798ff3ad13521dde4c207ebaa903b..94b83869a6855007f290662071e7977a28ef779d 100644 (file)
@@ -19,6 +19,7 @@ from ._meta import PackageMetadata
 from ._collections import FreezableDefaultDict, Pair
 from ._functools import method_cache
 from ._itertools import unique_everseen
+from ._meta import PackageMetadata, SimplePath
 
 from contextlib import suppress
 from importlib import import_module
@@ -611,10 +612,11 @@ class DistributionFinder(MetaPathFinder):
         @property
         def path(self):
             """
-            The path that a distribution finder should search.
+            The sequence of directory path that a distribution finder
+            should search.
 
-            Typically refers to Python package paths and defaults
-            to ``sys.path``.
+            Typically refers to Python installed package paths such as
+            "site-packages" directories and defaults to ``sys.path``.
             """
             return vars(self).get('path', sys.path)
 
@@ -771,11 +773,10 @@ class MetadataPathFinder(DistributionFinder):
 
 
 class PathDistribution(Distribution):
-    def __init__(self, path):
-        """Construct a distribution from a path to the metadata directory.
+    def __init__(self, path: SimplePath):
+        """Construct a distribution.
 
-        :param path: A pathlib.Path or similar object supporting
-                     .joinpath(), __div__, .parent, and .read_text().
+        :param path: SimplePath indicating the metadata directory.
         """
         self._path = path
 
@@ -869,7 +870,7 @@ def requires(distribution_name):
     Return a list of requirements for the named package.
 
     :return: An iterator of requirements, suitable for
-    packaging.requirement.Requirement.
+        packaging.requirement.Requirement.
     """
     return distribution(distribution_name).requires
 
index ab086180fc35fc6d9939115a5e09ff510532682b..aa460d3eda50fbb174623a1b5bbca54645fd588a 100644 (file)
@@ -19,6 +19,7 @@ class Message(email.message.Message):
                 'Requires-Dist',
                 'Requires-External',
                 'Supported-Platform',
+                'Dynamic',
             ],
         )
     )
index 04d9a0235368ed3ef73439c49862307770abc908..1a6edbf957d5a08e715bede29dcd1005611f2153 100644 (file)
@@ -27,3 +27,21 @@ class PackageMetadata(Protocol):
         """
         A JSON-compatible form of the metadata.
         """
+
+
+class SimplePath(Protocol):
+    """
+    A minimal subset of pathlib.Path required by PathDistribution.
+    """
+
+    def joinpath(self) -> 'SimplePath':
+        ...  # pragma: no cover
+
+    def __div__(self) -> 'SimplePath':
+        ...  # pragma: no cover
+
+    def parent(self) -> 'SimplePath':
+        ...  # pragma: no cover
+
+    def read_text(self) -> str:
+        ...  # pragma: no cover
diff --git a/Misc/NEWS.d/next/Library/2021-05-26-13-15-51.bpo-44241.TBqej8.rst b/Misc/NEWS.d/next/Library/2021-05-26-13-15-51.bpo-44241.TBqej8.rst
new file mode 100644 (file)
index 0000000..c160cf7
--- /dev/null
@@ -0,0 +1,2 @@
+Incorporate minor tweaks from importlib_metadata 4.1: SimplePath protocol,
+support for Metadata 2.2.