Skip to content

Commit 94e305f

Browse files
committed
replaced deprecated pkg_resources with importlib.metadata-based approach (based on: https://packaging.python.org/en/latest/guides/creating-and-discovering-plugins/#using-package-metadata); prepared for release
1 parent c7109de commit 94e305f

4 files changed

Lines changed: 24 additions & 14 deletions

File tree

CHANGES.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
0.2.17 (2025-06-26)
5+
-------------------
6+
7+
- replaced deprecated `pkg_resources` with `importlib.metadata`-based approach
8+
(based on: https://packaging.python.org/en/latest/guides/creating-and-discovering-plugins/#using-package-metadata)
9+
10+
411
0.2.16 (2025-04-08)
512
-------------------
613

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _read(f):
3333
install_requires=[
3434
"setuptools",
3535
],
36-
version="0.2.16",
36+
version="0.2.17",
3737
author='Peter Reutemann',
3838
author_email='fracpete@waikato.ac.nz',
3939
entry_points={

src/seppl/_class_registry.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import traceback
66
from typing import Callable, Union, List, Optional, Type, Dict
77

8-
from pkg_resources import working_set
8+
if sys.version_info < (3, 10):
9+
from importlib_metadata import entry_points
10+
else:
11+
from importlib.metadata import entry_points
912

1013
from ._types import get_class_name, get_class
1114
from ._plugin import Plugin, get_all_names, get_aliases
@@ -369,13 +372,8 @@ def _determine_from_entry_points(self, c: str) -> List[str]:
369372
"""
370373
result = []
371374
class_listers = []
372-
for item in working_set.iter_entry_points("class_lister", None):
373-
if len(item.attrs) > 0:
374-
# format: "name=module:function"
375-
class_listers.append(item.module_name + ":" + item.attrs[0])
376-
else:
377-
# format: "name=module"
378-
class_listers.append(item.module_name)
375+
for item in entry_points(group="class_lister"):
376+
class_listers.append(item.value)
379377
if len(class_listers) > 0:
380378
result = self._determine_from_class_listers(c, class_listers)
381379
return result

src/seppl/_registry.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import traceback
66

77
from typing import List, Union, Optional, Dict
8-
from pkg_resources import working_set
8+
if sys.version_info < (3, 10):
9+
from importlib_metadata import entry_points
10+
else:
11+
from importlib.metadata import entry_points
912

1013
from ._plugin import get_all_names, get_aliases, Plugin
1114
from ._types import get_class, get_class_name
@@ -432,10 +435,11 @@ def _register_from_entry_point(self, group: str, c: Optional = None) -> Dict[str
432435
c = self._init_plugin_class(c)
433436
result = dict()
434437

435-
for item in working_set.iter_entry_points(group, None):
438+
for item in entry_points(group=group):
436439
# format: "plugin_name=plugin_module:plugin_class",
437440
if self.mode == MODE_EXPLICIT:
438-
cls = get_class(module_name=item.module_name, class_name=item.attrs[0])
441+
module_name, class_name = item.value.split(":")
442+
cls = get_class(module_name=module_name, class_name=class_name)
439443
if issubclass(cls, c):
440444
p = cls()
441445
if self._register_plugin(result, p):
@@ -446,8 +450,9 @@ def _register_from_entry_point(self, group: str, c: Optional = None) -> Dict[str
446450
self._all_aliases.update(get_aliases(p))
447451
# format: "unique_string=plugin_module:superclass_name",
448452
elif self.mode == MODE_DYNAMIC:
449-
c = get_class(full_class_name=".".join(item.attrs))
450-
result.update(self._register_from_module(item.module_name, c))
453+
module_name, class_name = item.value.split(":")
454+
c = get_class(full_class_name=class_name)
455+
result.update(self._register_from_module(module_name, c))
451456
else:
452457
raise Exception("Unhandled mode: %s" % self.mode)
453458

0 commit comments

Comments
 (0)