mercurial/utils/resourceutil.py
changeset 43955 75ec46c63657
parent 43905 4d59cc8bda65
child 44027 52f0140c2604
equal deleted inserted replaced
43954:303576116ac1 43955:75ec46c63657
    35     datapath = os.path.dirname(pycompat.sysexecutable)
    35     datapath = os.path.dirname(pycompat.sysexecutable)
    36 else:
    36 else:
    37     datapath = os.path.dirname(os.path.dirname(pycompat.fsencode(__file__)))
    37     datapath = os.path.dirname(os.path.dirname(pycompat.fsencode(__file__)))
    38 
    38 
    39 try:
    39 try:
    40     import importlib
    40     from importlib import resources
    41 
    41 
    42     # Force loading of the resources module
    42     # Force loading of the resources module
    43     importlib.resources.open_binary  # pytype: disable=module-attr
    43     resources.open_binary  # pytype: disable=module-attr
    44 
    44 
    45     def open_resource(package, name):
    45     def open_resource(package, name):
    46         package = b'mercurial.' + package
    46         package = b'mercurial.' + package
    47         return importlib.resources.open_binary(  # pytype: disable=module-attr
    47         return resources.open_binary(  # pytype: disable=module-attr
    48             pycompat.sysstr(package), pycompat.sysstr(name)
    48             pycompat.sysstr(package), pycompat.sysstr(name)
    49         )
    49         )
    50 
    50 
    51 
    51 
    52 except AttributeError:
    52 except (ImportError, AttributeError):
    53 
    53 
    54     def _package_path(package):
    54     def _package_path(package):
    55         return os.path.join(datapath, *package.split(b'.'))
    55         return os.path.join(datapath, *package.split(b'.'))
    56 
    56 
    57     def open_resource(package, name):
    57     def open_resource(package, name):