Skip to content

Commit 6cde6d5

Browse files
committed
Update entry points access
Switch from pkg_resources (deprecated) to importlib-metadata, and give a more helpful error when a service plugin isn't found.
1 parent 97c1cb6 commit 6cde6d5

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

bugwarrior/collect.py

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import copy
2+
from importlib.metadata import entry_points
23
import logging
34
import multiprocessing
45
import time
56

67
from jinja2 import Template
7-
from pkg_resources import iter_entry_points
88

99
from taskw.task import Task
1010

@@ -15,14 +15,13 @@
1515
SERVICE_FINISHED_ERROR = 1
1616

1717

18-
def get_service(service_name):
19-
epoint = iter_entry_points(group='bugwarrior.service', name=service_name)
18+
def get_service(service_name: str):
2019
try:
21-
epoint = next(epoint)
22-
except StopIteration:
23-
return None
24-
25-
return epoint.load()
20+
(service,) = entry_points(group='bugwarrior.service', name=service_name)
21+
except ValueError as e:
22+
raise ValueError (f"Configured service '{service_name}' not found. " \
23+
"Is it installed? Or misspelled?" ) from e
24+
return service.load()
2625

2726

2827
def _aggregate_issues(conf, main_section, target, queue):

tests/test_docs.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import docutils.core
22
import glob
3+
from importlib.metadata import entry_points
34
import os.path
45
import pathlib
5-
import pkg_resources
66
import re
77
import socket
88
import subprocess
@@ -69,7 +69,7 @@ def test_manpage_build_without_warning(self):
6969
def test_registered_services_are_documented(self):
7070
registered_services = set(
7171
e.name for e in
72-
pkg_resources.iter_entry_points(group='bugwarrior.service'))
72+
entry_points(group='bugwarrior.service'))
7373

7474
documented_services = set()
7575
services_paths = os.listdir(DOCS_PATH / 'services')

0 commit comments

Comments
 (0)