aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2020-03-15 14:57:18 -0400
committerJason R. Coombs <jaraco@jaraco.com>2020-03-15 15:06:05 -0400
commit24fa288a98a14e6ec57b996b151a48203322c936 (patch)
tree19a385f8722385daa4ec0d66823b9c007885ff68 /setuptools
parenta753df58651cb2d685dc721a40b450a7dba611ce (diff)
downloadexternal_python_setuptools-24fa288a98a14e6ec57b996b151a48203322c936.tar.gz
external_python_setuptools-24fa288a98a14e6ec57b996b151a48203322c936.tar.bz2
external_python_setuptools-24fa288a98a14e6ec57b996b151a48203322c936.zip
Extract method for validating version.
Diffstat (limited to 'setuptools')
-rw-r--r--setuptools/dist.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py
index 7ffe0ba1..0f71dd98 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -438,30 +438,35 @@ class Distribution(_Distribution):
value = default() if default else None
setattr(self.metadata, option, value)
- if isinstance(self.metadata.version, numbers.Number):
+ self.metadata.version = self._validate_version(self.metadata.version)
+ self._finalize_requires()
+
+ @staticmethod
+ def _validate_version(version):
+ if isinstance(version, numbers.Number):
# Some people apparently take "version number" too literally :)
- self.metadata.version = str(self.metadata.version)
+ version = str(version)
- if self.metadata.version is not None:
+ if version is not None:
try:
- ver = packaging.version.Version(self.metadata.version)
+ ver = packaging.version.Version(version)
normalized_version = str(ver)
- if self.metadata.version != normalized_version:
+ if version != normalized_version:
warnings.warn(
"Normalizing '%s' to '%s'" % (
- self.metadata.version,
+ version,
normalized_version,
)
)
- self.metadata.version = normalized_version
+ version = normalized_version
except (packaging.version.InvalidVersion, TypeError):
warnings.warn(
"The version specified (%r) is an invalid version, this "
"may not work as expected with newer versions of "
"setuptools, pip, and PyPI. Please see PEP 440 for more "
- "details." % self.metadata.version
+ "details." % version
)
- self._finalize_requires()
+ return version
def _finalize_requires(self):
"""