diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2014-09-27 16:13:48 -0400 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2014-09-27 16:13:48 -0400 |
commit | 7d9c21a893431798ba77edd62b5490ff4ce47ecf (patch) | |
tree | 7dd192c676041fafe6f31425d5fe2d018895e704 /setuptools/dist.py | |
parent | a9541756f6a12c91704feffec4ddfee859f12c30 (diff) | |
download | external_python_setuptools-7d9c21a893431798ba77edd62b5490ff4ce47ecf.tar.gz external_python_setuptools-7d9c21a893431798ba77edd62b5490ff4ce47ecf.tar.bz2 external_python_setuptools-7d9c21a893431798ba77edd62b5490ff4ce47ecf.zip |
Prefer packaging library if available.
Diffstat (limited to 'setuptools/dist.py')
-rw-r--r-- | setuptools/dist.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py index ae4ff554..a3a37ee4 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -13,11 +13,18 @@ from distutils.core import Distribution as _Distribution from distutils.errors import (DistutilsOptionError, DistutilsPlatformError, DistutilsSetupError) +try: + import packaging.version +except ImportError: + # fallback to vendored version + import setuptools._vendor.packaging.version + packaging = setuptools._vendor.packaging + from setuptools.depends import Require from setuptools.compat import basestring, PY2 -from setuptools._vendor.packaging.version import Version, InvalidVersion import pkg_resources + def _get_unpatched(cls): """Protect against re-patching the distutils if reloaded @@ -271,7 +278,8 @@ class Distribution(_Distribution): if self.metadata.version is not None: try: - normalized_version = str(Version(self.metadata.version)) + ver = packaging.version.Version(self.metadata.version) + normalized_version = str(ver) if self.metadata.version != normalized_version: warnings.warn( "The version specified requires normalization, " @@ -281,7 +289,7 @@ class Distribution(_Distribution): ) ) self.metadata.version = normalized_version - except (InvalidVersion, TypeError): + 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 " |