Skip to content

Commit 69df476

Browse files
committed
Orange/util: Replace use of pkg_resources
1 parent f76affe commit 69df476

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

Orange/tests/test_third_party.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from unittest import TestCase
22

3-
from pkg_resources import parse_version
3+
from packaging.version import Version
44

55

66
class TestPkgResources(TestCase):
77
def test_parse_version(self):
8-
self.assertGreater(parse_version('3.4.1'), parse_version('3.4.0'))
9-
self.assertGreater(parse_version('3.4.1'), parse_version('3.4.dev'))
10-
self.assertGreater(parse_version('3.4.1'), parse_version('3.4.1.dev'))
11-
self.assertLess(parse_version('3.4.1'), parse_version('3.4.2.dev'))
8+
self.assertGreater(Version('3.4.1'), Version('3.4.0'))
9+
self.assertGreater(Version('3.4.1'), Version('3.4.dev'))
10+
self.assertGreater(Version('3.4.1'), Version('3.4.1.dev'))
11+
self.assertLess(Version('3.4.1'), Version('3.4.2.dev'))

Orange/util.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
import inspect
55
import datetime
66
import math
7+
import importlib.resources
78
from contextlib import contextmanager
8-
from typing import TYPE_CHECKING, Callable
9+
from importlib.metadata import distribution
910

10-
import pkg_resources
11+
from typing import TYPE_CHECKING, Callable
1112
from enum import Enum as _Enum
1213
from functools import wraps, partial
1314
from operator import attrgetter
@@ -112,20 +113,18 @@ def resource_filename(path):
112113
"""
113114
Return the resource filename path relative to the Orange package.
114115
"""
115-
return pkg_resources.resource_filename("Orange", path)
116+
path = importlib.resources.files("Orange").joinpath(path)
117+
return str(path)
116118

117119

118120
def get_entry_point(dist, group, name):
119121
"""
120122
Load and return the entry point from the distribution.
121-
122-
Unlike `pkg_resources.load_entry_point`, this function does not check
123-
for requirements. Calling this function is preferred because of developers
124-
who experiment with different versions and have inconsistent configurations.
125123
"""
126-
dist = pkg_resources.get_distribution(dist)
127-
ep = dist.get_entry_info(group, name)
128-
return ep.resolve()
124+
dist = distribution(dist)
125+
eps = dist.entry_points.select(group=group, name=name)
126+
ep = next(iter(eps))
127+
return ep.load()
129128

130129

131130
def deprecated(obj):

0 commit comments

Comments
 (0)