aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Ganssle <paul@ganssle.io>2018-11-06 09:18:05 -0500
committerPaul Ganssle <paul@ganssle.io>2018-11-07 17:38:40 -0500
commit83fb2385518f7cf7885144f12db80b9364e67c7f (patch)
tree561ca7c978826a19622aafe084a1d24c67d2a2ab
parentcbef2949856f5e0957be1cbdfdc92325f9ae9f1e (diff)
downloadexternal_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.py53
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.