diff options
author | Paul Ganssle <paul@ganssle.io> | 2018-03-17 19:59:45 -0400 |
---|---|---|
committer | Paul Ganssle <paul@ganssle.io> | 2018-03-17 19:59:45 -0400 |
commit | f78c489384f9a87ec73b515cf94949f3427d6210 (patch) | |
tree | f085411c8ea07fc927d0fb56a1386f23e0e3603e /setuptools/dist.py | |
parent | 2005e53e887c4ce6ca6da27241e43e3686e8f298 (diff) | |
download | external_python_setuptools-f78c489384f9a87ec73b515cf94949f3427d6210.tar.gz external_python_setuptools-f78c489384f9a87ec73b515cf94949f3427d6210.tar.bz2 external_python_setuptools-f78c489384f9a87ec73b515cf94949f3427d6210.zip |
Fix issue with unicode author/maintainer on PY2
Diffstat (limited to 'setuptools/dist.py')
-rw-r--r-- | setuptools/dist.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py index cd34eef6..0fb3d29c 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- __all__ = ['Distribution'] import re @@ -38,7 +39,9 @@ def _get_unpatched(cls): def get_metadata_version(dist_md): if dist_md.long_description_content_type or dist_md.provides_extras: return StrictVersion('2.1') - elif getattr(dist_md, 'python_requires', None) is not None: + elif (dist_md.maintainer is not None or + dist_md.maintainer_email is not None or + getattr(dist_md, 'python_requires', None) is not None): return StrictVersion('1.2') elif (dist_md.provides or dist_md.requires or dist_md.obsoletes or dist_md.classifiers or dist_md.download_url): @@ -48,7 +51,7 @@ def get_metadata_version(dist_md): # Based on Python 3.5 version -def write_pkg_file(self, file): +def write_pkg_file(self, file, is_test=False): """Write the PKG-INFO format data to a file object. """ version = get_metadata_version(self) @@ -59,7 +62,7 @@ def write_pkg_file(self, file): file.write('Summary: %s\n' % self.get_description()) file.write('Home-page: %s\n' % self.get_url()) - if version == '1.2': + if version < StrictVersion('1.2'): file.write('Author: %s\n' % self.get_contact()) file.write('Author-email: %s\n' % self.get_contact_email()) else: @@ -72,6 +75,9 @@ def write_pkg_file(self, file): for field, attr in optional_fields: attr_val = getattr(self, attr) + if six.PY2: + attr_val = self._encode_field(attr_val) + if attr_val is not None: file.write('%s: %s\n' % (field, attr_val)) @@ -88,7 +94,7 @@ def write_pkg_file(self, file): if keywords: file.write('Keywords: %s\n' % keywords) - if version == '1.2': + if version >= StrictVersion('1.2'): for platform in self.get_platforms(): file.write('Platform: %s\n' % platform) else: |