Skip to content

Commit

Permalink
In depends, rely on packaging instead of distutils for version manage…
Browse files Browse the repository at this point in the history
…ment.
  • Loading branch information
jaraco committed Dec 12, 2021
1 parent 9ea9a27 commit 78fdc16
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 12 deletions.
9 changes: 5 additions & 4 deletions setuptools/depends.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
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
Expand All @@ -21,7 +22,7 @@ def __init__(
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)
Expand All @@ -40,7 +41,7 @@ def full_name(self):
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'
Expand Down Expand Up @@ -78,7 +79,7 @@ def is_current(self, paths=None):
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):
Expand Down
12 changes: 4 additions & 8 deletions setuptools/tests/test_setuptools.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@
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
Expand Down Expand Up @@ -84,24 +85,19 @@ def testRequire(self):

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')

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()
Expand Down

0 comments on commit 78fdc16

Please sign in to comment.