@@ -13,6 +13,27 @@ def dist(
1313) -> importlib_metadata .Distribution :
1414 """
1515 Ensure dist is an :class:`importlib_metadata.Distribution`.
16+
17+ >>> stdlib = importlib.metadata.PathDistribution('foo')
18+ >>> type(stdlib)
19+ <class 'importlib.metadata.PathDistribution'>
20+ >>> local = dist(stdlib)
21+ >>> type(local)
22+ <class 'importlib_metadata.PathDistribution'>
23+
24+ >>> class CustomDist(importlib.metadata.Distribution):
25+ ... def read_text(self, name):
26+ ... return
27+ ... def locate_file(self, name):
28+ ... return
29+ >>> subclass = CustomDist()
30+ >>> type(subclass)
31+ <class 'importlib_metadata._compat.localize.CustomDist'>
32+ >>> import pytest
33+ >>> with pytest.warns(UserWarning, match="Unrecognized distribution subclass <class 'importlib_metadata._compat.localize.CustomDist'>"):
34+ ... local = dist(subclass)
35+ >>> type(local) is type(subclass)
36+ True
1637 """
1738 if isinstance (dist , importlib_metadata .Distribution ):
1839 return dist
@@ -30,6 +51,14 @@ def dist(
3051def message (
3152 input : importlib_metadata ._adapters .Message | email .message .Message ,
3253) -> importlib_metadata ._adapters .Message :
54+ """
55+ Ensure a message is adapted to an importlib_metadata.Message.
56+
57+ >>> stdlib = email.message.Message()
58+ >>> local = message(stdlib)
59+ >>> type(local)
60+ <class 'importlib_metadata._adapters.Message'>
61+ """
3362 if isinstance (input , importlib_metadata ._adapters .Message ):
3463 return input
3564 return importlib_metadata ._adapters .Message (input )
@@ -38,6 +67,16 @@ def message(
3867def package_path (
3968 input : importlib_metadata .PackagePath | importlib .metadata .PackagePath ,
4069) -> importlib_metadata .PackagePath :
70+ """
71+ Ensure a package path is adapted to an importlib_metadata.PackagePath.
72+
73+ >>> stdlib = importlib.metadata.PackagePath('foo')
74+ >>> type(stdlib)
75+ <class 'importlib.metadata.PackagePath'>
76+ >>> local = package_path(stdlib)
77+ >>> type(local)
78+ <class 'importlib_metadata.PackagePath'>
79+ """
4180 if isinstance (input , importlib_metadata .PackagePath ):
4281 return input
4382 replacement = importlib_metadata .PackagePath (input )
0 commit comments