# HG changeset patch # User Matt Harbison # Date 2019-12-30 01:35:34 # Node ID bba9149adc14ec585c8c8f77fd4ec0e366be4d93 # Parent 42a897bf678cc124ef94251b655d6dc08f2d8654 resourceutil: implement `contents()` to iterate over resources in a package Differential Revision: https://phab.mercurial-scm.org/D7774 diff --git a/mercurial/utils/resourceutil.py b/mercurial/utils/resourceutil.py --- a/mercurial/utils/resourceutil.py +++ b/mercurial/utils/resourceutil.py @@ -55,6 +55,10 @@ try: pycompat.sysstr(package), encoding.strfromlocal(name) ) + def contents(package): + for r in resources.contents(pycompat.sysstr(package)): + yield encoding.strtolocal(r) + except (ImportError, AttributeError): @@ -72,3 +76,9 @@ except (ImportError, AttributeError): return os.path.isfile(pycompat.fsdecode(path)) except (IOError, OSError): return False + + def contents(package): + path = pycompat.fsdecode(_package_path(package)) + + for p in os.listdir(path): + yield pycompat.fsencode(p)