D7701: resourceutil: use `from importlib import resources`
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Dec 18 22:30:55 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
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.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D7701
AFFECTED FILES
mercurial/utils/resourceutil.py
CHANGE DETAILS
diff --git a/mercurial/utils/resourceutil.py b/mercurial/utils/resourceutil.py
--- a/mercurial/utils/resourceutil.py
+++ b/mercurial/utils/resourceutil.py
@@ -43,25 +43,25 @@
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)
)
def list_resources(package):
package = b'mercurial.' + package
- for name in importlib.resources.contents(pycompat.sysstr(package)):
- if importlib.resources.is_resource(pycompat.sysstr(package), name):
+ for name in resources.contents(pycompat.sysstr(package)):
+ if resources.is_resource(pycompat.sysstr(package), name):
yield pycompat.sysbytes(name)
-except AttributeError:
+except (ImportError, AttributeError):
def _package_path(package):
return os.path.join(datapath, *package.split(b'.'))
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list