diff options
author | Jeremy Bowman <jbowman@edx.org> | 2018-05-14 17:53:42 -0400 |
---|---|---|
committer | Jeremy Bowman <jbowman@edx.org> | 2018-05-15 11:15:05 -0400 |
commit | a960ee1c3f1d1d1067ec1e3c88dc345060bd33a4 (patch) | |
tree | a3abe6957a1b67643293c3ff469b91964431919d /setuptools/config.py | |
parent | 26b75f5151a761f3206b0dbf68f4e56363ca2ed4 (diff) | |
download | external_python_setuptools-a960ee1c3f1d1d1067ec1e3c88dc345060bd33a4.tar.gz external_python_setuptools-a960ee1c3f1d1d1067ec1e3c88dc345060bd33a4.tar.bz2 external_python_setuptools-a960ee1c3f1d1d1067ec1e3c88dc345060bd33a4.zip |
Support loading version from a file
Diffstat (limited to 'setuptools/config.py')
-rw-r--r-- | setuptools/config.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/setuptools/config.py b/setuptools/config.py index 8eddcae8..6343840e 100644 --- a/setuptools/config.py +++ b/setuptools/config.py @@ -7,6 +7,7 @@ from functools import partial from importlib import import_module from distutils.errors import DistutilsOptionError, DistutilsFileError +from setuptools.extern.packaging.version import LegacyVersion, parse from setuptools.extern.six import string_types @@ -427,6 +428,18 @@ class ConfigMetadataHandler(ConfigHandler): :rtype: str """ + version = self._parse_file(value) + + if version != value: + version = version.strip() + # Be strict about versions loaded from file because it's easy to + # accidentally include newlines and other unintended content + if isinstance(parse(version), LegacyVersion): + raise DistutilsOptionError('Version loaded from %s does not comply with PEP 440: %s' % ( + value, version + )) + return version + version = self._parse_attr(value) if callable(version): |