Skip to content

Commit 9437f5b

Browse files
Replace pkg_resources to packaging to avoid DeprecationWarning
1 parent 9086f45 commit 9437f5b

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

tests/third_party/cupy/testing/_helper.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import contextlib
2+
import importlib.metadata
23
import inspect
34
import unittest
45
import warnings
6+
from importlib.metadata import PackageNotFoundError
57
from typing import Callable
68
from unittest import mock
79

@@ -52,14 +54,18 @@ def installed(*specifiers):
5254
Args:
5355
specifiers: Version specifiers (e.g., `numpy>=1.20.0`).
5456
"""
55-
# Delay import of pkg_resources because it is excruciatingly slow.
56-
# See https://github.com/pypa/setuptools/issues/510
57-
import pkg_resources
57+
# Make `packaging` a soft requirement
58+
from packaging.requirements import Requirement
5859

5960
for spec in specifiers:
61+
req = Requirement(spec)
6062
try:
61-
pkg_resources.require(spec)
62-
except pkg_resources.ResolutionError:
63+
found = importlib.metadata.version(req.name)
64+
except PackageNotFoundError:
65+
return False
66+
expected = req.specifier
67+
# If no constraint is given, skip
68+
if expected and (not expected.contains(found, prereleases=True)):
6369
return False
6470
return True
6571

0 commit comments

Comments
 (0)