diff --git a/modm_devices/pkg.py b/modm_devices/pkg.py index 8d876b8e..5f4414f1 100644 --- a/modm_devices/pkg.py +++ b/modm_devices/pkg.py @@ -9,8 +9,7 @@ import os import re -import sys -import pkgutil +import importlib.resources import urllib.request import urllib.parse @@ -28,24 +27,13 @@ def atoi(text): return [atoi(c) for c in re.split(r"([-]?\d+)", key)] + def get_filename(package, resource): """Rewrite of pkgutil.get_data() that return the file path. """ - loader = pkgutil.get_loader(package) - if loader is None or not hasattr(loader, 'get_data'): - return None - mod = sys.modules.get(package) or loader.load_module(package) - if mod is None or not hasattr(mod, '__file__'): - return None - - # Modify the resource name to be compatible with the loader.get_data - # signature - an os.path format "filename" starting with the dirname of - # the package's __file__ - parts = resource.split('/') - parts.insert(0, os.path.dirname(mod.__file__)) - resource_name = os.path.normpath(os.path.join(*parts)) - - return resource_name + package_files = importlib.resources.files(package) + return (package_files / resource).resolve() + CATALOGFILE = get_filename('modm_devices', 'resources/catalog.xml') os.environ['XML_CATALOG_FILES'] = \