Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 5 additions & 17 deletions modm_devices/pkg.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@

import os
import re
import sys
import pkgutil
import importlib.resources

import urllib.request
import urllib.parse
Expand All @@ -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'] = \
Expand Down
Loading