diff options
| author | Xavier Fernandez <xavier.fernandez@polyconseil.fr> | 2016-07-17 14:52:16 +0200 |
|---|---|---|
| committer | Xavier Fernandez <xavier.fernandez@polyconseil.fr> | 2016-07-21 11:28:38 +0200 |
| commit | d079163e74166860fedbfe0abcfcb820507368fd (patch) | |
| tree | 69539ea65f1b2f67efde8885c31a955e7ea4eccd /setuptools/dist.py | |
| parent | fd3ff004cd3570460a079de785846f54ae1ee36f (diff) | |
| download | python-setuptools-git-d079163e74166860fedbfe0abcfcb820507368fd.tar.gz | |
Also update the Metadata-Version when adding Requires-Python
Diffstat (limited to 'setuptools/dist.py')
| -rw-r--r-- | setuptools/dist.py | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py index 0a192553..705ce9a3 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -12,6 +12,7 @@ import distutils.dist from distutils.core import Distribution as _Distribution from distutils.errors import (DistutilsOptionError, DistutilsPlatformError, DistutilsSetupError) +from distutils.util import rfc822_escape from setuptools.extern import six from setuptools.extern.six.moves import map @@ -44,10 +45,45 @@ def _patch_distribution_metadata_write_pkg_file(): """Patch write_pkg_file to also write Requires-Python/Requires-External""" original_write = distutils.dist.DistributionMetadata.write_pkg_file + # Based on Python 3.5 version def write_pkg_file(self, file): """Write the PKG-INFO format data to a file object. """ - original_write(self, file) + version = '1.0' + if (self.provides or self.requires or self.obsoletes or + self.classifiers or self.download_url): + version = '1.1' + # Setuptools specific for PEP 345 + if hasattr(self, 'python_requires'): + version = '1.2' + + file.write('Metadata-Version: %s\n' % version) + file.write('Name: %s\n' % self.get_name()) + file.write('Version: %s\n' % self.get_version()) + file.write('Summary: %s\n' % self.get_description()) + file.write('Home-page: %s\n' % self.get_url()) + file.write('Author: %s\n' % self.get_contact()) + file.write('Author-email: %s\n' % self.get_contact_email()) + file.write('License: %s\n' % self.get_license()) + if self.download_url: + file.write('Download-URL: %s\n' % self.download_url) + + long_desc = rfc822_escape(self.get_long_description()) + file.write('Description: %s\n' % long_desc) + + keywords = ','.join(self.get_keywords()) + if keywords: + file.write('Keywords: %s\n' % keywords) + + self._write_list(file, 'Platform', self.get_platforms()) + self._write_list(file, 'Classifier', self.get_classifiers()) + + # PEP 314 + self._write_list(file, 'Requires', self.get_requires()) + self._write_list(file, 'Provides', self.get_provides()) + self._write_list(file, 'Obsoletes', self.get_obsoletes()) + + # Setuptools specific for PEP 345 if hasattr(self, 'python_requires'): file.write('Requires-Python: %s\n' % self.python_requires) |
