diff --git a/deform/renderer.py b/deform/renderer.py index b8cb6926..0dfa5ab2 100644 --- a/deform/renderer.py +++ b/deform/renderer.py @@ -1,6 +1,7 @@ """Renderer.""" -from pkg_resources import resource_filename +# Standard Library +from importlib.resources import files # Deform import deform @@ -44,7 +45,7 @@ def translator(term): paths = [] for path in search_path: pkg, resource_name = path.split(":") - paths.append(resource_filename(pkg, resource_name)) + paths.append(str(files(pkg).joinpath(resource_name))) deform.form.Form.default_renderer = deform.ZPTRendererFactory( tuple(paths) + default_paths, translator=translator diff --git a/deform/template.py b/deform/template.py index 7a82b4d0..9351701c 100644 --- a/deform/template.py +++ b/deform/template.py @@ -1,10 +1,10 @@ """Template.""" # Standard Library +from importlib.resources import files import os.path from chameleon.zpt.loader import TemplateLoader -from pkg_resources import resource_filename from translationstring import ChameleonTranslate from .exception import TemplateError @@ -39,7 +39,7 @@ def __init__(self, *args, **kwargs): def load(self, filename, *args, **kwargs): if ":" in filename: pkg_name, fn = filename.split(":", 1) - filename = resource_filename(pkg_name, fn) + filename = str(files(pkg_name).joinpath(fn)) else: path, ext = os.path.splitext(filename) if not ext: @@ -58,7 +58,7 @@ class ZPTRendererFactory(object): If the template name is an asset spec (has a colon in it, e.g. ``mypackage:subdir/subdir2/mytemplate.pt``), use - ``pkg_resources.resource_filename`` to resolve it. + ``importlib.resources`` to resolve it. Otherwise, fall back to search-path-based machinery to resolve it. Allowing an asset spec allows users to specify templates without the @@ -122,5 +122,5 @@ def load(self, template_name): return self.loader.load(template_name) -default_dir = resource_filename("deform", "templates/") +default_dir = str(files("deform").joinpath("templates")) default_renderer = ZPTRendererFactory((default_dir,)) diff --git a/deform/tests/test_field.py b/deform/tests/test_field.py index 84e811e0..aed123c5 100644 --- a/deform/tests/test_field.py +++ b/deform/tests/test_field.py @@ -154,9 +154,10 @@ def test_set_default_resource_registry(self): def test_set_zpt_renderer(self): cls = self._getTargetClass() old = cls.default_renderer - from pkg_resources import resource_filename + # Standard Library + from importlib.resources import files - template_dir = resource_filename("deform", "templates/") + template_dir = str(files("deform").joinpath("templates")) class Field: oid = None diff --git a/deform/tests/test_template.py b/deform/tests/test_template.py index d7435229..bf605886 100644 --- a/deform/tests/test_template.py +++ b/deform/tests/test_template.py @@ -119,9 +119,10 @@ def _makeOne(self, dirs, **kw): return ZPTRendererFactory(dirs, **kw) def test_functional(self): - from pkg_resources import resource_filename + # Standard Library + from importlib.resources import files - default_dir = resource_filename("deform", "tests/fixtures/") + default_dir = str(files("deform").joinpath("tests/fixtures")) renderer = self._makeOne((default_dir,)) result = renderer("test") self.assertEqual(result.strip(), str("