# HG changeset patch # User Martin von Zweigbergk # Date 2019-12-18 21:30:48 # Node ID 75ec46c63657f14e939c6ff75a8f49ff28a75819 # Parent 303576116ac19a13862e6b408f9d32c13ad7edf2 resourceutil: use `from importlib import resources` Without this patch, we get the following error from when trying to run hg with PyOxidizer: module 'importlib' has no attribute 'resources' I don't know what why that happens, but `from importlib import resources` is the form I would prefer anyway, so let's use that now that the impoort-checker has been fixed. Differential Revision: https://phab.mercurial-scm.org/D7701 diff --git a/mercurial/utils/resourceutil.py b/mercurial/utils/resourceutil.py --- a/mercurial/utils/resourceutil.py +++ b/mercurial/utils/resourceutil.py @@ -37,19 +37,19 @@ else: datapath = os.path.dirname(os.path.dirname(pycompat.fsencode(__file__))) try: - import importlib + from importlib import resources # Force loading of the resources module - importlib.resources.open_binary # pytype: disable=module-attr + resources.open_binary # pytype: disable=module-attr def open_resource(package, name): package = b'mercurial.' + package - return importlib.resources.open_binary( # pytype: disable=module-attr + return resources.open_binary( # pytype: disable=module-attr pycompat.sysstr(package), pycompat.sysstr(name) ) -except AttributeError: +except (ImportError, AttributeError): def _package_path(package): return os.path.join(datapath, *package.split(b'.'))