summaryrefslogtreecommitdiff
path: root/apscheduler/schedulers/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'apscheduler/schedulers/base.py')
-rw-r--r--apscheduler/schedulers/base.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/apscheduler/schedulers/base.py b/apscheduler/schedulers/base.py
index 444de8e..3ce2bfc 100644
--- a/apscheduler/schedulers/base.py
+++ b/apscheduler/schedulers/base.py
@@ -7,7 +7,6 @@ from logging import getLogger
import warnings
import sys
-from pkg_resources import iter_entry_points
from tzlocal import get_localzone
import six
@@ -31,6 +30,11 @@ try:
except ImportError:
from collections import MutableMapping
+try:
+ from importlib.metadata import entry_points
+except ModuleNotFoundError:
+ from importlib_metadata import entry_points
+
#: constant indicating a scheduler's stopped state
STATE_STOPPED = 0
#: constant indicating a scheduler's running state (started and processing jobs)
@@ -62,12 +66,18 @@ class BaseScheduler(six.with_metaclass(ABCMeta)):
.. seealso:: :ref:`scheduler-config`
"""
+ # The `group=...` API is only available in the backport, used in <=3.7, and in std>=3.10.
+ if (3, 8) <= sys.version_info <= (3, 9):
+ _trigger_plugins = {ep.name: ep for ep in entry_points()['apscheduler.triggers']}
+ _executor_plugins = {ep.name: ep for ep in entry_points()['apscheduler.executors']}
+ _jobstore_plugins = {ep.name: ep for ep in entry_points()['apscheduler.jobstores']}
+ else:
+ _trigger_plugins = {ep.name: ep for ep in entry_points(group='apscheduler.triggers')}
+ _executor_plugins = {ep.name: ep for ep in entry_points(group='apscheduler.executors')}
+ _jobstore_plugins = {ep.name: ep for ep in entry_points(group='apscheduler.jobstores')}
- _trigger_plugins = dict((ep.name, ep) for ep in iter_entry_points('apscheduler.triggers'))
_trigger_classes = {}
- _executor_plugins = dict((ep.name, ep) for ep in iter_entry_points('apscheduler.executors'))
_executor_classes = {}
- _jobstore_plugins = dict((ep.name, ep) for ep in iter_entry_points('apscheduler.jobstores'))
_jobstore_classes = {}
#