summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2021-12-12 12:34:02 -0500
committerJason R. Coombs <jaraco@jaraco.com>2021-12-12 12:34:02 -0500
commit78fdc162ba1b6feeef712bafc32ac81734b92734 (patch)
tree5902728c92d6885f1ccb9ec1c4ad8ca6440dc499
parent9ea9a271e183b2bc9d2da8f0353724d41bf3d421 (diff)
downloadpython-setuptools-git-78fdc162ba1b6feeef712bafc32ac81734b92734.tar.gz
In depends, rely on packaging instead of distutils for version management.
-rw-r--r--setuptools/depends.py9
-rw-r--r--setuptools/tests/test_setuptools.py12
2 files changed, 9 insertions, 12 deletions
diff --git a/setuptools/depends.py b/setuptools/depends.py
index 8be6928a..adffd12d 100644
--- a/setuptools/depends.py
+++ b/setuptools/depends.py
@@ -2,7 +2,8 @@ import sys
import marshal
import contextlib
import dis
-from distutils.version import StrictVersion
+
+from setuptools.extern.packaging import version
from ._imp import find_module, PY_COMPILED, PY_FROZEN, PY_SOURCE
from . import _imp
@@ -21,7 +22,7 @@ class Require:
attribute=None, format=None):
if format is None and requested_version is not None:
- format = StrictVersion
+ format = version.Version
if format is not None:
requested_version = format(requested_version)
@@ -40,7 +41,7 @@ class Require:
def version_ok(self, version):
"""Is 'version' sufficiently up-to-date?"""
return self.attribute is None or self.format is None or \
- str(version) != "unknown" and version >= self.requested_version
+ str(version) != "unknown" and self.format(version) >= self.requested_version
def get_version(self, paths=None, default="unknown"):
"""Get version number of installed module, 'None', or 'default'
@@ -78,7 +79,7 @@ class Require:
version = self.get_version(paths)
if version is None:
return False
- return self.version_ok(version)
+ return self.version_ok(str(version))
def maybe_close(f):
diff --git a/setuptools/tests/test_setuptools.py b/setuptools/tests/test_setuptools.py
index 42f8e18b..3609ab5e 100644
--- a/setuptools/tests/test_setuptools.py
+++ b/setuptools/tests/test_setuptools.py
@@ -7,10 +7,11 @@ import distutils.cmd
from distutils.errors import DistutilsOptionError
from distutils.errors import DistutilsSetupError
from distutils.core import Extension
-from distutils.version import LooseVersion
import pytest
+from setuptools.extern.packaging import version
+
import setuptools
import setuptools.dist
import setuptools.depends as dep
@@ -84,12 +85,12 @@ class TestDepends:
assert req.name == 'Json'
assert req.module == 'json'
- assert req.requested_version == '1.0.3'
+ assert req.requested_version == version.Version('1.0.3')
assert req.attribute == '__version__'
assert req.full_name() == 'Json-1.0.3'
from json import __version__
- assert req.get_version() == __version__
+ assert str(req.get_version()) == __version__
assert req.version_ok('1.0.9')
assert not req.version_ok('0.9.1')
assert not req.version_ok('unknown')
@@ -97,11 +98,6 @@ class TestDepends:
assert req.is_present()
assert req.is_current()
- req = Require('Json 3000', '03000', 'json', format=LooseVersion)
- assert req.is_present()
- assert not req.is_current()
- assert not req.version_ok('unknown')
-
req = Require('Do-what-I-mean', '1.0', 'd-w-i-m')
assert not req.is_present()
assert not req.is_current()