# HG changeset patch # User Pierre-Yves David # Date 1629387775 -7200 # Node ID 08f16b3331dffc9f3d2b33f70d94e7e57fecd8bd # Parent 155a2ec8a9dcaff9aa029d31ed308297406adb95 resources: narrow the try:except clause to minimum Otherwise this mind hides other import or attribute errors. Differential Revision: https://phab.mercurial-scm.org/D11312 diff -r 155a2ec8a9dc -r 08f16b3331df mercurial/utils/resourceutil.py --- a/mercurial/utils/resourceutil.py Sun Aug 22 16:32:06 2021 -0400 +++ b/mercurial/utils/resourceutil.py Thu Aug 19 17:42:55 2021 +0200 @@ -59,28 +59,9 @@ # further down from importlib import resources - from .. import encoding - # Force loading of the resources module resources.open_binary # pytype: disable=module-attr - def open_resource(package, name): - return resources.open_binary( # pytype: disable=module-attr - pycompat.sysstr(package), pycompat.sysstr(name) - ) - - def is_resource(package, name): - return resources.is_resource( # pytype: disable=module-attr - pycompat.sysstr(package), encoding.strfromlocal(name) - ) - - def contents(package): - # pytype: disable=module-attr - for r in resources.contents(pycompat.sysstr(package)): - # pytype: enable=module-attr - yield encoding.strtolocal(r) - - except (ImportError, AttributeError): # importlib.resources was not found (almost definitely because we're on a # Python version before 3.7) @@ -102,3 +83,23 @@ for p in os.listdir(path): yield pycompat.fsencode(p) + + +else: + from .. import encoding + + def open_resource(package, name): + return resources.open_binary( # pytype: disable=module-attr + pycompat.sysstr(package), pycompat.sysstr(name) + ) + + def is_resource(package, name): + return resources.is_resource( # pytype: disable=module-attr + pycompat.sysstr(package), encoding.strfromlocal(name) + ) + + def contents(package): + # pytype: disable=module-attr + for r in resources.contents(pycompat.sysstr(package)): + # pytype: enable=module-attr + yield encoding.strtolocal(r)