diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2021-05-26 17:40:05 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-26 17:40:05 (GMT) |
commit | 06ac3a4742228b0230981720060248a7425b2486 (patch) | |
tree | bd11333e872650364bb9e4dbbddb21324f989e42 /Lib/importlib/metadata | |
parent | 90a6c07cb20114dda801f027a90df839225751cb (diff) | |
download | cpython-06ac3a4742228b0230981720060248a7425b2486.zip cpython-06ac3a4742228b0230981720060248a7425b2486.tar.gz cpython-06ac3a4742228b0230981720060248a7425b2486.tar.bz2 |
bpo-44241: Incorporate changes from importlib_metadata 4.1. (#26382)
Diffstat (limited to 'Lib/importlib/metadata')
-rw-r--r-- | Lib/importlib/metadata/__init__.py | 17 | ||||
-rw-r--r-- | Lib/importlib/metadata/_adapters.py | 1 | ||||
-rw-r--r-- | Lib/importlib/metadata/_meta.py | 18 |
3 files changed, 28 insertions, 8 deletions
diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py index e2f2e47..9637a82 100644 --- a/Lib/importlib/metadata/__init__.py +++ b/Lib/importlib/metadata/__init__.py @@ -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 @@ -612,10 +613,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) @@ -772,11 +774,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 @@ -870,7 +871,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 diff --git a/Lib/importlib/metadata/_adapters.py b/Lib/importlib/metadata/_adapters.py index ab08618..aa460d3 100644 --- a/Lib/importlib/metadata/_adapters.py +++ b/Lib/importlib/metadata/_adapters.py @@ -19,6 +19,7 @@ class Message(email.message.Message): 'Requires-Dist', 'Requires-External', 'Supported-Platform', + 'Dynamic', ], ) ) diff --git a/Lib/importlib/metadata/_meta.py b/Lib/importlib/metadata/_meta.py index 04d9a02..1a6edbf 100644 --- a/Lib/importlib/metadata/_meta.py +++ b/Lib/importlib/metadata/_meta.py @@ -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 |