66import csv
77import sys
88import zipp
9- import email
109import operator
1110import functools
1211import itertools
1312import collections
1413
15- from ._compat import install , NullFinder
14+ from ._compat import (
15+ install ,
16+ NullFinder ,
17+ ConfigParser ,
18+ suppress ,
19+ map ,
20+ FileNotFoundError ,
21+ NotADirectoryError ,
22+ pathlib ,
23+ ModuleNotFoundError ,
24+ MetaPathFinder ,
25+ email_message_from_string ,
26+ )
1627from importlib import import_module
1728from itertools import starmap
1829
19- if sys .version_info > (3 ,): # pragma: nocover
20- from configparser import ConfigParser
21- from contextlib import suppress
22- else : # pragma: nocover
23- from backports .configparser import ConfigParser
24- from itertools import imap as map # type: ignore
25- from contextlib2 import suppress # noqa
26- FileNotFoundError = IOError , OSError
27- NotADirectoryError = IOError , OSError
28-
29- if sys .version_info > (3 , 5 ): # pragma: nocover
30- import pathlib
31- else : # pragma: nocover
32- import pathlib2 as pathlib
33-
34- try :
35- BaseClass = ModuleNotFoundError
36- except NameError : # pragma: nocover
37- BaseClass = ImportError # type: ignore
38-
39-
40- if sys .version_info >= (3 ,): # pragma: nocover
41- from importlib .abc import MetaPathFinder
42- else : # pragma: nocover
43- class MetaPathFinder (object ):
44- __metaclass__ = abc .ABCMeta
45-
4630
4731__metaclass__ = type
4832
@@ -60,7 +44,7 @@ class MetaPathFinder(object):
6044 ]
6145
6246
63- class PackageNotFoundError (BaseClass ):
47+ class PackageNotFoundError (ModuleNotFoundError ):
6448 """The package was not found."""
6549
6650
@@ -232,7 +216,7 @@ def metadata(self):
232216 # (which points to the egg-info file) attribute unchanged.
233217 or self .read_text ('' )
234218 )
235- return _email_message_from_string (text )
219+ return email_message_from_string (text )
236220
237221 @property
238222 def version (self ):
@@ -411,15 +395,6 @@ def locate_file(self, path):
411395 return self ._path .parent / path
412396
413397
414- def _email_message_from_string (text ):
415- # Work around https://bugs.python.org/issue25545 where
416- # email.message_from_string cannot handle Unicode on Python 2.
417- if sys .version_info < (3 ,): # nocoverpy3
418- io_buffer = io .StringIO (text )
419- return email .message_from_file (io_buffer )
420- return email .message_from_string (text ) # nocoverpy2
421-
422-
423398def distribution (package ):
424399 """Get the ``Distribution`` instance for the given package.
425400
0 commit comments