1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
--- a/papermill/engines.py
+++ b/papermill/engines.py
@@ -4,7 +4,7 @@
from functools import wraps
import dateutil
-import entrypoints
+from importlib.metadata import entry_points
from .clientwrap import PapermillNotebookClient
from .exceptions import PapermillException
@@ -33,7 +33,7 @@
Load handlers provided by other packages
"""
- for entrypoint in entrypoints.get_group_all("papermill.engine"):
+ for entrypoint in entry_points().select(group="papermill.engine"):
self.register(entrypoint.name, entrypoint.load())
def get_engine(self, name=None):
--- a/papermill/iorw.py
+++ b/papermill/iorw.py
@@ -5,7 +5,7 @@
import warnings
from contextlib import contextmanager
-import entrypoints
+from importlib.metadata import entry_points
import nbformat
import requests
import yaml
@@ -116,7 +116,7 @@
def register_entry_points(self):
# Load handlers provided by other packages
- for entrypoint in entrypoints.get_group_all("papermill.io"):
+ for entrypoint in entry_points().select(group="papermill.io"):
self.register(entrypoint.name, entrypoint.load())
def get_handler(self, path, extensions=None):
--- a/papermill/tests/test_engines.py
+++ b/papermill/tests/test_engines.py
@@ -489,10 +489,14 @@
self.assertRaises(exceptions.PapermillException, self.papermill_engines.get_engine, "non-existent")
def test_registering_entry_points(self):
- fake_entrypoint = Mock(load=Mock())
+ fake_entrypoint = Mock()
fake_entrypoint.name = "fake-engine"
+ fake_entrypoint.load.return_value = Mock()
- with patch("entrypoints.get_group_all", return_value=[fake_entrypoint]) as mock_get_group_all:
+ mock_entry_points = Mock()
+ mock_entry_points.select.return_value = [fake_entrypoint]
+
+ with patch("papermill.engines.entry_points", return_value=mock_entry_points):
self.papermill_engines.register_entry_points()
- mock_get_group_all.assert_called_once_with("papermill.engine")
+ mock_entry_points.select.assert_called_once_with(group="papermill.engine")
self.assertEqual(self.papermill_engines.get_engine("fake-engine"), fake_entrypoint.load.return_value)
--- a/papermill/tests/test_iorw.py
+++ b/papermill/tests/test_iorw.py
@@ -101,12 +101,16 @@
self.assertIsInstance(self.papermill_io.get_handler(test_nb), NotebookNodeHandler)
def test_entrypoint_register(self):
- fake_entrypoint = Mock(load=Mock())
- fake_entrypoint.name = "fake-from-entry-point://"
+ fake_entrypoint = Mock()
+ fake_entrypoint.name = "fake-from-entry-point://"
+ fake_entrypoint.load.return_value = Mock()
- with patch("entrypoints.get_group_all", return_value=[fake_entrypoint]) as mock_get_group_all:
+ mock_entry_points = Mock()
+ mock_entry_points.select.return_value = [fake_entrypoint]
+
+ with patch("papermill.iorw.entry_points", return_value=mock_entry_points):
self.papermill_io.register_entry_points()
- mock_get_group_all.assert_called_once_with("papermill.io")
+ mock_entry_points.select.assert_called_once_with(group="papermill.io")
fake_ = self.papermill_io.get_handler("fake-from-entry-point://")
assert fake_ == fake_entrypoint.load.return_value
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,7 +4,6 @@
nbclient >= 0.2.0
tqdm >= 4.32.2
requests
-entrypoints
tenacity >= 5.0.2
aiohttp >=3.9.0; python_version=="3.12"
ansicolors
|