diff --git a/mercurial/utils/resourceutil.py b/mercurial/utils/resourceutil.py --- a/mercurial/utils/resourceutil.py +++ b/mercurial/utils/resourceutil.py @@ -40,6 +40,8 @@ try: from importlib import resources + from .. import encoding + # Force loading of the resources module resources.open_binary # pytype: disable=module-attr @@ -48,6 +50,11 @@ pycompat.sysstr(package), pycompat.sysstr(name) ) + def is_resource(package, name): + return resources.is_resource( + pycompat.sysstr(package), encoding.strfromlocal(name) + ) + except (ImportError, AttributeError): @@ -57,3 +64,11 @@ def open_resource(package, name): path = os.path.join(_package_path(package), name) return open(path, 'rb') + + def is_resource(package, name): + path = os.path.join(_package_path(package), name) + + try: + return os.path.isfile(pycompat.fsdecode(path)) + except (IOError, OSError): + return False