D7773: resourceutil: implement `is_resource()`

mharbison72 (Matt Harbison) phabricator at mercurial-scm.org
Wed Jan 8 14:51:35 EST 2020


Closed by commit rHG42a897bf678c: resourceutil: implement `is_resource()` (authored by mharbison72).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs Review".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D7773?vs=19004&id=19102

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7773/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7773

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
@@ -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



To: mharbison72, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list