|
2 | 2 |
|
3 | 3 | # Standard Library |
4 | 4 | import os.path |
| 5 | +import importlib.resources as resources |
5 | 6 |
|
6 | 7 | from chameleon.zpt.loader import TemplateLoader |
7 | | -from pkg_resources import resource_filename |
8 | 8 | from translationstring import ChameleonTranslate |
9 | 9 |
|
10 | 10 | from .exception import TemplateError |
@@ -40,7 +40,15 @@ def __init__(self, *args, **kwargs): |
40 | 40 | def load(self, filename, *args, **kwargs): |
41 | 41 | if ":" in filename: |
42 | 42 | pkg_name, fn = filename.split(":", 1) |
43 | | - filename = resource_filename(pkg_name, fn) |
| 43 | + resource = resources.files(pkg_name).joinpath(fn) |
| 44 | + try: |
| 45 | + with resources.as_file(resource) as resolved: |
| 46 | + filename = os.fspath(resolved) |
| 47 | + return super(ZPTTemplateLoader, self).load( |
| 48 | + filename, *args, **kwargs |
| 49 | + ) |
| 50 | + except ValueError: |
| 51 | + raise TemplateError(filename) |
44 | 52 | else: |
45 | 53 | path, ext = os.path.splitext(filename) |
46 | 54 | if not ext: |
@@ -123,5 +131,5 @@ def load(self, template_name): |
123 | 131 | return self.loader.load(template_name) |
124 | 132 |
|
125 | 133 |
|
126 | | -default_dir = resource_filename("deform", "templates/") |
| 134 | +default_dir = os.fspath(resources.files("deform").joinpath("templates")) |
127 | 135 | default_renderer = ZPTRendererFactory((default_dir,)) |
0 commit comments