diff options
author | Paul Ganssle <paul@ganssle.io> | 2018-11-06 09:18:05 -0500 |
---|---|---|
committer | Paul Ganssle <paul@ganssle.io> | 2018-11-07 17:38:40 -0500 |
commit | 83fb2385518f7cf7885144f12db80b9364e67c7f (patch) | |
tree | 561ca7c978826a19622aafe084a1d24c67d2a2ab | |
parent | cbef2949856f5e0957be1cbdfdc92325f9ae9f1e (diff) | |
download | external_python_setuptools-83fb2385518f7cf7885144f12db80b9364e67c7f.tar.gz external_python_setuptools-83fb2385518f7cf7885144f12db80b9364e67c7f.tar.bz2 external_python_setuptools-83fb2385518f7cf7885144f12db80b9364e67c7f.zip |
Add DistributionMetadata.read_pkg_file
This is the baseline, unchanged from the version in distutils.dist, to
be modified before patching.
-rw-r--r-- | setuptools/dist.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py index f6078dbe..44e9aa89 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -53,6 +53,59 @@ def get_metadata_version(dist_md): return StrictVersion('1.0') +def read_pkg_file(self, file): + """Reads the metadata values from a file object.""" + msg = message_from_file(file) + + def _read_field(name): + value = msg[name] + if value == 'UNKNOWN': + return None + return value + + def _read_list(name): + values = msg.get_all(name, None) + if values == []: + return None + return values + + metadata_version = msg['metadata-version'] + self.name = _read_field('name') + self.version = _read_field('version') + self.description = _read_field('summary') + # we are filling author only. + self.author = _read_field('author') + self.maintainer = None + self.author_email = _read_field('author-email') + self.maintainer_email = None + self.url = _read_field('home-page') + self.license = _read_field('license') + + if 'download-url' in msg: + self.download_url = _read_field('download-url') + else: + self.download_url = None + + self.long_description = _read_field('description') + self.description = _read_field('summary') + + if 'keywords' in msg: + self.keywords = _read_field('keywords').split(',') + + self.platforms = _read_list('platform') + self.classifiers = _read_list('classifier') + + # PEP 314 - these fields only exist in 1.1 + if metadata_version == '1.1': + self.requires = _read_list('requires') + self.provides = _read_list('provides') + self.obsoletes = _read_list('obsoletes') + else: + self.requires = None + self.provides = None + self.obsoletes = None + + # Based on Python 3.5 version def write_pkg_file(self, file): """Write the PKG-INFO format data to a file object. |