diff options
Diffstat (limited to '0001-fix-Replace-use-of-imp-with-importlib.patch')
-rw-r--r-- | 0001-fix-Replace-use-of-imp-with-importlib.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/0001-fix-Replace-use-of-imp-with-importlib.patch b/0001-fix-Replace-use-of-imp-with-importlib.patch new file mode 100644 index 000000000000..ff3c6add3333 --- /dev/null +++ b/0001-fix-Replace-use-of-imp-with-importlib.patch @@ -0,0 +1,95 @@ +From 13dd00c79865d8a0c23ddade9acd5793e167cdd9 Mon Sep 17 00:00:00 2001 +From: Andrew Senetar <arsenetar@gmail.com> +Date: Mon, 19 Feb 2024 09:39:12 -0800 +Subject: [PATCH] fix: Replace use of `imp` with `importlib` + +Original PR and information found at #1187 +--- + hscommon/pygettext.py | 50 +++++++------------------------------------ + 1 file changed, 8 insertions(+), 42 deletions(-) + +diff --git a/hscommon/pygettext.py b/hscommon/pygettext.py +index 026219bf..85aaf6d9 100644 +--- a/hscommon/pygettext.py ++++ b/hscommon/pygettext.py +@@ -15,7 +15,8 @@ + # + + import os +-import imp ++import importlib.machinery ++import importlib.util + import sys + import glob + import token +@@ -110,7 +111,7 @@ def _visit_pyfiles(list, dirname, names): + # get extension for python source files + if "_py_ext" not in globals(): + global _py_ext +- _py_ext = [triple[0] for triple in imp.get_suffixes() if triple[2] == imp.PY_SOURCE][0] ++ _py_ext = importlib.machinery.SOURCE_SUFFIXES[0] + + # don't recurse into CVS directories + if "CVS" in names: +@@ -120,45 +121,6 @@ def _visit_pyfiles(list, dirname, names): + list.extend([os.path.join(dirname, file) for file in names if os.path.splitext(file)[1] == _py_ext]) + + +-def _get_modpkg_path(dotted_name, pathlist=None): +- """Get the filesystem path for a module or a package. +- +- Return the file system path to a file for a module, and to a directory for +- a package. Return None if the name is not found, or is a builtin or +- extension module. +- """ +- # split off top-most name +- parts = dotted_name.split(".", 1) +- +- if len(parts) > 1: +- # we have a dotted path, import top-level package +- try: +- file, pathname, description = imp.find_module(parts[0], pathlist) +- if file: +- file.close() +- except ImportError: +- return None +- +- # check if it's indeed a package +- if description[2] == imp.PKG_DIRECTORY: +- # recursively handle the remaining name parts +- pathname = _get_modpkg_path(parts[1], [pathname]) +- else: +- pathname = None +- else: +- # plain name +- try: +- file, pathname, description = imp.find_module(dotted_name, pathlist) +- if file: +- file.close() +- if description[2] not in [imp.PY_SOURCE, imp.PKG_DIRECTORY]: +- pathname = None +- except ImportError: +- pathname = None +- +- return pathname +- +- + def getFilesForName(name): + """Get a list of module files for a filename, a module or package name, + or a directory. +@@ -173,7 +135,11 @@ def getFilesForName(name): + return file_list + + # try to find module or package +- name = _get_modpkg_path(name) ++ try: ++ spec = importlib.util.find_spec(name) ++ name = spec.origin ++ except ImportError: ++ name = None + if not name: + return [] + +-- +2.43.0 + |