equal
deleted
inserted
replaced
33 if mainfrozen() and getattr(sys, 'frozen', None) != 'macosx_app': |
33 if mainfrozen() and getattr(sys, 'frozen', None) != 'macosx_app': |
34 # executable version (py2exe) doesn't support __file__ |
34 # executable version (py2exe) doesn't support __file__ |
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 |
|
39 try: |
|
40 import importlib |
|
41 |
|
42 # Force loading of the resources module |
|
43 importlib.resources.open_binary |
|
44 |
|
45 def open_resource(package, name): |
|
46 package = b'mercurial.' + package |
|
47 return importlib.resources.open_binary( |
|
48 pycompat.sysstr(package), pycompat.sysstr(name) |
|
49 ) |
|
50 |
|
51 |
|
52 except AttributeError: |
|
53 |
|
54 def _package_path(package): |
|
55 return os.path.join(datapath, *package.split(b'.')) |
|
56 |
|
57 def open_resource(package, name): |
|
58 path = os.path.join(_package_path(package), name) |
|
59 return open(path, 'rb') |